linux-----任务调度

一、crontab任务调度(多次性的任务调度)

1、任务调度的概念

任务调度:系统在某个时间执行的特定的命令或程序。

分类:

1、系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;

2、个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份等;

2crontab基本语法(多次任务调度)

crontab 选项

-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 Vi/Vim,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

-r : 删除目前的时程表

-l : 列出目前的时程表

相关命令

crontab -r  终止任务调度

crontab -l 列出当前有哪些任务调度

service crond restart 重启任务调度

3、快速入门

1)设置任务调度文件:/etc/crontab

2)设置个人任务调度,执行 crontab -e

3)接着输入任务到调度文件

如:*/l **** ls -l /etc/ > /tmp/to.txt

意思是:每小时的每分钟执行ls -l /etc > /tmp/to.txt命令

参数细节说明:

5个占位符说明:

特殊符号说明:

每个一分钟执行一次:

/tmp目录下面to.txt文件已经生成了;查看to.txt内容是否与/etc/下面的目录一样

特殊时间执行案例:

4、应用实例

案例一:每个1分钟,就将当前的日期信息,追加到/tmp/mydate文件中;

crontab -e  --> */1 * * * * date >> /tmp/mydate.txt

案例二:每隔1分钟,就将当前日期和日历都追加到/home/mycal文件中;

通过写脚本文件的方式:

手动执行脚本,在tmp目录下面就有mycal文件了

在设置任务调动脚本;

查看调度结果:

案例三:每天凌晨2:00将mysql数据库testdb,备份到文件中,提示:指令为mysqldump -u root -p密码  数据库>>/home/db.bak

crontab -e  --> 0 2 * * * mysqldupm -u root -p密码 testdb >>/home/db.bak

二、at定时任务

1、基本介绍

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队来运行;
  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业;
  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了;
  4. 在使用at命令的时候,一定要保证atd进程启动,可以使用相关命令来查看
  5. 示意图:

2、at命令格式:

at 选项 时间

at命令的参数表:

Ctrl+D 输入两次结束at命令的输入;

查看atd进程是否运行:

ps -ef | grep atd //可以检测 atd进程是否在运行

3、at时间定义

at指定时间的方法:

  1. 接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
  2. 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
  3. 采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 例如:12pm
  4. 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-05-12
  5. 使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。 例如:now + 5 minutes
  6. 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。

4、应用案例

案例 1:2 天后的下午 5 点执行 /bin/ls /home

Ctrl+D输入两次退出at命令输入;查看定时任务创建成功是job3,atq可以查看at起的定时任务;

如果在at命令输入错误可以通过Ctrl+BackSpace键可以删除;

at 5pm+2days

案例 2:atq 命令来查看系统中有没有执行的工作任务;

案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log;

at 5pm tomorrow

案例 4:2 分钟后,输出时间到指定文件内 比如 /root/date200.log;

at now + 2 minutes

2分钟后job5任务执行,date200.log文件生成

案例 5:删除已经设置的任务 , atrm 编号;

删除编号为2的工作任务:

atrm 2

  • 34
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重生之我在成都找工作

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值