Am vrut o modalitate de a scrie un script pentru montarea hard disk-urilor la un anumit punct de montare. Dupa cateva cautari, am gasit: https://gist.github.com/trentmswanson/9c22bb71182e982bd36f
Acesta a fost pentru MS Azure și nu a acoperit anumite tipuri de hard disk-uri din Infrastructura AWS.A folosit sdf în nvm necesar. Am făcut acele modificări și rezultatul a funcționat. Am o matrice care deține punctele de montare:
# Puncte de montare personalizate pentru primele 2 HDD-uri
tipărit -A MountPoint
MountPoint[1]="/FileMakerData"
MountPoint[2]="/FileMakerData/Backups"
și o linie care încearcă să citească „această” dimensiune HDD și să o monteze corespunzător:
# Testează dimensiunea volumului pentru a testa dimensiunea corectă a discului
DiskSize=$(sudo fdisk -s ${DISK})
# Calculează numărul de GB și resetează variabila ca număr
lasă DiskSize=DiskSize/1048576
echo „$DiskSize”
# Utilizează dimensiunea discului pentru a determina tipul discului.
# Se presupune că unitatea de rezervă nu va fi niciodată mai mică de 50 GB și că datele nu vor porni niciodată GT 50 GB
if [ "$DiskSize" -lt 50 ];
apoi DiskType="Date"
elif ["$DiskSize" -ge 50 ];
apoi DiskType="Backup"
fi
O funcție primește apoi punctul de montare din matrice pe baza valorii.
get_next_mountpoint() {
DeviceType=${1}
if ( test "$DeviceType" == "Date"); apoi ecou „${MountPoint[1]}”
elif (test "$DeviceType" == "Backup"); apoi ecou „${MountPoint[2]}”
altfel
# Echos gol, astfel încât scriptul va ști să iasă din buclă
ecou ""
fi
}
Există mult mai mult în scenariu. Problema cu acest proces, totuși, este că HDD-ul care urmează să fie montat pe /FileMakerData trebuie creat/montat mai întâi.
Când montez /FileMakerData/Backups, apoi montez /FileMakerData, primesc un singur director în /FileMakerData care este etichetat „pierdut+găsit”. Este logic ca acest lucru să se întâmple, deoarece schimb brusc mijlocul structurii directoarelor. Dar, nu pot găsi o modalitate de a enumera hard disk-urile prin creșterea dimensiunii, astfel încât, atunci când scriptul primește o ordine arbitrară din foldere (deoarece AWS le-a montat înapoi) să pot încă monta unitatea de dimensiune corectă în folderul corect în directorul corect. Ordin.
Codul meu actual este:
# Un set de discuri de ignorat de la partiţionare şi formatare; Utilizați țeava pentru a separa (poate acționa ca SAU în acest caz)
BLACKLIST="/dev/nvme0"
# Obține o listă de discuri le filtrează pe cele enumerate, apoi le caută pe altele
DEVS=($(ls -1 /dev/nvme*|egrep -v „${BLACKLIST}”|egrep „[0-9]n[0-9]$”))
Am găsit: https://linuxhint.com/list_disks_ubuntu/
Dar nu îmi spune cum să le obțin într-o matrice simplă și nu pot sorta după dimensiune cu această comandă.
Am incercat:
ls -1 /dev/nvme*|egrep -v „${BLACKLIST}”|egrep „[0-9]n[0-9]$” | fel
și
ls -1 /dev/nvme*|egrep -v „${BLACKLIST}”|egrep „[0-9]n[0-9]$” | sortare -r
dar (cum era de așteptat) acest lucru nu se sortează în funcție de dimensiune. Se sortează după numele HDD-ului care este transmis:
/dev/nvme1n1
/dev/nvme2n1
și
/dev/nvme2n1
/dev/nvme1n1
Respectiv. Este exact ceea ce vreau, doar sortat după dimensiune, nu după nume.
Alte google nu au găsit un ajutor util pentru extragerea dimensiunii și sortarea valorii principale după dimensiune. Rulez o instalare minimă Ubuntu 18.04 deoarece acesta este un server web. Am acces la df și fdisk și încerc să instalez mai multe pachete, dar mă voi gândi dacă se dovedește a fi semnificativ mai ușor.