Ich habe einen USB-Stick, mit dem täglich Daten über ein Bash-Skript gespeichert werden. Ich habe es geschafft, es für einen bestimmten Benutzer bereitzustellen, um mit dem folgenden Befehl Ordner darin schreiben zu können:
mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop
Das Skript kann nach Belieben ausgeführt und Verzeichnisse erstellt werden und ist perfekt. Irgendwann wird der USB-Stick abgezogen und durch einen neuen (gleiches Modell) ersetzt. Wird der neue USB-Stick noch den Namen haben /dev/sdc1
oder wird es ein anderer sein?
Wenn es sich um ein anderes handelt, wie kann ich das Mounting-Teil in mein Skript aufnehmen, damit es automatisch erstellt wird?
Antworten:
Während der Zugriff über
/dev/sdXy
riskant ist, kann eine genauere Identifizierung durch erfolgenUUID
.Da Sie (irgendwann) erwähnen, dass Sie den USB-Stick ändern müssen, um die Kompatibilität zu gewährleisten, möchten Sie Ihren USB-Stick möglicherweise anhand eines Etiketts identifizieren. Dazu können Sie :
/dev/disk/by-label/YourLabelHere
.Beachten Sie, dass Sie die Bezeichnung auf einen neuen USB-Stick setzen müssen, bevor Sie das Skript ausführen. Sie
/dev/disk/by-label
ist auch nur verfügbar, wenn (mindestens) ein USB-Stick angeschlossen ist (andernfalls wird er entfernt).Details zum Einrichten des USB-Labels finden Sie hier: /ubuntu/194510/how-to-edit-label-of-usb-drive
quelle
/dev/disk/by-id/
kann dies stattdessen von Nutzen sein (was ich für meine Dateisysteme verwende).So gehe ich dieses Problem an, aber im Allgemeinen müssen Sie, wie Sato Katsura Ihnen sagte, eine udev-Regel schreiben.
udevadm info --query all /dev/sdc
(oder was auch immer).Richten Sie eine udev-Regel ein. Hier ist ein Beispiel für mein Taschenbuch. Die Felder
ID_SERIAL_SHORT
undID_FS_UUID
ich lesen aus den Informationen in Schritt 2:Ich habe hier EIGENTÜMER eingestellt, damit ich es mit meinem Hauptbenutzerkonto mounten kann. Auch mit meinem Taschenbuch habe ich keine Partitionen, sondern montiere die einfachen Festplatten. Wenn Sie Partitionen ändern:
für Partition Nummer 1 in den udev-Regelzeilen.
Die udev-Regeln finden Sie in
/etc/udev/rules.d
, wenn Sie ein vernünftiges System haben.Jetzt kannst du
die Regeln neu laden und
um zu überwachen, was in Schritt 5 passiert.
Schließen Sie Ihr USB-Gerät an und schließen Sie es an (natürlich nach dem Aushängen, bevor Sie es gemountet haben). Der Monitor sollte Sie bei der Initialisierung über das neue Gerät informieren.
Überprüfen Sie, ob
/dev/
die richtigen Symlinks enthalten sind. In meinem Beispiel habe ich folgendes:Jetzt können Sie persistente Regeln mit den Symlinks
/dev/pocketbook
und/dev/pocketbook-sd
oder wie auch immer Ihre Namen im SYMLINK-Feld der udev-Regeldatei definieren.quelle
Nur um @ alextartans Antwort hinzuzufügen.
Ich habe mein eigenes Backup-System entwickelt, das USB-Laufwerke als Ziele verwendet. Ich muss sicher sein, was wohin geht. Da UUIDs nicht besonders benutzerfreundlich sind, verlasse ich mich auf Festplattenetiketten.
UUIDs sind auch etwas problematisch, da sie bei jeder Neuformatierung einer Partition eine neue eindeutige UUID erhalten, sodass alle Skripte, die diese UUID verwenden, geändert werden müssen. Ich kann der neu formatierten Partition (oder sogar einer Partition auf einem neuen / Ersatzlaufwerk) dieselbe Bezeichnung wie zuvor zuweisen und meine Skripte in Ruhe lassen.
Ich habe meine eigene einzigartige (menschenfreundliche) Beschriftungskonvention entwickelt und benutze gparted, um die verschiedenen Partitionen zu beschriften, wenn ich sie erstelle.
Wenn meine Skripte auf eine bestimmte Partition zugreifen müssen, suche ich den Gerätenamen anhand der Bezeichnung.
quelle