LINUX: Bash-Script um Laufwerke mit UUID zu mounten

Folgendes Script hilft euch die ausgabe für die /etc/fstab zu erstellen, abhängig davon welche platte ihr grad schon unter /mnt eingehangen habt und sie müssen vom typ ext2/3/4 sein

 

#!/bin/bash
declare -a devnames
declare -a devdirs
devnames=$( mount |grep /mnt | awk '{print $1}' )
devdirs=$( mount |grep /mnt | awk '{print $3}' )
fstype1='ext4'
fstype2='ext3'
fstype3='ext2'
for el in $devnames
do
fstype='none'
 devname=$( mount |grep ${el} | awk '{print $1}' )
 devdir=$( mount |grep ${el} | awk '{print $3}' )
# echo mount ${devname} ${devdir}
 fstype=$( blkid ${devname} | awk '{print $3}' |sed 's/TYPE="//' |sed 's/"//' )

 if [ $fstype = $fstype1 ] || [ $fstype = fstype2 ] || [ $fstype = fstype3 ]; then
 uuid=$( blkid ${devname} | awk '{print $2}' |sed 's/UUID="//' |sed 's/"//' )
echo UUID=${uuid} ${devdir} ${fstype} defaults 0 0
echo ' '
 fi
done

 

sollte soweit klappen

 

Bsp:

Ich habe diverse Festplatten erstmal händisch gemountet (Vorraussetzung für dieses Script) und # mount gibt folgendes aus:

tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
/dev/sda1 on /boot type ext2 (rw)
/dev/md1000 on /mnt/1tbhdd type ext4 (rw)
/dev/md400 on /mnt/400gbhdd type ext4 (rw)
/dev/sdb1 on /mnt/80gbhdd type ext4 (rw)
/dev/sdf1 on /mnt/backup type ext4 (rw)

 

dann wird folgendes generiert:

UUID=1c30b637-a216-408c-8f4d-60ef6d501657 /mnt/1tbhdd ext4 defaults 0 0
UUID=01991f35-d235-478c-bd48-197b1443386e /mnt/400gbhdd ext4 defaults 0 0
UUID=56784bb7-8f4b-40f1-b046-87a40707c841 /mnt/80gbhdd ext4 defaults 0 0
UUID=dc24b903-307c-4c91-be22-5ab46e509db1 /mnt/backup ext4 defaults 0 0