J'ai une clé USB qui sera utilisée pour enregistrer des données quotidiennement via un script bash. J'ai réussi à le monter pour qu'un utilisateur spécifique puisse y écrire des dossiers en utilisant la commande:
mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop
Le script peut s'exécuter et créer des répertoires à sa guise et c'est parfait. À un moment donné, la clé USB sera débranchée et remplacée par une nouvelle (même modèle). La nouvelle clé USB /dev/sdc1
aura-t-elle toujours le nom ou sera-t-elle différente?
Si c'est différent, comment puis-je inclure la pièce de montage dans mon script pour qu'elle soit faite automatiquement?
Réponses:
Bien qu'il
/dev/sdXy
soit risqué d'y accéder , une identification plus précise peut être effectuée parUUID
.Étant donné que vous mentionnez (à un moment donné) le changement de la clé USB, pour maintenir la compatibilité, vous souhaiterez peut-être identifier votre clé USB par une étiquette. Pour ce faire, vous pouvez:
/dev/disk/by-label/YourLabelHere
.Notez que vous devez définir le libellé sur une nouvelle clé USB avant d'exécuter le script, et
/dev/disk/by-label
n'est également disponible que si (au moins) une clé USB est connectée (sinon elle est supprimée).Des détails sur la configuration de l'étiquette USB peuvent être trouvés ici: /ubuntu/194510/how-to-edit-label-of-usb-drive
la source
/dev/disk/by-id/
peut être utile à la place (c'est ce que j'utilise pour mes systèmes de fichiers).C'est ainsi que je règle ce problème, mais généralement, comme Sato Katsura vous l'a dit, vous devez écrire une règle udev.
udevadm info --query all /dev/sdc
(ou autre).Configurez une règle udev, voici un exemple pour mon portefeuille. Les champs
ID_SERIAL_SHORT
etID_FS_UUID
j'ai lu les informations de l'étape 2:J'ai défini OWNER ici, que je peux le monter avec mon compte utilisateur principal. De plus, avec mon portefeuille, je n'ai pas de partitions mais je monte les disques ordinaires. Si vous avez des changements de partitions:
pour la partition numéro 1, sur les lignes de règles udev.
Les règles udev se trouvent dans
/etc/udev/rules.d
, si vous avez un système sain.Maintenant vous pouvez
pour recharger les règles et
pour surveiller ce qui se passe à l'étape 5.
Branchez et branchez votre périphérique USB (bien sûr, après le démontage avant si vous l'avez monté). Le moniteur devrait vous informer sur le nouveau périphérique lors de son initialisation.
Vérifiez si
/dev/
contient les bons liens symboliques. Dans mon exemple, j'ai obtenu ceci:Vous pouvez maintenant définir des règles persistantes avec les liens symboliques
/dev/pocketbook
et/dev/pocketbook-sd
, ou quels que soient vos noms dans le champ SYMLINK du fichier de règles udev.la source
Juste pour ajouter à la réponse de @ alextartan.
J'ai lancé mon propre système de sauvegarde qui utilise des clés USB pour les cibles. Je dois être sûr de ce qui se passe où. Étant donné que les UUID ne sont pas particulièrement conviviaux, je me fie aux étiquettes de disque.
Les UUID sont également un peu problématiques car chaque fois que vous reformatez une partition, elle obtient un nouvel UUID unique, donc tous les scripts utilisant cet UUID doivent être modifiés. Je peux attribuer la même étiquette qu'auparavant à la partition reformatée (ou même à une partition sur un lecteur nouveau / de remplacement) et laisser mes scripts seuls.
J'ai créé ma propre convention d'étiquetage (conviviale pour les humains) et j'utilise gparted pour étiqueter les différentes partitions lorsque je les crée.
Lorsque mes scripts doivent accéder à une partition particulière, je recherche le nom du périphérique à l'aide de l'étiquette.
la source