在工作中经常会遇到需要对某些文件进行定时备份的工作场景,一般本人采用linux自带的crontab定时工具+备份脚本的方式实现。具体步骤如下:
1.写备份脚本
#!/bin/sh
mkdir /data/beifentmp
##将/nasweb1/codebase/cloud2019文件夹下所有文件都复制到/data/beifentmp文件夹下
cp -r /nasweb1/codebase/cloud2019 /data/beifentmp
##然后将复制后的文件夹/data/beifentmp压缩到/data/cloudbackup文件夹下,并且压缩文件名格式为:backup+当天日期.tar.gz
tar -zcPvf /data/cloudbackup/backup$(date +%Y%m%d).tar.gz /data/beifentmp
##压缩后将临时文件夹删掉
rm -rf /data/beifentmp/
##查找/data/cloudbackup备份目录下6天前的且文件名以.tar.gz后缀的文件,执行删除命令
find /data/cloudbackup -mtime +5 -name "*.tar.gz" -exec rm -rf {} \;
最后一句查找删除命令若采用下面的写法更合理:
find /data/cloudbackup -mtime +5 -name "*.tar.gz" | xargs rm -rf
原因在于:
2. 设置定时任务
# crontab -e
00 02 * * * /bin/bash /opt/backup.sh