X

Linux備份方法

Linux 的備份非常的重要.. 下面連結的文章中.. 就介紹了一些方法..
不過最特別的是這篇的文章下方 benny 的討論發言.. 自己寫的 Php Script..
雖然我是沒用以下的這個 Php Script 來備份..(小弟是用 Bash Script 來備份)
不過.. 這個程式寫的很漂亮~~ 要好好保存下來~ 🙂
(Mmm... 不過還沒有測試過就是了.. 🙂 )


此篇文章(程式)取自
http://free.tnc.edu.tw/modules/news/article.php?storyid=20&com_id=495&com_rootid=495&com_mode=threadcomment495 的討論發言區(benny 發表)
這是 benny 用 php 寫的備份 script
只需要依個人所需更改 $SOURCE_DIR 和 $EXCLUDE_D 最後再 chmod +x 就可以了。
如果要放 crontab,將 $ask = strtolower(read());
拿掉就可以了
#!/usr/bin/php -q
<?php
//Change The following two variables
$SOURCE_DIR = "/bin /boot /etc /home /lib /mnt /opt /root /sbin /tmp /usr /var";
$EXCLUDE_D = "/home/benny/mnt /usr/portage/distfiles";
//Stop here unless you know what you're doing
$EXCLUDE_DIR = explode(" ",$EXCLUDE_D);
$DEST_DIR = "/misc/backup";
$DATE = date("Y-m-d");
$FILE = "BACKUP-".$DATE.".tgz";
for ( $i = 0; $i < count($EXCLUDE_DIR); $i++ ) {
if ( !$EXCLUDE ) { $EXCLUDE = " --exclude=".$EXCLUDE_DIR[$i]; }
else { $EXCLUDE = $EXCLUDE." --exclude=".$EXCLUDE_DIR[$i]; }
}
$BACKUP = "tar -zcvf ".$DEST_DIR."/".$FILE." ".$SOURCE_DIR.$EXCLUDE;
function read() {
$fp = fopen("<a href="php://stdin%22" target="_blank">php://stdin"</a>,"r");
$input = fgets($fp,255);
fclose($fp);
return eregi_replace("\n","",$input);
}
echo "=-= System Backup =-=\nDESTINATION PATH: "
.$DEST_DIR."\nFILE: ".$FILE.
"\nExcluding: $EXCLUDE_D\n".
"\nProceed? [Y/n]: ";

$ask = strtolower(read());
if ( !$ask ) { $ask = "y"; }
if ( $ask == "y" ) {
echo "System Backup will start within 5 Secs\n";
for ( $i=0; $i<5; $i++ ) {
echo 5-$i."\n";
sleep(1);
}
echo "Initializing System Backup...\n";
shell_exec("echo Starting @ `date` >> backup.log");
shell_exec("echo Filename: $FILE >> backup.log");
shell_exec("$BACKUP");
shell_exec("echo Completed @ `date` >> backup.log");
}
else { echo "Aborted!\n"; }
?>

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.