Linux-cron坐享其成


Linux-cron调度管理

image-20210206214238867

怎样才能不需要手就能白嫖呢,什么,手都不需要?

是的,比如在次日凌晨抢限量礼包,你是否会夜里熬红了眼而且还抢不到,这就需要我们计划任务来完成。

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 著

[2] https://www.cnblogs.com/aeolian/p/13267755.html


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录