手上维护着一个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.pddo.cn/phper/39.html
评论列表