本文详细如何使用Cpanel 自带的 时钟作业功能,配合PHP 脚本,定时将虚拟主机内的所有文件,以及网站数据库备份至远程FTP 空间。

适用场景

  • 适用Cpanel 的虚拟主机
  • 自备FTP 远程空间

备份脚本

网络上很多类似教程使用的脚本都是同样的,这里我也是使用网络上找到的,记录如下:

<?php
// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
 
// ********* 下面项目需要设定 *********
 
// cPanel登录信息
$cpuser = "***"; // CPanel帐号
$cppass = "***"; // CPanel密码
$domain = "***"; // cPanel所在域名或IP
$skin = "paper_lantern"; // 正在使用的cPanel风格,默认"x3"。
 
 
/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "ftp"; // 备份目的地,默认"homedir",即只做本地备份。
 
// FTP上传的信息(备份目的地为本地的,可不填)
 
$ftpuser = "***"; // FTP帐号
$ftppass = "***"; // FTP密码
$ftphost = "***"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "***"; // 远程FTP目录,默认"/"
 
// 通知信息
$notifyemail = "example@gmail.com"; // 信息反馈邮件地址
 
// 安全模式
$secure = 1; // 0为标准http, 1为ssl(需要主机支持ssl)
 
// 设定值为1时会在排程记录中产生网页报告
$debug = 0;
 
// *********** 以下内容不要更改! *********
 
if ($secure) {
   $url = "ssl://".$domain;
   $port = 2083;
} else {
   $url = $domain;
   $port = 2082;
}
 
$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }
 
// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);
 
$params = "dest=$savedir&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";
 
// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");
 
// Grab response even if we don't do anything with it.
while (!feof($socket)) {
   $response = fgets($socket,4096);
   if ($debug) echo $response;
}
 
fclose($socket);
 
?>

按照脚本中的注释填写好你自己的CPanel帐号、CPanel密码、CPanel 所在域名、风格、FTP 上传信息等等

上传脚本

填写完毕后,将以上代码保存为 fullbackup.php,然后上传至你的虚拟主机里 public_html 以外的目录

注意一定要放在public_html 以外的目录

比如我存放的位置为:/home/我的用户名/backup/fullbackup.php

权限设置

文件夹 backup设置权限为 0700

uud.me-tihuan

另外,fullbackup.php脚本文件设置权限为 0600

uud.me-tihuan

设置定时运行

如果你的虚拟主机提供SSH 权限,那么你可以登录SSH 对脚本进行测试。

一般来说,如果你的脚本信息填写无误,都能够正常运行。

进入Cpanel 管理页面,找到 时钟作业,英文版本为 Cron jobs

uud.me-tihuan

进入定时作业设置页面:

uud.me-tihuan

运行频率可以按你按你自己的需求进行选择

Command 部分填写需要定时运行的命令,比如我填写的是:

/usr/local/bin/php /home/Cpanel用户名/backup/fullbackup.php

然后点击 Add New Cron Job,之后就会按照你设定的频率进行自动备份,并且将备份自动传输到远程FTP 空间

Last modification:February 6, 2019
如果觉得我的文章对你有用,请随意赞赏