VPS备份所有数据脚本

作者:dianso 发布时间:January 26, 2011 分类:沒事折騰

备份 VPS 数据用的脚本,昨天不小心弄丢了点数据,导致重新安装了 VPS,浪费一下午时间。

代码来自网络,根据我的需要,修改了很多地方,备份的比较齐全,网站文件夹,php/mysql/nginx/ssh 的配置文件,还有 crontab 任务列表也备份了,执行脚本后最后会生成一个 tar.gz 文件,按当天日期命名。

生成的文件应该不会小,所以发送到邮箱不合适,可以上传到 FTP,相关代码网上很多,我自己没安装 ftp,所以是两台 VPS 备份后,互相下载。

保存下面代码,或者从这下载脚本

给脚本添加权限

chmod +x backup.sh

用 crontab 实现每天 0 点自动备份,crontab -e

00 00 * * * /home/backup.sh

2011.7.28 更新

#!/bin/bash
#需要修改的地方从这里开始
WEB_DATA=/home/wwwroot                          #要备份的网站数据
nginx_DATA=/usr/local/nginx/conf                #要备份的 NGINX 配置文件
PHP_Config=/usr/local/php/etc                   #要备份的 PHP 配置文件
Ftp=/usr/local/pureftpd                         #要备份的 PURE-FTPD
Folder=/home/bak                                #备份文件的存放文件夹
Config=/etc/init.d/                             #要备份的服务文件
ppp=/etc/ppp                                    #要备份的 PPP(pptp) 账号数据
date=$(date +"%Y%m%d")                          #今日时间
DBvar=/usr/local/mysql/var                      #数据库地址
FTP_SERVER=                                     #填写你的 FTP 地址 IP 或者域名
FTP_USER=                                       #FTP 用户名
FTP_PASS=                                       #FTP 密码
#需要修改的地方从这里结束
 
#手动备份删除今日数据 & 删除 3 天前的数据
rm -fr /$Folder/$date.tar.gz    
rm -fr /$Folder/$(date -d -3day +"%Y%m%d").tar.gz    
 
#创建今天的备份目录
mkdir -p /$Folder/$date                              
 
#压缩网站数据
cd $WEB_DATA
tar zcf /$Folder/$date/web.tar.gz ./*
 
#先停止 mysql,然后压缩 Mysql 数据库
 
/etc/init.d/mysql stop
 
cd $DBvar
tar zcf /$Folder/$date/mysql_var.tar.gz ./*
 
/etc/init.d/mysql start
 
#备份 NGINX 配置文件
cd $nginx_DATA
tar zcf /$Folder/$date/nginx.tar.gz ./*
 
#备份 PHP 配置文件
cd $PHP_Config
tar zcf /$Folder/$date/php.tar.gz ./*
 
#压缩 Pureftpd 配置文件
cd $Ftp
tar zcf /$Folder/$date/ftp.tar.gz ./*
 
#压缩服务文件
cd $Config
tar zcf /$Folder/$date/d.tar.gz ./nginx ./mysql ./php-fpm ./ftpd
 
#打包 PPP 配置以及 PPTP 拨号帐号
cd $ppp
tar zcf /$Folder/$date/ppp.tar.gz ./*
 
#备份 SSHD 配置文件
cp /etc/ssh/sshd_config /$Folder/$date
 
#备份 crontab 内容
crontab -l > /$Folder/$date/crontab_$date.txt
 
#压缩当天数据
cd /$Folder/
tar zcf /$Folder/$date.tar.gz ./$date/*
 
#删除当天备份文件夹
rm -fr /$Folder/$date
 
echo "Ftp file to server"
 
ftp -n $FTP_SERVER > ftp.log 2>&1 <<EOF
user $FTP_USER $FTP_PASS
binary
put $date.tar.gz
bye
EOF

标签: 备份, 脚本, vps, linux

  • VPS上安装Git
  • Linux建立管理员
  • 用Dropbox来备份VPS
  • 已有 57 条评论 »

    1. 其实我们可以从另一个角度看这个事情,那样会觉得更好处理。

    2. 支持,博主继续。。。。

    3. 不错,帮顶一下了。。

    4. 厦门电脑回收 电话:15359313393 QQ:56801025
      淘宝店:http://store.taobao.com/shop/view_shop.htm?asker=wangwang&shop_nick=chuangxinit

    5. 世界果然信息量大

    6. 正在准备学习linux ,考个 rhce 数据库是必须学习的!

    7. 文章写的很给力

    8. 这方面的知识不是很懂,看来要多学习学习

    9. 多备份下,以防万一吧 ~~~


    10. 楼主博客真不错!赞一个

    11. [...] 保存下面代码,或者从这下载脚本。 [...]

    添加新评论 »

    表情