注:此环境基于centOS7
第一步:查看crontab是否开启
service crond status
确保处于启动状态
第二步:创建tar包备份文件夹
mkdir /root/aa/backuptar
第三步:编写shell脚本
vim /root/aa/dealtar.sh
内容为:
#!/bin/sh
cd /root/aa
find /root/aa -maxdepth 1 -type f -name "*.tar"|xargs -i sh -c 'tar vxf {} && mv {} /root/aa/backuptar && rm -rf {}' && echo $(date) success! >> /root/aa/tar.log
保存即可
脚本内容解释:
find 要查找的文件目录 -maxdepth 1 就是只查找/root/aa当前目录的,如果aa下还有文件夹,则忽略,如果值为2的话,就往下查两级(假如/root/aa/bb,aa目录下和bb目录下符合要求的都会查出来)-type f 代表类型是文件 -name "*.tar" 代表名称以点tar结尾
| 竖线为管道符 xargs(xargs命令是给其他命令传递参数的一个过滤器) -i(默认替换字符为{}) sh -c 批量执行命令(把字符串当成命令执行)tar vxf {} 把前边find命令找到的文件解压到/root/aa这个目录下 && mv {} /root/aa/backuptar 接着把它移动到backuptar目录下 && rm -rf {}再接着删除find找到的文件(这一步应该是多余的,移走之后就没有了) && echo $(date) success! >> /root/aa/tar.log 接着打印时间 success!写道tar.log文件中(tar.log不需要提前创建)
第四步骤 添加定时任务
crontab -e
添加以下内容
# 每3分钟执行一回
*/3 * * * * sh /root/aa/dealtar.sh
保存即可
来源:CSDN
作者:softwareDragon
链接:https://blog.csdn.net/qq_33348135/article/details/104519146