您的位置:首页 > 其它

VPS备份所有数据脚本

2011-10-20 20:40 218 查看
代码来自网络,备份的比较齐全,网站文件夹,php/mysql/nginx/ssh的配置文件,还有crontab任务列表也备份了,执行脚本后最后会生成一个tar.gz文件,按当天日期命名。
生成的文件应该不会小,所以发送到邮箱不合适,可以上传到FTP,相关代码网上很多,我自己没安装ftp,所以是两台VPS备份后,互相下载。

保存下面代码,或者从这下载脚本
给脚本添加权限
chmod +x backup.sh

用crontab实现每天0点自动备份,crontab -e
00 00 * * * /home/backup.sh
#!/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")                          #今日时间

MYSQL_UserName=root                             #mysql账号

MYSQL_PassWord=password                         #mysql密码

DB_Name1=test1                                  #数据库1

DB_Name2=test2                                  #数据库2

DB_Name3=test3                                  #数据库3

DB_Name4=test4                                  #数据库4 默认是四个数据库,按自己情况增加减少

#需要修改的地方从这里结束

#手动备份删除今日数据

rm -fr /$Folder/$date.tar.gz
#删除3天前的数据

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数据库
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name1 > /$Folder/$date/$DB_Name1-$(date +"%Y%m%d").sql

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name2 > /$Folder/$date/$DB_Name2-$(date +"%Y%m%d").sql

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name3 > /$Folder/$date/$DB_Name3-$(date +"%Y%m%d").sql

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $DB_Name4 > /$Folder/$date/$DB_Name4-$(date +"%Y%m%d").sql
cd $Folder

tar zcf /$Folder/$date/database-$(date +"%Y%m%d").tar.gz ./$date/*.sql
#备份NGINX配置文件

cd $nginx_DATA

tar zcf /$Folder/$date/nginx.tar.gz ./*
#备份PHP配置文件

cd $PHP_Config

tar zcf /$Folder/$date/php.tar.gz ./*
#压缩FTP Server文件

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

转自:http://014.cc/backup
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: