栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux——定时任务调度之crond任务调度、at定时任务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux——定时任务调度之crond任务调度、at定时任务

定时任务调度
  • 一、crond任务调度
    • 1、概述
    • 2、基本语法
    • 3、快速入门
    • 4、案例
    • 5、crond相关指令
  • 二、at定时任务
    • 1、基本介绍
    • 2、at命令格式
    • 3、应用案例

一、crond任务调度 1、概述
  • 任务调度:指的是系统在某个时间执行的特定的命令或程序
  • 任务调度分类:
    系统工作 - 有些重要的工作必须周而复始的执行,如病毒扫描等
    个别用户工作 - 个别用户可能希望执行某些程序,比如对mysql数据库的备份
2、基本语法

crontab [选项]

常用选项:

  • -e:编辑crontab定时任务
  • -l:查询crontab任务
  • -r:删除当前用户所有的crontab任务
3、快速入门

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

② 设置个人任务调度:执行crontab -e命令

③ 输入任务到调度文件

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

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

参数细节-五个占位符的说明:

项目含义范围
第1个*一小时当中的第几分钟0-59
第2个*一天当中的第几小时0-23
第3个*一个月当中的第几天1-31
第4个*一年当中的第几月1-12
第5个*一周当中的星期几0-7(0和7都代表星期日)

特殊符号的说明:

特殊符号含义
*代表任何时间。比如第一个*代表一小时内的每分钟都执行一次的意思
代表不连续时间,比如"0 8,12,16 * * *",代表在每天的8点0分,12点0分,16点0分都执行一次命令
-代表连续的时间范围,比如"0 5 * * 1-6",代表在周一到周六的凌晨5点0分执行命令
*/n代表每隔多久执行一次,比如"*/10 * * * *",代表每隔十分钟执行一遍命令
4、案例

① 每隔一分钟,将当前的日期信息,追加到/tmp/mydate文件中

  • crontab -e 在文件中输入:*/1 * * * * date >> /tmp/mydate

② 每隔一分钟,将当前时间和日历追加到/home/mycal文件中

  • vim /home/my.sh 在文件中写入内容:
    date >> /home/mycal
    cal >> /home/mycal
  • 给my.sh增加权限:chmod u+x my.sh
  • crontab -e 在文件中输入:*/1 * * * * /home/my.sh

③ 每天凌晨2:00将mysql数据库testdb,备份到文件中

指令为:mysqldump -u root -p密码 数据库 > /home/db.bak

  • crontab -e
  • 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
5、crond相关指令
  • crontab -r:终止任务调度
  • crontab -l:列出当前有哪些任务调度
  • service crond restart:重启任务调度
二、at定时任务 1、基本介绍
  • at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
  • 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
  • at命令时一次性定时计划任务,执行完一个任务后不再执行此任务啦
  • 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看.
    ps -ef:查看当前正在运行的进程
    ps -ef | grep atd:查看当前正在运行的atd进程
2、at命令格式

at [选项] [时间]

Ctrl + D,结束at命令的输入

at命令选项:

  • -m:当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
  • -I:atq的别名
  • -d:atrm的别名
  • -v:显示任务将被执行的时间
  • -c:打印任务的内容到标准输出
  • -V:显示版本信息
  • -q <队列>:使用指定的队列
  • -f <文件>:从指定文件读入任务而不是从标准输入读入
  • -t <时间参数>:以时间参数的形式提交要运行的任务

at指定时间的方法:

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

① 2天后的下午5点执行/bin/ls /home

② atq命令查看系统中没有执行的工作任务

③ 明天17点,输出时间到指定文件夹内,比如 /root/date100.log

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

⑤ 删除已经设置的任务,atrm 编号

输入两次Ctrl+D,结束at任务的输入

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869298.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号