Накидал скрипт на perl.
Может где или что упустил. Кто что подскажет буду ток рад :).
Охото доделать :) смысл что в понедельник делает полный бекап а во все остальные инкрементальные.
#!/usr/bin/perl
use POSIX ();
use Digest::MD5::File qw( file_md5_hex );
use File::Copy;
$date = POSIX::strftime('%a', localtime);
$backupfolder = "/home/user/backup/";
$pathfolder = "/home/user/test/*";
$incrfilemonday = ("$backupfolder". "" ."$date");
$filebackup = ("$backupfolder". "" ."$date". "" .".tar");
$filebackupnew = ("/home/user/". "" ."$date". "" .".tar");
if ($date eq "Monday")
{
backmonday ();
}
else
{
if ($date eq "Tuesday")
{
backinc (Monday);
}
if ($date eq "Wednesday")
{
backinc (Tuesday);
}
if ($date eq "Thursday")
{
backinc (Wednesday);
}
if ($date eq "Friday")
{
backinc (Thursday);
}
if ($date eq "Saturday")
{backinc (Friday);
}
if ($date eq "Sunday")
{
backinc (Saturday);
}
}
sub backinc
{
my ($day) = @_;
if(-e $incrfilemonday)
{
unlink $incrfilemonday;
}
copy("$backupfolder". "" ."$day", "$backupfolder". "" ."$date");
$pathinc = "$backupfolder". "" ."$date";
print $pathinc;
system (`/bin/tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --sparse --gzip --file=$filebackup --listed-incremental=$pathinc $pathfolder`);
mdtest ($filebackup);
}
sub backmonday
{
if(-e $incrfilemonday)
{
unlink $incrfilemonday;
}
if(-e $filebackup)
{
unlink $filebackup;
}
system (`/bin/tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --sparse --gzip --file=$filebackup --listed-incremental=$incrfilemonday $pathfolder`);
mdtest ($filebackup);
}
sub mdtest
{
my ($file) = @_;
copy($file, $filebackupnew) or die mdtest ();
$mdnew = file_md5_hex($filebackupnew);
$mdold = file_md5_hex($file);
if ($mdnew == $mdold)
{}
else
{
unlink $filebackupnew;
copy($file, $filebackupnew) or die mdtest ();
}
}