簡単に作ってみた。
#!/usr/bin/perl
use warnings;
use strict;
my $retval = "1";
my $master_dev = "/dev/sda1";
my $backup_dev = "/dev/hdc";
my $backup_dev1 = "/dev/hdc1";
my $master_dir = "/";
my $backup_dir = "/backup";
my $log = "/var/log/backup.log";
print "backup $master_dir ($master_dev) -> $backup_dir ($backup_dev1)\n";
my $mount_chk = `mount | grep $backup_dir | grep $backup_dev1`;
chomp($mount_chk);
print "mount_check: ";
if ($mount_chk ne "") {
print "OK\n";
print "tune2fs: ";
$retval = system("tune2fs -c -1 -i 0 $master_dev > $log 2>&1");
if ($retval eq "0") {
$retval = system("tune2fs -c -1 -i 0 $backup_dev1 >> $log 2>&1");
if ($retval eq "0") {
print "OK\n";
} else {
print "NG\n";
exit(1);
}
} else {
print "NG\n";
exit(1);
}
sleep 3;
print "rsync: ";
$retval = system("rsync -avx --delete $master_dir $backup_dir/ >> $log 2>&1");
if ($retval eq "0") {
print "OK\n";
} else {
print "NG\n";
exit(1);
}
print "grub-install: ";
$retval = system("grub-install --root-directory=$backup_dir $backup_dev >> $log 2>&1");
if ($retval eq "0") {
print "OK\n";
} else {
print "NG\n";
exit(1);
}
} else {
print "NG\n";
exit(1);
}
そろそろバックアップをした方が良い年になってきた。
昔は、DISK壊れても、1から作り直せる程度のものが多かったが、今は無理!
これでしばらくは大丈夫かな。
実行後
# ./backup.pl backup / (/dev/sda1) -> /backup (/dev/hdc1) mount_check: OK tune2fs: OK rsync: OK grub-install: OK