0

I'm triggering a script from cron. I want it to run rsync ONLY if a USB disk called "data_3" is mounted, otherwise not.

How do I write a bash script to detect a mounted USB drive ?

My current pseudocode:

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

2 Answers 2

1

Close.

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

Don't forget the fi at the end (help if for details).

1

You could also do it another way - find out the uuid of the disk by issuing the command when that usb is inserted first time (the objective is to find out the uuid) by using 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.

Then it's a matter of checking the vol_id once you have the value for that disk...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .