手上維護著一個N久前的古老網站,網站用的虛擬主機只有ftp,備份必須借助工具才能實現,時間長了人也變的懶了,想搞個自動備份的方案,先折騰一下整站打包。廢話不多少直接開干,以下是整站打包代碼(ps:網上找一圈基本都是只能在php7.0以下的版本運行,沒辦法只能自己折騰)
<?php
$token = $_GET@['token'];
if($token=="123456")
{
$zip = new ZipArchive();
//打包壓縮存放在路徑
$filename = "./baks/".date("Y-m-d").'_'.mt_rand(000,999).".zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("無法創建 <$filename> ");
}
$files = listdir();
foreach($files as $path)
{
$zip->addFile($path,str_replace("./","",str_replace("","/",$path)));
}
echo "壓縮完成,共壓縮了: " . $zip->numFiles . "個文件 ";
$zip->close();
}
Function listdir($start_dir='.') {
$files = array();
if (is_dir($start_dir)) {
$fh = opendir($start_dir);
while (($file = readdir($fh)) !== false) {
if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
$filepath = $start_dir . '/' . $file;
//跳過不備份的目錄baks
if(strpos($filepath,'baks') !== false) continue;
if ( is_dir($filepath) )
$files = array_merge($files, listdir($filepath));
else
array_push($files, $filepath);
}
closedir($fh);
} else {
$files = false;
}
return $files;
}
?>
以上在代碼可在網站任意目錄執行,寫入目錄需要有讀寫權限最好先自己手動創建。token可自由編輯利用腳本自動訪問該地址即可實現每日本地備份。
接下來準備搞個異地備份腳本,這樣就可以安心的偷懶了。
如無特別說明,文章均為本站原創。轉載請注明出處:http://www.sysbbie.com/phper/39.html
評論列表