cPanel定时备份方案

发表时间:2009/04/28 作者: Felix in WordPress

      前段时间想找个自动备份虚拟主机的方案,最后在一个国外论坛里找到了一个方案,不过最终还是没有使用,想想可能对其他朋友有帮助,就分享出来给大家看看。

      这个方案是利用的时钟守护作业( Jobs)来定时运行全局备份脚本并自动FTP上传到其他的服务器。

cPanel定时备份方案
image


      这个全局脚本包含的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,并设置该文件夹的权限为600。

全局备份脚本如下,保存为fullbackup.php:

  1. <?php
  2.  
  3. // PHP script to allow periodic backups automatically.
  4. // Based on script posted by max.hedroom in .net forums
  5. //   This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE!
  6.  
  7. // ********* 下面项目需要设定 *********
  8.  
  9. // 登入信息
  10. $cpuser = "username"; // 帐号
  11. $cppass = "password"; // 密码
  12. $domain = "example.com"; // 使用的域名
  13. $skin = "x3"; // 设定正在使用的风格(不正确将不能正常运行本脚本)
  14.  
  15. // FTP上传的信息(这是不是指你所在服务器的FTP信息)
  16. $ftpuser = "ftpusername"; // FTP帐号
  17. $ftppass = "ftppassword"; // FTP密码
  18. $ftphost = "ftp.example.com"; // FTP服务器网址(或ip)
  19. $ftpmode = "ftp"; // FTP模式("ftp"或"passiveftp")
  20.  
  21. // 通知信息
  22. $notifyemail = "you@example.com"; // 信息反馈邮件地址
  23.  
  24. // 安全模式
  25. $secure = 0; // 0为标准http, 1为ssl(需要主机支持ssl)
  26.  
  27. // 设定值为1时会在排程记录中产生网页报告
  28. $debug = 0;
  29.  
  30. // *********** 以下不需更改 *********
  31.  
  32. if ($secure) {
  33.    $url = "ssl://".$domain;
  34.    $port = 2083;
  35. } else {
  36.    $url = $domain;
  37.    $port = 2082;
  38. }
  39.  
  40. $socket = fsockopen($url,$port);
  41. if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }
  42.  
  43. // Encode authentication string
  44. $authstr = $cpuser.":".$cppass;
  45. $pass = base64_encode($authstr);
  46.  
  47. $params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user
  48. =$ftpuser&pass=$ftppass&submit=Generate Backup";
  49.  
  50. // Make POST to
  51. fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?"
  52. .$params." HTTP/1.0\r\n");
  53. fputs($socket,"Host: $domain\r\n");
  54. fputs($socket,"Authorization: Basic $pass\r\n");
  55. fputs($socket,"Connection: Close\r\n");
  56. fputs($socket,"\r\n");
  57.  
  58. // Grab response even if we don't do anything with it.
  59. while (!feof($socket)) {
  60.   $response = fgets($socket,4096);
  61.   if ($debug) echo $response;
  62. }
  63.  
  64. fclose($socket);
  65.  
  66. ?>

这里要注意的是风格一定要写对,我用过的一般都是x3。
还有FTP上传的信息是指要备份到另外的FTP服务器上的信息。

最后就是在时钟守护作业( Jobs)里面添加定时和备份命令了。

cPanel定时备份方案

标签:, , , , , ,

相关文章:

8 条评论

Jutoy

2009/04/28

我用的是梦游的主机。通过phpmyadmin貌似可以导出数据库……不过我还没试过。我暂时还是使用WordPress自带的那个导出功能来备份文章评论等。。 :twisted:

Notify

品色

2009/04/29

不错 我就喜欢这样的

Notify

张岩

2009/04/29

定时备份太重要了 :cool:

Notify

crisco

2009/04/30

自动备份好啊,我以前都手动备的 :sad:

Notify

Rock

2009/05/05

那是那是...不过我还是手动备份,一周一次... :razz:

Notify

梅花香

2009/05/07

恩 学习下 挺不错的 :razz:

Notify

华晨

2009/05/16

好复杂,看不懂唉~

Notify

sta.cz.cc

2010/02/26

现在的cpanel不是可以在后台自定义任务了吗?

Notify

发表评论