全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 2024|回复: 10
打印 上一主题 下一主题

[经验] 我来发个自用的数据库和文件的异地备份PHP代码

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-26 21:56:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自用的,将以下代码保存为php文件,然后cron定时执行。需准备另外一个FTP机器存放备份

这个是备份MYSQL数据库的
  1. <?php
  2. //本地备份目录
  3. $localdir='/var/www/backup';

  4. //远程FTP目录
  5. $ftpdir='/mybackup/';

  6. //FTP信息
  7. $ftp_server='FTP服务器的域名或IP';
  8. $ftp_user='FTP账号';
  9. $ftp_pass='FTP密码';


  10. $stamp=date("Y-m-d",time());
  11. shell_exec("cd $localdir;mysqldump -u数据库账号 -p数据库密码 数据库名 > 163com_db_$stamp.sql;bzip2 -z -9 -f 163com_db_$stamp.sql;");


  12. //FTP上传文件
  13. $filename="163com_db_$stamp.sql.bz2";
  14. if(empty($filename)){
  15.         //ftpupload('1.txt');
  16.         exit;
  17. }elseif(!file_exists($localdir.'/'.$filename)){
  18.         //ftpupload('2.txt');
  19.         exit;
  20. }else{
  21.         //上传开始
  22.         ftpupload($filename);
  23.         exit;
  24. }

  25. function ftpupload($filename){
  26.         global $localdir, $ftpdir, $ftp_server, $ftp_user, $ftp_pass;
  27.         $source_file=$localdir.'/'.$filename;
  28.         $destination_file=$ftpdir.$filename;

  29.         $conn_id=ftp_connect($ftp_server) or die("不能连接到FTP服务器");
  30.         $login_result=ftp_login($conn_id,$ftp_user,$ftp_pass);

  31.         if(!$conn_id||!$login_result){
  32.                 echo 'FTP服务器连接错误';
  33.                 exit;
  34.         }else{
  35.         }
  36.         ftp_pasv($conn_id,false);
  37.         ftp_put($conn_id,$destination_file,$source_file,FTP_BINARY) or die("不能连接到FTP服务器");
  38.         ftp_close($conn_id);
  39.         //删除本地备份
  40.         unlink($localdir.'/'.$filename);
  41. }
  42. ?>
复制代码

[ 本帖最后由 l12ab 于 2011-9-26 22:02 编辑 ]
2#
 楼主| 发表于 2011-9-26 21:58:07 | 只看该作者
这个是备份网站文件的
  1. <?php
  2. //本地备份目录
  3. $localdir='/var/www/backup';

  4. //远程FTP目录
  5. $ftpdir='/mybackup/';

  6. //FTP信息
  7. $ftp_server='FTP服务器的域名或IP';
  8. $ftp_user='FTP账号';
  9. $ftp_pass='FTP密码';


  10. $stamp=date("Y-m-d",time());
  11. shell_exec("cd /var/www/163.com;tar -cvf 163com_web_$stamp.tar *;mv 163com_web_$stamp.tar $localdir/163com_web_$stamp.tar;cd $localdir;bzip2 -z -9 -f 163com_web_$stamp.tar;");


  12. //FTP上传文件
  13. $filename="163com_web_$stamp.tar.bz2";
  14. if(empty($filename)){
  15.         //ftpupload('1.txt');
  16.         exit;
  17. }elseif(!file_exists($localdir.'/'.$filename)){
  18.         //ftpupload('2.txt');
  19.         exit;
  20. }else{
  21.         //上传开始
  22.         ftpupload($filename);
  23.         exit;
  24. }

  25. function ftpupload($filename){
  26.         global $localdir, $ftpdir, $ftp_server, $ftp_user, $ftp_pass;
  27.         $source_file=$localdir.'/'.$filename;
  28.         $destination_file=$ftpdir.$filename;

  29.         $conn_id=ftp_connect($ftp_server) or die("不能连接到FTP服务器");
  30.         $login_result=ftp_login($conn_id,$ftp_user,$ftp_pass);

  31.         if(!$conn_id||!$login_result){
  32.                 echo 'FTP服务器连接错误';
  33.                 exit;
  34.         }else{
  35.         }
  36.         ftp_pasv($conn_id,false);
  37.         ftp_put($conn_id,$destination_file,$source_file,FTP_BINARY) or die("不能连接到FTP服务器");
  38.         ftp_close($conn_id);
  39.         //删除本地备份
  40.         unlink($localdir.'/'.$filename);
  41. }
  42. ?>
复制代码

[ 本帖最后由 l12ab 于 2011-9-26 22:02 编辑 ]
3#
发表于 2011-9-26 21:59:02 | 只看该作者
很多时候 shell_exec都被禁了 咋办
4#
发表于 2011-9-26 21:59:36 | 只看该作者
居然没有set_time_limit  坑爹啊
5#
发表于 2011-9-26 21:59:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
6#
发表于 2011-9-26 22:00:24 | 只看该作者
不错,收藏
7#
 楼主| 发表于 2011-9-26 22:03:44 | 只看该作者
原帖由 jasontse 于 2011-9-26 21:59 发表
居然没有set_time_limit  坑爹啊

是哦,我的数据库小,文件数非常少,把这个省了
8#
发表于 2011-9-26 22:03:44 | 只看该作者
原帖由 cdm 于 2011-9-26 21:59 发表
  技术贴 ,大力支持  ,有分了给你加上
9#
发表于 2011-9-26 22:05:57 | 只看该作者
呵呵 技术贴 支持啦
10#
发表于 2011-9-26 22:06:33 | 只看该作者
拜读技术帝
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-8 05:22 , Processed in 0.064059 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表