Я запускаю скрипт из cron. Я хочу, чтобы он запускал rsync, ТОЛЬКО если подключен USB-диск с именем "data_3", в противном случае - нет.

Как написать сценарий bash для обнаружения подключенного USB-накопителя?

Мой текущий псевдокод:

#!/bin/sh  
if ( mount | grep /media/data_3 )  
  rsync ...  
else  
  echo "Failure"

2 ответа2

1

Близко.

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

Не забывайте fi в конце (help if для деталей).

1

Вы также можете сделать это по-другому - узнать uuid диска, введя команду, когда этот usb вставляется в первый раз (цель состоит в том, чтобы узнать uuid) с помощью vol_id.

NAME vol_id - проверяет тип файловой системы, читает метку и uuid

ОПИСАНИЕ vol_id [--export] [--type] [--label] [--label-raw] [--uuid] [--skip-raid] [--probe-all] [--offset = bytes] [--debug] [--help] [устройство]

ОПИСАНИЕ vol_id обычно вызывается из правила udev, чтобы предоставить udev тип файловой системы, метку и uuid тома. Он поддерживает большинство распространенных форматов файловой системы и обнаруживает различные настройки raid, чтобы предотвратить распознавание участников raid как тома с файловой системой.

ОПЦИИ --export Распечатать все значения в формате ключ / значение, чтобы импортировать их в среду.

   --type
       Print the filesystem type.

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

имя файла.

   --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

громкость. Значение смещения указывается в байтах.

   --debug
       Print debug messages to stderr.

   --help
       Print usage.

ENVIRONMENT UDEV_LOG Установить приоритет системного журнала.

СОСТОЯНИЕ ВЫХОДА vol_id вернется успешно, только если запрошенное значение не пусто. Все завершающие пробелы будут удалены, пробелы заменены подчеркиванием и косые черты будут игнорироваться.

Затем нужно проверить vol_id, как только вы получите значение для этого диска ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .