cPanel定时备份方案
发表时间:2009/04/28 作者: Felix in WordPress
前段时间想找个自动备份虚拟主机的方案,最后在一个国外论坛里找到了一个方案,不过最终还是没有使用,想想可能对其他朋友有帮助,就分享出来给大家看看。
这个方案是利用cPanel的时钟守护作业(Cron Jobs)来定时运行全局备份脚本并自动FTP上传到其他的服务器。
这个全局脚本包含cPanel的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,并设置该文件夹的权限为600。
全局备份脚本如下,保存为fullbackup.php:
- <?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 = "username"; // CPanel帐号
- $cppass = "password"; // CPanel密码
- $domain = "example.com"; // cPanel使用的域名
- $skin = "x3"; // 设定正在使用的cPanel风格(不正确将不能正常运行本脚本)
- // FTP上传的信息(这是不是指你CPanel所在服务器的FTP信息)
- $ftpuser = "ftpusername"; // FTP帐号
- $ftppass = "ftppassword"; // FTP密码
- $ftphost = "ftp.example.com"; // FTP服务器网址(或ip)
- $ftpmode = "ftp"; // FTP模式("ftp"或"passiveftp")
- // 通知信息
- $notifyemail = "you@example.com"; // 信息反馈邮件地址
- // 安全模式
- $secure = 0; // 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=$ftpmode&email=$notifyemail&server=$ftphost&user
- =$ftpuser&pass=$ftppass&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风格一定要写对,我用过的一般都是x3。
还有FTP上传的信息是指要备份到另外的FTP服务器上的信息。
最后就是在时钟守护作业(Cron Jobs)里面添加定时和备份命令了。
相关文章:

8 条评论
Jutoy
2009/04/28
我用的是梦游的主机。通过phpmyadmin貌似可以导出数据库……不过我还没试过。我暂时还是使用WordPress自带的那个导出功能来备份文章评论等。。
品色
2009/04/29
不错 我就喜欢这样的
张岩
2009/04/29
定时备份太重要了
crisco
2009/04/30
自动备份好啊,我以前都手动备的
Rock
2009/05/05
那是那是...不过我还是手动备份,一周一次...
梅花香
2009/05/07
恩 学习下 挺不错的
华晨
2009/05/16
好复杂,看不懂唉~
sta.cz.cc
2010/02/26
现在的cpanel不是可以在后台自定义任务了吗?
发表评论