linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。

cron介绍

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab的使用

crontab [-u username]    //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作表)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。保存退出后,即可生效,默认crontab会每分钟检查一次任务文件的。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

  • * 取值范围内的所有数字
  • / 每过多少个数字
  • - 从X到Z
  • 散列数字

日志

  • 在 /var/log/cron 中可以查看执行日志
tail -1000f /var/log/cron
  • 在crontab中的任务指定日志
* * * * * /home/mppay/auto-truncate-log.sh >> /home/mppay/auto-truncate-log.log

特别注意

crond的任务计划, 有并不会调用用户设置的环境变量,它有自己的环境变量,当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,但用crond执行的时候就会不行,这时你要么写完整的绝对路径,要么将环境变量添加到 /etc/crontab 中。另外,ceontab中不方便执行语句繁多的任务,常用推荐是写成shell脚本或python脚本进行执行。

实例

实例1:每1分钟执行一次myCommand

* * * * * myCommand

实例2:每小时的第3和第15分钟执行

, * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行

, - * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

, - */  *  * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

, - * *  myCommand

实例6:每晚的21:30重启smb

  * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

  ,, * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

  * * , /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

, - * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

  * *  /etc/init.d/smb restart

实例11:每一小时重启smb

* */ * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

* -/ * * * /etc/init.d/smb restart

实例13:每天凌晨0点执行curator

  */ * * curator --config /opt/elasticsearch-curator/config.yml /opt/elasticsearch-curator/action_all.yml
												

最新文章

  1. XML 概述 (可扩展标记语言)
  2. hdu 1548 楼梯 bfs或最短路 dijkstra
  3. .net面试题(.Net+Html+Javascript)
  4. ios-NSStringFromCGRect直接输出控件的frame
  5. 在ubuntu下安装phpmyadmin 出现404错误
  6. c# 4.0新特性一览
  7. Java时间操作(一):关于UTC格式时间处理
  8. Spark2.2.0分布式集群安装(StandAlone模式)
  9. C#学习笔记 day_three
  10. .NET Core:依赖注入
  11. 图片与Base64的转换
  12. mybatis-generator自动生成Mapper.dao.entity
  13. Python3练习题 021:递归方法求阶乘
  14. 3.3 unittest批量执行
  15. 1、javaweb学习之配置文件web.xml
  16. XSS钓鱼某网约车后台一探究竟,乘客隐私暴露引发思考
  17. 未能使用“Csc”任务的输入参数初始化该任务
  18. linux systemctl 命令
  19. 正则grep
  20. PAT02-线性结构3 Reversing Linked List

热门文章

  1. 01-Spring概述
  2. nginx 环境 thinkphp 隐藏index.php
  3. 备份MySQL数据库并上传到阿里云OSS存储
  4. 洛谷P2221 高速公路【线段树】
  5. Linux 介绍与安装
  6. 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础
  7. iwap问题
  8. 对深层嵌套对象进行取值&赋值
  9. Bzoj 3333 高级打字机(主席树)
  10. webkit vs v8