任务

54 阅读3分钟

[TOC]

任务

循环任务 (crond)

crontab 进行定时任务的设置

crontab [选项]
-e # 编辑crontab定时任务
-l # 查询crontab任务,列出当前有哪些任务调度
-r # 删除当前用户所有的crontab任务,终止任务调度

service crond restar # 重启任务调度
  • 快速入门

设置任务调度文件:/etc/crontab 设置个人任务调度。执行crontab -e 命令 接着输入任务调度文件 如*/1 * * * * ls -l /etc/ > /tmp/to.txt 意思是说每小时的每分钟执行一次ls -l /etc/ > /tmp/to.txt

  • 参数细节(Cron表达式)
项目含义范围
第一个“*”一小时当中的第几分钟0-59
第二个“*”一天当中的第几小时0-23
第三个“*”一个月当中的第几天1-31
第四个“*”一年当中的第几月1-12
第五个“*”一周当中的星期几0-7(0和7都代表星期日)

应用实例

案例1:每隔1分钟,将当前日期信息,追到/tmp/mydate 文件中

crontab -e
*/1 * * * * date >> mydate

案例2:每隔1分钟,将当前日期和日历都追到/tmp/mycal文件中

*/1 * * * * date >> mydate
chmod a+x /root/my.sh
crontab -e
*/1 * * * * /root/my.sh

案例3:每天凌晨2:00 将mysqlshujuku testdb,备份到文件中

#提示: mysqldump -u root -p 密码 数据库 >> /home/db.bak

重启任务调度

service crond restar

定时任务 (at)

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

at命令格式

at [选项] [时间]

# ctrl+d 结束 at 命令的输入
[时间]
hh:mm 假如该时间已过去,那么就放在第二天执行
当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间
采用12小时计时制 
选项含义
-m当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-Iatq的别名
-datrm的别名
-v显示任务将被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q<列队>使用指定的列队
-f<文件>从指定文件读入任务而不是从标准输入读入
-t<时间参数>以时间参数的形式提交要运行的任务
时间执行说明
hh:mm假如该时间已过去,那么就放在第二天执行
12小时计时制6am(早上6点),8pm (下午8点)
具体日期month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)指定的日期必须跟在指定时间的后面,例如:04:11 2021-03-01
相对时间now + number 时间单位,时间单位:minutes(分钟) 、hours(小时)、days(天)、weeks(周),例如:五分钟后 now + 5 minutes
日期相对时间today(今天),tomorrow(明天)
模糊时间midnight(深夜),noon(中午),teatime(饮茶时间,一般指下午4点)

应用实例

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

[root@xxx /]at 5pm + 2 days

at> /bin/ls /home

(命令输入完成后,输入两次ctrl + d

image.png

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

atq

image.png

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

[root@xxx /]at 5pm + tomorrow

at> date >> /root/date100.log

(命令输入完成后,输入两次ctrl + d

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

[root@xxx /]at now + 2 minutes

at> date >> /root/date200.log

(命令输入完成后,输入两次ctrl + d

删除任务 (atrm)

案例五:删除已经设置的任务

atrm 编号
atrm 1