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