大家好,又见面了,我是你们的朋友全栈君。
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。在Linux系统中,当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。
计划任务在Linux 中一般使用 Crontab,通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 Shell 脚本。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令:crontab命令。因此,Linux计划任务整体还是围绕Crontab展开的。
1、crontab命令选项
# crontab -u
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
2、cron文件写法
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件。Minute Hour Day Month Week command
分钟 小时 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务,0表示周日
Command 指定要执行的程序 、脚本或命令
3、特殊符号的含义
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
4、常用命令
1)cron配置文件路径
# vi /etc/crontab
2)重启cron
# /etc/init.d/crond restart
Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}
3)查看cron服务情况
# service crond status //crond服务状态
# service crond stop //crond服务关闭
# service crond start //crond服务打开
4)查看cron日志
# cat /var/log/cron
5)别忘了将脚本改成可执行
# chmod x filename
5、常用示例
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段] */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:
run-parts参数表示,执行后面目录中的所有可执行文件
第10、20、30分钟输出到/tmp/cron1.txt:
10,20,30 * * * * echo “第10、20、30分钟输出一次” >> /tmp/cron1.txt
以用户lzw.me的身份每两小时就运行某个程序:
0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1
我们不难看出Linux计划任务的核心还是Linux crontab 命令,通过Linux crontab 命令来实现各种Linux计划任务。Linux计划任务和Windows计划任务还是有一定的差异的,Linux系统更加专业化,对使用者的要求更高。想要彻底掌握Linux系统,对于初学者来说任重而道远,不过也没有必要担心,本站的Linux教程对Linux进行了全方位的知识总结和讲解,能够帮助我们更快地掌握Linux。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158436.html原文链接:https://javaforall.cn