On Monday 22 Nov 2010, Kshitiz wrote:
> I use rsync to copy my incremental data to an external harddisk every
> 5 minutes using cron. However, if the external harddisk, connected
> to the USB port is disconnected, the root partition fills up. I need
> your help to create a proper script that does the following:
> 
> Before running the rsync copying script, I want to
>     a) Add some statement that would check if the external harddisk
> is attached and mounted. b) If not, it should be mounted before the
> copying script is run to copy only to this external disk. c) If it
> is not mounted, mount should be attempted, and if it does not mount,
> rsync copying command should not be executed.
> 
> Is there any better way to do this?
> 
> Under no circumstances, I want the rsync script to execute if the USB
> connection is not active.

Assuming your USB device is /dev/hdb1 and it gets mounted on 
/media/hdb1, you can try the following:

1. Add an entry in /etc/fstab:

/dev/hdb1       /media/hdb1     auto    user    0       0

2. Make an rsync script of the form:

if ! mount | fgrep /dev/hdb1 | fgrep /media/hdb1 > /dev/null
then
  mount /dev/hdb1
fi
if mount | fgrep /dev/hdb1 | fgrep /media/hdb1 > /dev/null
then
  rsync...
else
  echo "USB device not mounted, aborting" >&2
  exit 1
fi

This code is provided without any claim to working or warranty, and if 
it fails to run or causes your cat to be run over by a road roller or 
your wife to divorce you or bedbugs to infest your bedroom, I am not 
responsible.

Regards,

-- Raj
-- 
Raj Mathur                [email protected]      http://kandalaya.org/
       GPG: 78D4 FC67 367F 40E2 0DD5  0FEF C968 D0EF CC68 D17F
PsyTrance & Chill: http://schizoid.in/   ||   It is the mind that moves
-- 
http://mm.glug-bom.org/mailman/listinfo/linuxers

Reply via email to