Linux-cron调度管理
怎样才能不需要手就能白嫖呢,什么,手都不需要?
是的,比如在次日凌晨抢限量礼包,你是否会夜里熬红了眼而且还抢不到,这就需要我们计划任务来完成。
Ax cron命令
cron命令是任务调度工具之一,在按照设定的时间自动执行命令或者脚本。利用一个叫cron表的文件,我们需要用crontab命令添加作业。比如每天备份是一个常见的运用。
cron表由6个条目组成
- 分钟 0-59
- 小时 0-23
- 天 1-31
- 月份 1-12
- 工作日 0-6 从周日0开始
- 执行的命令或脚本
用星号(*)表示每个时间段执行.
时间用逗号分隔 5,10代表5和10分钟执行
8-12 在8到12时间段
在分钟字段使用*/5 可以每5分钟运行一次命令。其它字段也是如此。
00 */1 * * 0 /home/script.sh
表示在周日的每个小时执行脚本 script.sh
Bx 任务的增删改查
a 编辑任务
方法一
使用crontab -e
命令编辑
cron表
一行添加一个任务。
方法二
使用cron文本文件,例如创建一个task.cron
在文本中写入一个cron表再使用crontab命令将cron文件作为参数。
crontab task.cron
使用行内方式则无需创建文件,方法如下
crontab<<EOF
02 * * * * /home/test.sh
EOF
b 删除任务
如果只删除某条任务在编辑中修改即可
删除当前用户的所有任务即cron表
crontab -r
如果需要指定用户(需要root用户操作)
crontab -u enomothem -r
c 查看任务
查看任务可以在编辑中查看,也可以使用查看命令
crontab -l
指定用户
crontab -l -u enomothem
该用户中没有计划
Cx 简单测试
今天是2021年2月5日 friday,现在是 11:26,我要在30分的时候在/home下创建一个叫light的文件夹
crontab<<EOF
30 11 5 2 5 mkdir /home/light
EOF
Dx 示例
(1)创建一个每天每小时第二分钟执行/opt/shell中的test.sh脚本
02 * * * * bash /opt/shell/test.sh
(2)在每天5、6、7小时执行脚本
00 5,6,7 * * bash /opt/shell/test.sh
(3)在每周日的每个小时执行较脚本
00 */1 * * 0 bash /opt/shell/test.sh
(4)在每天凌晨2点关闭计算机
00 02 * * * /sbin/shutdown -h
Ex 应急响应
在入侵检测的排查中,重点查看任务表,黑客通常运用此来权限维持。
crontab -l
Fx 常用任务脚本
a 给服务器校准时间
#给crontab添加任务
crontab -e
#每天凌晨1点执行一次bash脚本
0 1 * * * /root/timeCheck.sh
timecheck.sh
echo "------------------------------------------------------" >> timeAdjustLog.log;
echo -e $(date '+%Y-%m-%d %H:%M:%S %A') "开始执行时间校准脚本! " >> timeAdjustLog.log;
/usr/sbin/ntpdate -u ntp.ntsc.ac.cn >> timeAdjustLog.log;
echo -e "执行时间校准完毕! 校准后时间:" $(date '+%Y-%m-%d %H:%M:%S %A') >> timeAdjustLog.log;
Gx 参考
[1] 《Linux Shell脚本攻略》第二版 Shantanu Tushar\Sarath Lakshman 著