凌晨3点自动执行/root/bakcup.sh
脚本,备份vps上的数据并上传到FTP上。
安装步骤
- 将脚本放到
/root/
下面,按上面的注释修改脚本中的参数,并保存,如果不熟悉vi或者nano编辑器,可以用winscp - 执行:
chmod +x /root/backup.sh
为脚本添加执行权限 - 执行:
crontab -e
添加定时执行 在
crontab
中加入:0 3 * * *| /root/backup.sh
脚本内容
#!/bin/bash
echo "backup starting ..."
#需要修改的地方从这里开始
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/backup #备份文件的存放文件夹
Config=/etc/init.d/ #要备份的服务文件
#ppp=/etc/ppp #要备份的PPP(pptp)账号数据
date=$(date +"%Y%m%d") #今日时间
MYSQL_UserName=root #mysql账号
MYSQL_PassWord=此处被和谐 #mysql密码
DB_Name1=jincheng_web #数据库1
DB_Name2=ftpusers #数据库2
#DB_Name3=information_schema #数据库3
DB_Name4=mysql #数据库4 默认是四个数据库,按自己情况增加减少
#需要修改的地方从这里结束
echo "cleaning ..."
#手动备份删除今日数据
rm -fr /$Folder/$date.tar.gz
#删除3天前的数据
rm -fr /$Folder/$(date -d -3day +"%Y%m%d").tar.gz
#创建今天的备份目录
mkdir -p /$Folder/$date
echo "backup mysql ..."
#备份并压缩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
echo "backup webroot ..."
cd ~
sh lnmp stop
#压缩网站数据
cd $WEB_DATA
tar zcf /$Folder/$date/web.tar.gz ./*
echo "backup config ..."
#备份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
cp /root/* /$Folder/$date
#备份crontab内容
crontab -l > /$Folder/$date/crontab_$date.txt
#压缩当天数据
cd /$Folder/
tar zcf /$Folder/$date.tar.gz ./$date/*
#删除当天备份文件夹
rm -fr /$Folder/$date
cd ~sh lnmp start
本页的评论功能已关闭