Jak napisać skrypt bash, aby wykryć zamontowany dysk USB?

0

Wyzwalam skrypt z crona. Chcę, aby uruchamiał rsync TYLKO, jeśli podłączony jest dysk USB o nazwie „data_3”, w przeciwnym razie nie.

Jak napisać skrypt bash, aby wykryć zamontowany dysk USB?

Mój obecny pseudokod:

#!/bin/sh  
if ( mount | grep /media/data_3 )  
  rsync ...  
else  
  echo "Failure"
user19496
źródło

Odpowiedzi:

1

Blisko.

if mount | grep -q ' on /media/data_3 '; then

Nie zapomnij o fi na końcu ( help if dla szczegółów).

Ignacio Vazquez-Abrams
źródło
1

Możesz również zrobić to w inny sposób - sprawdź uuid dysku, wydając komendę, gdy usb zostanie wstawiony po raz pierwszy (celem jest znalezienie uuid) za pomocą vol_id

IMIĘ          vol_id - typ systemu plików sondy i odczyt etykiety i uuid

STRESZCZENIE          vol_id [--export] [--type] [--label] [--label-raw] [--uuid]   [--skip-raid] [--probe-all]   [--offset = bajty] [--debug] [--help]   [urządzenie]

OPIS          vol_id jest zwykle wywoływany z reguły udev, aby udostępnić udev   typ systemu plików, etykieta i   uuid objętości. Obsługuje większość   wspólne          system plików formatuje i wykrywa różne konfiguracje RAID, aby zapobiec   rozpoznawanie członków rajdu jako   wolumin z systemem plików.

OPCJE          --eksport              Wydrukuj wszystkie wartości w formacie klucz / wartość, aby je zaimportować   środowisko.

   --type
       Print the filesystem type.

   --label
       Print the safe version of volume label suitable for use as

Nazwa pliku.

   --label-raw
       Print the raw volume label.

   --uuid
       Print the uuid of a volume.

   --skip-raid
       Skip detection of raid metadata.

   --probe-all
       Probe for all types and print all matches.

   --offset=bytes
       Start probing at the given offset, instead of the beginning of

objętość. Wartość przesunięcia wynosi   określony w bajtach.

   --debug
       Print debug messages to stderr.

   --help
       Print usage.

ŚRODOWISKO          UDEV_LOG              Ustaw priorytet syslog.

STATUS WYJŚCIA          vol_id powróci tylko wtedy, gdy żądana wartość to   nie pusty. Wszystkie końcowe spacje   zostaną usunięte, miejsca zastąpione przez   podkreślenie i ukośniki          ignorowane.

To kwestia sprawdzenia vol_id, gdy masz wartość dla tego dysku ...

t0mm13b
źródło