定时计划-crontab+at

at命令

在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd] 小时分钟,年月日
服务进程atd
为了安全问题,不是所有人都可以进行at工作调度。我们可以利用/etc/at.allow和/etc/at.deny这两个文件来进行at的使用限制。at的实际工作过程如下:
先寻找/etc/at.allow这个文件,写在这个文件的用户才能使用at;如果/etc/at.allow不存在,就寻找/etc/at.deny这个文件,写在该文件的用户不能使用at;如果两个文件都不存在,那么只有root可以使用at命令。
在rhel里面,由于假设系统上的所有用户都是可信任的,因此系统会保留一个空的/etc/at.deny文件,意思是允许所有人使用at命令,如果你想设置拒绝某人使用at命令,你可将该用户写入/etc/at.deny(格式为一行代表一个用户)
一、定时任务
1.输入at + 时间
2.输入要执行的命令
3.按CTRL+D结束输入
[root@server_1 ~]# at 13:14
at> reboot now
at> <EOT>
job 3 at Sun May 26 13:14:00 2019

[root@server_1 ~]# Connection to 192.168.19.101 closed by remote host.
Connection to 192.168.19.101 closed.

二、倒计时任务
三分钟后给登陆的该用户发送消息

[root@server /]# at now + 1 minutes
at> wall hello!
at> <EOT>
job 5 at Thu Nov 21 17:27:00 2019
[root@server /]#
Broadcast message from root@server (Thu Nov 21 17:27:00 2019):

hello!

corntab命令

1.按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
循环执行的例行性工作调度是由crond这个系统服务来控制的。同样,我们也可以限制使用crontab的用户账号。
和at命令一样,为了安全问题,不是所有人都可以进行corntab工作调度
/etc/cron.allow 该文件内的用户可使用crontab
/etc/cron.deny 该文件内的用户不可使用crontab
同at命令工作过程一样
先寻找/etc/cron.allow这个文件,写在这个文件的用户才能使用crontab;如果/etc/cron.allow不存在,就寻找/etc/cron.deny这个文件,写在该文件的用户不能使用crontab;如果两个文件都不存在,那么只有root可以使用crontab命令。
在rhel里面,由于假设系统上的所有用户都是可信任的,因此系统会保留一个空的/etc/cron.deny文件,意思是允许所有人使用crontab命令,如果你想设置拒绝某人使用crontab命令,你可将该用户写入/etc/cron.deny(格式为一行代表一个用户)
2.root用户可以管理指定用户的计划任务,普通用户只能管理自己的计划任务
3.管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]
查看计划任务:crontab  -l  [-u  用户名]
删除计划任务:crontab  -r  [-u  用户名]

4.时间格式,这里需要注意和date命令的区别|

crontab命令
date.秒

例如:
[root@server ~]# date 112415522019.20
Sun Nov 24 15:52:20 CST 2019
5.时间数值的特殊表示方法

*	   表示该范围内的任意时间
,      表示间隔的多个不连续时间点
-	   表示一个连续的时间范围
/	   指定间隔的时间频率

6.应用示例

0  17  *  *  1-5	周一到周五每天17:00 
30  8  *  *  1,3,5	每周一、三、五的8点30分
0  8-18/2  *  *  *	8点到18点之间每隔2小时
0  *  */3  *  *		每隔3天

示例1每天21点03分将时间写入/tmp/date.txt
注意命令要写完整路径
1.编辑
[root@server_1 ~]# crontab -e

03 21 * * * /bin/date >> /tmp/date.txt

2.到时间后查看
[root@server_1 ~]# cat /tmp/date.txt

Sun May 26 21:03:01 CST 2019

示例2,每天8点21分定时重启
1.编辑
[root@server_1 ~]# crontab -l

08 21 * * * /sbin/reboot

2.到时间后自动重启

[root@server_1 ~]# Connection to 192.168.19.101 closed by remote host.
Connection to 192.168.19.101 closed.

示例三,每隔1分钟发送消息hello
1.编辑
[root@server ~]# crontab -l

*/1 * * * * wall hello

2.测试

[root@server ~]#
Broadcast message from root@server (Sun Nov 24 16:24:01 2019):

hello

示例四,每天16:40定时执行脚本1.sh
1.编辑脚本
[root@server ~]# vim 1.sh

#!/bin/bash
wall "hello"

2.编辑计划
[root@server ~]# crontab -l

33 16 * * * /bin/bash /root/1.sh

3.测试

[root@server ~]#
Broadcast message from root@server (Sun Nov 24 16:36:01 2019):

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值