Linux计划任务

概念

我们需要让Linux系统按照我们指定的时间自动的完成一些作业,例如在某个时间执行某个脚本,或者进行周期备份,这时候就可以制定计划任务了。计划任务分为一次性周期性两类。

注意事项: 如果想要使用定时任务,首先要确保自己系统的时间格式,我们使用的是东八区时间,也就是北京时间,可以运行下边这条命令确认。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

一次性计划任务

就是执行一次就结束的任务,可以通过at或者batch命令生成

yum install at

systemctl restart at

使用方法:

at [option]...[TIME]

at命令后不能为空,必须接选项或参数

常用选项:

-d 作业编号:删除指定的待执行任务,相当于atrm

-l:显示待执行的任务的列表,相当于atq

-m:任务执行完成后向用户发送E-mail(默认)

-c 作业编号:显示指定作业的实际内容

TIME格式

HH:MM 如14:30

HH:MM YYYY-MM-DD 如14:30 2015-10-07

HH:MM[am|pm] [Month] [Date] 如02:30pm October 07

举例

如果我想要在2021年8月16号晚上11点关机。ctrl + D 保存并推出。退出后会显示

[root@base at]# at 23:00 2021-08-16

at> /usr/sbin/shutdown -h now

at> <EOT>job 1 at Sat Aug 16 23:00:00 2021

周期性计划任务

周期性计划任务将会一直执行下去,比如每分钟 每小时 每天 每周等等

由crontab这个服务控制

使用方法:

crontab

-u:管理员可为其他用户创建任务

-e:打开编辑页面定义任务

-l:列出已经定义的所有任务

-r:移除所有任务

crontab -e打开编辑页面后,一行一个任务进行编辑,每行包括6段,前5段为时间,最后一段为要执行的命令,格式如下:

                                        分钟 小时 日 月 周几 命令 

//通常表示时间技巧:

*:表示任何时刻都接受的意思,所有时间段位上不能同时为*

数字:表示具体某一小时某一分钟等,如 8 8 8 8 * 表示每年的8月8日8时8分

,:表示分隔时段,表示一段时间范围,如 8 9,13 * * * 表示每天9:08和13:08

*/: 在对应的时间位的有效取值上每#一次,如 */8 * * * * 表示每8分钟一次

-:某个时间位上的连续区间,如 10-50/8 * * * * 表示第10分和第50分之间每8分钟一次

例:

[root@base ~]# crontab -e

代表意义                 分钟   小时   日期   月份   周

指令指令数字范围   0-59   0-23   1-31   1-12   0-7   就指令啊

假如现在有一个脚本为test.sh

1、每月每天每隔6小时的每30分钟执行test.sh脚本

0,30 */6 * * * ./test.sh

2、每月每天晚上21点30分执行test.sh脚本

30 21 * * * ./test.sh

3、每月1号、10号、22号凌晨4点45分执行test.sh脚本

45 4 1,10,22 * * ./test.sh

4、8月份周一、周日凌晨1点10分执行test.sh脚本

10 1 * 8 1,7 ./test.sh

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

自然醒o./

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

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

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

打赏作者

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

抵扣说明:

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

余额充值