Fechar.
if mount | grep -q ' on /media/data_3 '; then
Não se esqueça do fi
no final ( help if
para detalhes).
Estou acionando um script do cron. Eu quero que ele execute rsync apenas se um disco USB chamado "data_3" é montado, caso contrário, não.
Como escrevo um script bash para detectar uma unidade USB montada?
Meu pseudocódigo atual:
#!/bin/sh
if ( mount | grep /media/data_3 )
rsync ...
else
echo "Failure"
Você também pode fazer isso de outra maneira - descubra o uuid do disco emitindo o comando quando o usb for inserido pela primeira vez (o objetivo é descobrir o uuid) usando vol_id
NAME vol_id - probe filesystem type and read label and uuid
SYNOPSIS vol_id [--export] [--type] [--label] [--label-raw] [--uuid] [--skip-raid] [--probe-all] [--offset=bytes] [--debug] [--help] [device]
DESCRIPTION vol_id is usually called from a udev rule, to provide udev with the filesystem type, the label and the uuid of a volume. It supports most of the common filesystem formats and detects various raid setups to prevent the recognition of raid members as a volume with a filesystem.
OPTIONS --export Print all values in key/value format to import them into the environment.
--type Print the filesystem type. --label Print the safe version of volume label suitable for use as
filename.
--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
the volume. The offset value is specified in bytes.
--debug Print debug messages to stderr. --help Print usage.
ENVIRONMENT UDEV_LOG Set the syslog priority.
EXIT STATUS vol_id will only return successful if the value asked for is not empty. All trailing whitespace will be removed, spaces replaced by underscore and slashes ignored.
Então, é uma questão de verificar o vol_id depois que você tiver o valor desse disco ...