我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

date >> /home/mycal.txt
cal >> /home/mycal.txt

按 ESC 保存并退出。 但是我们发现root没有这个脚本的执行权限。

linux定时任务实现原理_linux 启动定时任务_linux定时任务启动

我们需要修改脚本的权限,使得当前用户root可以执行该脚本。

[root@xq100 home]# chmod u+x my.sh

linux定时任务实现原理_linux 启动定时任务_linux定时任务启动

接下来我们需要动态执行脚本。

[root@xq100 tmp]# crontab -e

linux定时任务启动_linux 启动定时任务_linux定时任务实现原理

只需保存并退出即可。 我们来看看效果:

linux定时任务实现原理_linux定时任务启动_linux 启动定时任务

案例3:每天凌晨2点将mysql数据库备份到文件。 (提示:备份数据库的命令为 -u root -p 密码 数据库名 > /home/文件名)

第一步:-e

步骤2:0 2 * * * -u root -proot > /home/db.bak

还有其他几个任务调度指令,我们来看看:

-r:终止任务调度; -l:列出当前任务计划; crond【重启任务调度】.4. at指令实现任务调度

1.at命令的作用

文哥先给大家解释一下at命令的含义和作用:

at 命令是任务计划的一次性计划执行。 at 的守护线程 atd 以后台模式运行,并检查要运行的作业队列。 默认情况下,atd 守护线程每 60 秒检查一次作业队列。 当有作业时,它会检查作业的运行时间。 如果时间与当前时间匹配,则运行作业。 at命令是一个一次性定制的定时任务。 执行完任务后,将不再执行。 使用at命令时,请务必确保atd进程已启动。 可以使用相关指令查看(ps -ef | grep atd)。

下面我们用一张图来说明at任务调度机制:

linux定时任务实现原理_linux定时任务启动_linux 启动定时任务

时间定义:

格式

意义

例子

时:分

将于今天 HH:MM 执行。 如果当天的时间已过,则将于明天 HH:MM 执行。

当日4:00(若超时则为明天4:00):4:00

英语粗暴时间单身

(午夜,00:00),中午(中午,12:00),(下午茶时间,16:00)(明天)

,中午,

英文月份名称 A 日期 B [年份 C]

于 C 年 B 月 A 执行

2018年1月15日执行: 15 2018

日期时间戳格式

绝对计时时间+日期时间:HH:MM 日期:或 MM/DD/YY 或 MM.DD.YY

执行日期:2018年1月15日:或 01/15/18 或 01.15.18

现在+数量单位

以小时、天或周为单位的相对时间

5天后此刻执行:现在+5天

2.AT任务调度案例

常用选项

linux定时任务实现原理_linux 启动定时任务_linux定时任务启动

语法格式:

at [选项] [时间] at > 命令(输入 Ctrl + D 两次)

定义:

第一行:输入at命令后,按回车键输入下一行命令。

第二行:开头的at>不需要输入,是系统自动添加的。

命令输入完成后:Ctrl+D 结束命令输入,需要输入两次。

两天后下午6点执行ll命令

linux定时任务启动_linux 启动定时任务_linux定时任务实现原理

使用atq命令查看系统中是否有工作任务执行

[root@xq100 home]# atq
1        Wed Aug 31 17:00:00 2022 a root
2        Wed Aug 31 18:00:00 2022 a root

明天17点,输出时间会在文件中指定,如/home/.log

[root@xq100 home]# at 5pm tomorrow
at> date > /home/date100.log
job 4 at Tue Aug 30 17:00:00 2022

2分钟后,将时间输出到指定文件,如/home/.log

[root@xq100 home]# at now + 2 minutes
at> date > /home/date200.log
job 5 at Mon Aug 29 23:24:00 2022

使用atq查看队列任务:

2分钟后,我们再次查看队列任务:

我们发现5号任务没有了,因为5号任务被执行了。 所以它被从队列中删除了。 这就是为什么使用at命令来执行定时任务,并且任务只执行一次!

删除已设置的任务

[root@xq100 home]# atq
1        Wed Aug 31 17:00:00 2022 a root
2        Wed Aug 31 18:00:00 2022 a root
4        Tue Aug 30 17:00:00 2022 a root
[root@xq100 home]# atrm 1  # 删除1号任务
[root@xq100 home]# atq
2        Wed Aug 31 18:00:00 2022 a root
4        Tue Aug 30 17:00:00 2022 a root

5. 总结

今天文哥给大家分享了Linux下实现定时任务调度的几个常用说明。 这两个命令在工作中非常实用。 希望通过今天的分享,大家能够熟练的使用这两个命令。 如果面试时被问到Linux任务调度的实现,可以按照文哥这篇文章的解释来回答。

好了,今天关于Linux定时任务调度的事情就跟大家说完了。 如果还有其他问题,欢迎留言讨论!

二维码
扫一扫在手机端查看

本文链接:https://by928.com/772.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线