说明:
我这里要把/data/wwwroot目录下面的所有文件备份到/data/backup里面,并且保存为wwwrootbak20190520.tar.gz的压缩文件(20190520是指备份执行时当天的日期2019-5-20),然后只保留最近30天的备份。
1、创建保存备份文件的目录:/data/backup
cd /data
mkdir backup
2、创建备份脚本文件:/data/wwwroot_backup.sh
cd /data
vim wwwroot_backup.sh
输入以下内容:
#!/bin/sh
BK_DR=/data/backup #备份文件存放路径
DB_DR=/data/wwwroot
DAYS=30 #DAYS=30代表删除30天前的备份,即只保留最近30天的备份
LINUX_USER=root #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/wwwrootbak$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR #更改备份数据库文件的所有者
find $BK_DR -name "wwwrootbak*" -type f -mtime +$DAYS -exec rm {} \; #删除30天前的备份文件(注意:{} \;中间有空格)
3、修改文件属性,使其可执行
chmod +x /data/wwwroot_backup.sh
4、修改/etc/crontab
vi /etc/crontab
在下面添加
40 1 * * * root /data/wwwroot_backup.sh
表示每天凌晨1点40分执行备份
5、重新启动crond使设置生效
/bin/systemctl restart crond.service
systemctl enable crond.service #设为开机启动
/bin/systemctl start crond.service #启动