手动备份论坛数据很麻烦,姥爷太懒就随手写了个脚本,分享出来,给大家参考。
每天自动按日期命名备份一次,然后发送到异地服务器,自动删除超过30天的备份数据,脚本如下:
#!/bin/sh
# 每次的备份数据以日期创建文件夹存放,同时删除过期备份
DATE=`date -d "now" +%Y%m%d%H`
ODATE=`date -d "-1 month" +%Y%m%d%H`
newdir=/home/$DATE
olddir=/home/$ODATE
# 删除过期备份数据
if [ -d $olddir ];
then
rm -rf $olddir
fi
# 备份整个数据库
dumpFile=$DATE.sql.gz
mysqldump -uroot -proot --all-databases | gzip >/home/$dumpFile
sleep 5s
# 复制到远程服务器
scp /home/$dumpFile root@89.64.89.64:/home/
保存上面脚本,命名为 bak.sh
,下面设置每天凌晨3点运行备份脚本:
crontab -e
写入下面内容:
0 3 * * * bash /root/bak.sh
保存后,重启一下cron就ok了:
service cron restart