rsync Twoim przyjacielem

Oddaję do użytku skrypt mojego autorstwa napisany w php, wykonujący kopię synchronizacyjną plików znajdujących się w katalogu podanym jako pierwszy parametr wywołania.

#! /usr/local/bin/php -f
# by Adam Kucza (c) 2007
<?
$x = $_SERVER[„argv”];

if (count($x)==4)
{
//print_r($x);

$rsync = „/usr/local/bin/rsync”;

$srv = $x[1];
$src = $x[2];
$dst = $x[3];

$t = getdate();
//print_r($t);
if (strlen($t[‚mon’])<10) $t['mon']="0".$t['mon']; if (strlen($t['mday'])<10) $t['mday']="0".$t['mday']; $l = "/var/log/rsync/".$x[1]."_".$t['year']."-".$t['mon']."-".$t['mday']."_".$t['hours'].".".$t['minutes'].".".$t['seconds']; $o = ""; $o .= "-a "; $o .= "-v "; $o .= "-z "; $o .= "--delete "; $o .= "--ignore-errors "; $o .= "--force "; $o .= "--stats "; $o .= "--log-file=".$l." "; //$o .= "--dry-run "; //$o .= "--modify-window=1 "; //$o .= "--iconv=UTF-8,CP1251 "; //$o .= "--blocking-io "; //$o .= "--delete-after "; //$o .= "--delete-before "; //$o .= "--progress "; //$o .= "--delete-excluded "; //$o .= "--exclude-from=$EXCLUDES "; //$o .= "--backup --backup-dir=/$BACKUPDIR -a "; $z = $rsync." ".$o." ".$src." ".$srv."::".$dst; echo $z."\n"; system($z); } else { echo "\nusage: ".$x[0]." server_address source_folder destination_module\n"; echo "\nexample: ".$x[0]." 192.168.1.100 /home/user/ backup_module\n"; } echo "\n"; ?>

Przykład jego wywołania wygląda np. tak:

./rsync.php /home/users/ backup_server

enjoy! 🙂

One thought on “rsync Twoim przyjacielem”

  1. Witam,

    Skrypt bardzo fajny. Ale po co zaprzęgać php jak to samo zrobi powłoka sh czy bash?
    Troszkę przekombinowane to. Ale najważniejsze, że działa i spełnia Twoje wymagania

Możliwość komentowania jest wyłączona.