Como eu escrevo um script bash para detectar uma unidade USB montada?

0

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"
    
por user19496 27.09.2010 / 23:36

2 respostas

1

Fechar.

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

Não se esqueça do fi no final ( help if para detalhes).

    
por 27.09.2010 / 23:54
1

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

    
por 28.09.2010 / 01:32