失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux 计划任务 定时任务 执行计划 crontab

Linux 计划任务 定时任务 执行计划 crontab

时间:2022-07-04 12:42:34

相关推荐

Linux 计划任务 定时任务 执行计划 crontab

Linux 计划任务

0.前提

一切命令输入输出效果基于CenOS7

1.计划任务的分类
定时任务:即日常任务,每隔一段周期就执行的事务。对应crontab命令。突然任务:即临时决定需要做的,这次做完后基本没有下次。对应at命令。

crontab:将指定的工作或任务,例如脚本等,按照设定的周期循环执行

at:可以处理仅执行一次就结束的命令

2. at 命令
基础语法:

at 时间

例如:

注意输入完第二行后按Enter新启一行,在新一行按Ctrl+D结束输出(自动转换位<EOT>)

相关命令

atq #查询当前设置的at任务列表,首列为任务编号,也可用 at -l

atrm 任务编号 #删除指定任务编号的at任务

服务命令:

systemctl status atd #查看服务状态

systemctl enable atd #开机启动atd服务

systemctl disable atd #开机不启动atd服务

systemctl start atd #开启atd服务

systemctl stop atd #关闭atd服务

3. crontab 命令

crontab命令依赖crond服务

crontab按照指定的格式编辑定时任务保存在crontab文件中,crond服务会每分钟定期查看crontab文件中的定时任务列表去执行任务。关系如下:

一般crond服务在安装系统的时候会被默认安装,并自动运行

systemctl status crond

如果无效则需要安装crond服务

crond安装:yum -y install crontabs

启动crond服务: systemctl start crond

crond设置开机自启动: systemctl enable crond

主要设置文件

全局配置文件,位于 /etc/crontab系统默认设置, 位于/etc/cron.*/用户自定义的设置,位于 /var/spool/cron/用户名

主要命令

举例,:设置每天的 19:30 都会定时重启一次apache服务。

crontab -e30 19 * * * root systemctl restart httpd

语法介绍:

编辑某个用户的 crontab 文件内容,如果不指定用户,则表示编辑当前用户的 crontab 文件

crontab -e [-u 用户名]

通过设置crontab文件中的这五个 * 来确定任务的执行时间的, user-name是执行任务的用户,command to be executed 是要执行的命令或者脚本任务,我们具体来看下这五个 * 所代表的含义。

* * * * * user-name command to be executed

时间数值的特殊表示方法

*表示任意时间/指定时间的间隔频率;*/10=每隔十分钟(位于分字段);0-23/2即每隔两小时-代表从某个数字到某个数字:10-19即10号到19号(日字段),开几个离散的数字:5,10-15,20即5号,10号到15号,20号(日字段)

cron 命令参数

命令基本格式:crontab [选项]orcrontab [选项] file

crontab -l [-u 用户名] #查看。显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容crontab -r [-u 用户名] #删除。从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件crontab -e [-u 用户名]#编辑cron服务

一般删除所有任务才用 -r 。删除单条可以 -e 编辑时,删除对应任务即可

在crontab [选项] file 命令中, file 指的是命令文件的名字,表示将 file 作为 crontab 的任务列表文件并载入 crontab,若在命令行中未指定文件名,则此命令将接受标准输入(键盘)上键入的命令,并将它们键入 crontab, 例如:crontab -u test /root/jobs.txt ,表示用/root/jobs.txt 这个文件中的任务列表载入crontab。

cron任务失败常见问题

crond服务未启动,systemctl status crond 命令查看,systemctl start crond 启动服务脚本无权限。 chmod +x file ,chmod加上权限即可定时任务要执行的脚本中涉及文件路径时,一定要写全局路径,不能写相对路径。环境变量问题,定时任务要执行的脚本要用到java或其他环境变量时,需要通过source命令引入环境变量

常用cron

1、每小时的第30分钟执行 ls 命令30 * * * * ls2、每10分钟执行 ls 命令*/10 * * * * ls3、每天的 14:30 执行 ls 命令30 14 * * * ls4、每小时执行 ls 命令0 * * * * ls5、每天执行 ls 命令0 0 * * * ls6、每周执行 ls 命令0 0 * * 0 ls7、每年执行 ls 命令0 0 1 1 * ls8、每月 22号 的 6:22 执行 ls 命令22 6 22 * * ls9、每年的 6月22号 6:30 执行 ls 命令30 6 22 6 * ls10、每星期日的 6:30 执行 ls 命令30 6 * * 0 ls注意:0和7均可表示星期天, 1 表示星期一,以此类推;也可以用英文来表示,sun 表示星期天,mon 表示星期一等。11、每月 10号和20号 的 4:30 执行 ls 命令30 4 10,20 * * ls注意:" , " 用来连接多个不连续的时间12、每天 8~11点 的第 25 分钟执行 ls 命令25 8-11 * * * ls注意:" - " 用来连接连续的时间13、每个月中每隔 10天 的 5:30 执行 ls 命令30 5 */10 * * ls即:每月的 1、11、21、31日 在 5:30 执行一次 ls 命令14、每天 4:30 以 root 身份执行 /etc/cron.daily 目录中的所有可执行文件30 4 * * * root run-parts /etc/cron.daily

30 5 */10 * * ls

即:每月的 1、11、21、31日 在 5:30 执行一次 ls 命令

14、每天 4:30 以 root 身份执行 /etc/cron.daily 目录中的所有可执行文件

30 4 * * * root run-parts /etc/cron.daily

如果觉得《Linux 计划任务 定时任务 执行计划 crontab》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。