Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: For loop met alle partities op het systeem.  (gelezen 1484 keer)

Offline bart85

  • Lid
For loop met alle partities op het systeem.
« Gepost op: 2016/06/28, 10:34:14 »
Onderstaande code wil ik gebruiken waarbij alle partities een voor een worden aangekoppeld. Daarbij gebruik ik file globbing m.b.v. /dev/sd??*. Vervolgens als het aankoppelen niet mogelijk is, de loop stoppen en verdergaan met de volgende partitie. Mijn vraag is wat ik op de plek van ?? moet neerzetten om de loop dus daar te stoppen met de waarde die $dev heeft en met de volgende waarde verder gaan.

mpoint=/mnt/tmp
mkdir -p $mpoint

for dev in /dev/sd??*
do
    mount $dev $mpoint || echo "$dev: cant mount" && ??
    # vervolg van code bij het kunnen aankoppelen.
done
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.

Offline Nero

  • Lid
Re: For loop met alle partities op het systeem.
« Reactie #1 Gepost op: 2016/06/28, 11:17:25 »
for dev in $(lsblk -l | awk '$6=="part" {print $1}')
do
    echo "/dev/$dev"
done

Offline bart85

  • Lid
Re: For loop met alle partities op het systeem.
« Reactie #2 Gepost op: 2016/06/28, 11:50:31 »
Het probleem is dat de eerste partitie een BIOS boot partitie is. Deze word met lsblk ook als het type part gezien, maar kan toch niet aangekoppeld worden. De bedoeling is dat het script aangeeft dat aankoppelen niet lukt. Vervolgens verder gaan met partitie /dev/sda2 enz. Dit werkt met beide methodes niet.
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.

Offline Nero

  • Lid
Re: For loop met alle partities op het systeem.
« Reactie #3 Gepost op: 2016/06/28, 12:36:22 »
echo "$dev: cant mount" && continueskipt naar de volgende loop

Offline h2o

  • Lid
Re: For loop met alle partities op het systeem.
« Reactie #4 Gepost op: 2016/06/28, 14:56:51 »
Onderstaande code wil ik gebruiken waarbij alle partities een voor een worden aangekoppeld.
Ik ben wel benieuwd wat je hiermee wil doen, want met /etc/fstab kun je dat met het opstarten al regelen?
Werk laptops + werkstation: Debian Testing
Privé laptops: Debian Testing/Unstable
Test laptop: Diverse andere Linux distribities
Chromebooks: ChromeOS Flex

Offline bart85

  • Lid
Re: For loop met alle partities op het systeem.
« Reactie #5 Gepost op: 2016/07/01, 17:53:42 »
Code van mijn script staaat hieronder. Het doel ervan is dat het /etc/lsb-release van alle partities worden weergeven. Ik wil meerdere besturingssystemen installeren om ze uit te proberen. Dit script laat zien welke besturingssystemen op welke (root)partities staan.

#!/bin/bash

vfile=/etc/lsb-release
mpoint=/mnt/tmp

mkdir -p $mpoint

for dev in $(lsblk -l | awk '$6=="part" {print $1}')
do
echo "[/dev/$dev]"
if a=`mount | grep "^/dev/$dev"` > /dev/null
then
echo "mounted"
m=$(echo $a | awk '{print $3}')
if [ $m = "/" ]
then
[ -f $vfile ] && cat $vfile
else
[ -f $m/$vfile ] && cat $m/$vfile
fi
else
mount /dev/$dev $mpoint > /dev/null || echo "cant mount $dev" && continue
[ -f  $mpoint/$vfile ] && cat $mpoint/$vfile
sleep 1
umount /dev/$dev
fi
done
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.