Linux07--计划任务

计划任务

Linux有三种计划任务:
at:指定一个时间执行一个任务(适用一个或者多个任务,执行一次以后就不用了)
cron:根据时间表来自动执行
anacron:在一个指定时间间隔错过后自动执行任务

1.at

1.at:安排一个任务在未来执行,需要atd系统后台进程
首先检查atd进程是否启动

命令:service atd status

[root@admin /]# service atd status
Redirecting to /bin/systemctl status atd.service
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2021-08-13 08:55:11 CST; 7h ago
 Main PID: 1247 (atd)
    Tasks: 1
   Memory: 0B
   CGroup: /system.slice/atd.service
           └─1247 /usr/sbin/atd -f

813 08:55:11 admin systemd[1]: Started Job spooling tools.

启动atd服务

[root@centos61 桌面]# service atd start 正在启动 atd: [确定] 

常用指令:at安排延时服务
只运行一次
具体使用方法:
举例1:
两分钟后自动执行

[root@admin /]# at now+2 minutes
at> wall hello world
at> <EOT>
job 7 at Fri Aug 13 16:48:00 2021

ctrl+d中断输入

举例2:
跟具体时间

at 16:39 dec 10 

时间+月+日若不加月日,默认今天

atq:查询当前的等待任务

[root@admin /]# atq
3	Fri Aug 13 16:43:00 2021 a root
4	Fri Aug 13 16:44:00 2021 a root

atrm:删除等待任务
语法:atrm 任务编号

[root@admin /]# atrm 3
[root@admin /]# atq
4	Fri Aug 13 16:44:00 2021 a root

2.cron服务

cron的优点就是能够周期性的执行某个命令
命令:
crontab -e 编辑当前用户的cron表
crontab -l 查看当前用户的cron表
crontab -r 删除当前用户的cron进程
crontab -u用户名 以某用户的身份来控制cron表

使用crontab -e编辑当前用户的cron表后会出现一个vi文件,会直接进入到vi编辑界面。

cron的语法
左边是时间,右边是运行的命令

、* * * * * wall hello everyone
这5个代表了时间和日期:分时日月星
第一个
代表了小时的第几分钟:minute 范围 0~59
第二个代表了一天的第几个小时:hour 范围 0~23
第三个
代表了每月的第几个日:day-of-month 范围 1~31
第四个代表了每年的第几个月:month-of-year 范围1~12
第五个
代表了每周的星期几:day-of-week 范围 0~60代表周日

语法:
f1 f2 f3 f4 f5 program

注意
在f1处 */n 时表示每n分钟执行一次
在f2处 */n 时表示每n小时执行一次 以此类推

例1:如果我要表示9月10日25分执行ls var/spool/cron任务怎么表示?

25 * 10 9 * ls var/spool/cron 

没设小时则为每小时执行一次

例2:我要在每周日,每分钟执行wall Hello redking.blog.51cto.com这个命令,时间怎么表示?

*/1 * * * 0 wall Hello redking.blog.51cto.com 

例3:每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 

例4:晚上11点到早上7点之间,每隔一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 

例5:每月的4号与每周一到周三的11点重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 

例6:每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…执行 echo “haha”

20 0-23/2 * * * echo "haha" 

例7:在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup

0 6-12/3 * 12 * /usr/bin/backup 

星期的英文:
Monday——星期一
Tuesday——星期二
Wednesday——星期三
Thursday——星期四
Friday——星期五
Saturday——星期六
Sunday——周日

月的英文:
January 一月
February 二月
March 三月
April 四月
May 五月
June 六月
Junly 七月
August 八月
September 九月
October 十月
November 十一月
December 十二月

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值