注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

debian里面的cron定时任务和find命令的特殊用法  

2016-03-31 14:27:19|  分类: linux相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
cron 定时任务
============
https://debian-handbook.info/browse/zh-CN/stable/sect.task-scheduling-cron-atd.html

设置任务
--------
```bash
export EDITOR=vim
crontab -u username -e
···

# 创建每隔一分钟运行的任务
*/1 * * * * date >> /opt/test/log/cron.log

# 创建每天凌晨4点1分运行的任务
1 4 * * * date >> /opt/test/log/cron.log


find命令的特殊用法
==================

查找/opt/temp 目录下的 名字扩展名为gz 修改时间在1分钟之前的文件 把找到的第1个匹配文件名作为 输入参数,调用/opt/collector.sh 来处理。  -quit表示找到第一个文件就退出。如果不指定-quit 则是对每个文件都进行处理.  -execdir和 -quit是 and 关系,也就是是前面execdir命令返回成功了才会执行 quit,参考 man find里面 对expression的解释。
find /opt/temp -name '*.gz' -mmin +1  -execdir /opt/collector.sh {} \; -quit

重复执行两次,这样也能达到只处理两个文件的目的,当然前提是第一次处理的时候就把文件改名了,不然第一个find还是返回一个一样的结果吧
find /opt/temp  \( -name '*.gz' -mmin +1  -execdir /opt/collector.sh {} \; \) ,  \( -name '*.gz' -mmin +1  -quit \) && find /opt/temp  \( -name '*.gz' -mmin +1  -execdir /opt/collector.sh {} \; \) ,  \( -name '*.gz' -mmin +1  -quit \) 


和上面语句类似的效果, 这里面每查找到一个匹配的文件都先sleep 等待一秒再继续下一个,这样在head 读到两行的关闭pipe的时候 , find来来不及调用太多fstat操作访问的文件属性,这样可以避免很多没必要的fstat。人为减慢了处理速度
find /opt/smsc/cdr/ -mmin +2  -name "*.gz" -print -exec sleep 1 \; | head -n 2 | xargs -r -L 1 /opt/cdr_collector.sh


删除所有最后修改时间为一分钟之前的gz文件
find /opt/temp -name '*.gz' -mmin +1  -delete 

删除所有最后修改时间一天之前的gz文件
find /opt/temp -name '*.gz' -mtime +1  -delete 

显示所有最后修改时间在1分钟之前的目录
find /opt/temp -type d  -mmin +1

删除所有的空目录和文件
find /opt/temp  -type d -empty -delete



  评论这张
 
阅读(213)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017