#!/usr/bin/perl use strict; use vars qw($opt_d $opt_h $opt_v); use Getopt::Std; $ENV{PATH} = '/sbin:/bin:/usr/bin'; sub Usage { print < "--exclude '/dev/*' --exclude 'var/log'" ); #------------------------------------------------------------------------ my $mount_point = '/backup'; foreach my $filesystem (@filesystems) { my $extras = $extras{$filesystem}; print STDOUT "Working on filesystem '$filesystem'\n"; syscmd("rsync $rsync_options $extras ${filesystem}/ $mount_point${filesystem}") && warn "rsync of $filesystem failed. $!\n"; } sub syscmd { my $cmd = shift; print "$cmd\n"; return 0 if $opt_d; my $rc = system($cmd); if ($rc > 0x80) { return $rc >> 8; } elsif ($rc > 0) { die "Signal $rc received in $cmd\n"; } return 0; }