linux crontab 定时任务 解压文件 流程 详解

别说谁变了你拦得住时间么 提交于 2020-02-27 00:15:26

注:此环境基于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

保存即可

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!