把/root/.halo目录下面的所有文件备份到/data/backup里面,并且保存为halo20190520.tar.gz的压缩文件(20190520是指备份执行时当天的日期2019-5-20),然后只保留最近30天的备份

1、创建保存备份文件的目录:/data/backup

1
2
3
4
#进入data文件夹
cd /data
#新建backup文件夹
mkdir backup

2、创建备份脚本文件:/data/halobackup.sh

1
2
3
4
#进入data文件夹
cd /data
#新建编辑halobackup.sh
vim halobackup.sh

输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
BK_DR=/data/backup #备份文件存放路径
DB_DR=/root/.halo
DAYS=30 #DAYS=30代表删除30天前的备份,即只保留最近30天的备份
LINUX_USER=root #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/halo$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR #更改备份数据库文件的所有者
find $BK_DR -name "halo*" -type f -mtime +$DAYS -exec rm {} \; #删除30天前的备份文件(注意:{} \;中间有空格)

#保存退出
:wq

3、修改文件属性,使其可执行

1
chmod +x /data/halobackup.sh

4、修改/etc/crontab

1
2
3
4
5
6
7
8
vi /etc/crontab
#进入编辑
i
#在最下面添加, 表示每天凌晨1点40分执行备份
40 1 * * * /data/halobackup.sh

#保存退出
:wq

5、重新启动crond使设置生效

1
2
3
4
5
6
#重启服务
/bin/systemctl restart crond.service
#设为开机启动
systemctl enable crond.service
#启动服务
/bin/systemctl start crond.service