沉睡个人博客
沉睡个人博客
博客
工具箱
留言板
沉睡个人博客
博客
工具箱
首页
Linux
【Linux】Linux中使用crontab实现定时任务调度
【Linux】Linux中使用crontab实现定时任务调度
939人已阅读
时间:2022-10-26 21:42:57
### cron 机制简介: cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制。 ### 开启与关闭 crontab 服务: service crond start #启动crontab服务 service crond status #查看crontab服务状态 service crond stop #关闭crontab服务 service crond restart #重启crontab服务 service crond reload #重新载入配置 ### 新增调度任务的两种方式: 1、在命令行输入: `crontab -e` ,然后添加相应的任务,最后 wq存盘退出。 2、直接编辑 `/etc/crontab`文件,即 `vim /etc/crontab`,添加相应的任务。 crontab -e 配置是针对某个用户的,而编辑 /etc/crontab 是针对系统的任务 ### 查看调度任务: crontab -l ,列出当前的所有调度任务 crontab -l -u jp ,列出用户jp的所有调度任务 ### 删除调度任务 : crontab -r ,删除所有任务调度工作 ### 直接编辑 vim /etc/crontab ,默认的文件形式如下: vim /etc/crontab,crontab 文件的解释: ![image.png](http://lym.pub:443/profile/upload/2022/10/26/76688900-39c9-471e-b4ac-a0f2ff08dae3.png) 前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。 ### 文件 /etc/crontab 中每行任务的描述格式如下: minute hour day month dayofweek command(分时日月周) minute - 从0到59的整数 hour - 从0到23的整数 day - 从1到31的整数 (必须是指定月份的有效日期) month - 从1到12的整数 (或如Jan或Feb简写的月份) dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示) command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令) 分布代表分 时 天 月 星期几 数值范围分别是 0-59: 0-23 :1-31: 1-12: 0-7 ### 记住几个特殊符号的含义: 星号(*):代表所有可能的值,举个例子,在小时字段中,一个星号等同于每个小时;在月份字段中,一个星号则等同于每月。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线( / ):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。 ### corn 时间表例子(分时日月周): */1 * * * * bin/sh root/1.sh #每1分钟执行一次 test .sh 0 */2 * * * bin/sh root/1.sh > out #每两小时执行一次test.sh并将结果存入out中 00 00 * * * bin/sh root/1.sh #每天的凌晨0:0分执行 30 21 * * * bin/sh root/1.sh #每天的21:30分执行 15 16 * * 1 command #每周一16:15 运行命令 00 12 1 * * command #每个月的1号的中午12:00点执行命令 00 8* * * if [date +%d -d tomorrow = 01 ] ; then ; command #个月的最后一天8点执行命令 可以用三字符的文本值(mon、tue、wed、thu、fri、sat、sun)或数值(0为周日,6为周六) 来指定dayofweek表项。 root表示以root用户身份来运行 run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本 对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。 整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4 指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。 符号“/”指定步进设置。“/
”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。 ### 注意: */1 * * * * bin/sh /root/1.sh,得指定用bin/sh运行,否则运行.sh文件可能报错。 */1 * * * * bin/sh /root/1.sh,用绝对路径,别用相对路径。 chmod +x /root/1.sh,记得给文件添加可执行权限。 > 转发地址:https://blog.csdn.net/qq_17685725/article/details/123487919
上一篇:【linux】linux给⽤户添加root权限⽅法总结
下一篇:【java】spring boot中,使用LocalDateTime.now()相差八小时