pexels-anastasia-yudin-5167249.jpg

I. 主理人序

📢博主的服务器运行着为数不多的数十个脚本(Shell script),以实现一些想要的功能,如:定时检测lnmp服务状态、网站的status并在出现故障时通过TG机器人通知预警、以及系统负载检测,异常IP处理;等等;

II. Crontab 是什么

工具型软件cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。cron该词来源于希腊语chronos(χρόνος),原意是时间。
通常,任务时间表(crontab)文件储存的指令被crond守护进程激活,守护进程在后台运行,并每一分钟检查是否有定期的作业需要执行。这类作业一般称为cron jobs。
via 维基百科

提交、编辑、列出或删除 cron 作业。

III. Crontab 安装

正常情况下,各类VPS或云主机都会自带的,如需新安装可使用下方命令;(特指 Ubuntu server)

Ubuntu server

$ apt-get install cron

IV. Crontab 常用命令

$ crontab -e #编辑配置文件以设置定时执行任务
$ crontab -l #查看配置文件都有哪些任务
$ service cron reload #重新加载配置文件
$ service cron start #启动
$ service cron restart #重启
$ service cron status #查看目前在执行的任务及其状态

V. 配置文件格式

/var/spool/cron/下的任务时间表(crontab)文件是用户层次的,/etc/crontab/etc/cron.d/目录下的任务时间表(crontabs)文件是系统层次的;格式如下:

# 文件格式說明
*    *    *    *    * 紧跟被执行的命令
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

举例:每10分钟执行一次

10 * * * * bash /home/cpucheck.sh;

VI. 其他表达式

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

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

via Linux crontab 命令

以上。

VII. cron 执行日志

Crontab 的执行日志一般在 /var/log/cron,如果你是 Ubuntu server 20.04lts 则 Crontab 执行日志在 /var/log/syslog

$ tail -f /var/log/cron
$ tail -f /var/log/syslog
Jul 14 22:35:01 localhost CRON[2287943]: (root) CMD (/home/ddos/protect.sh;)
Jul 14 22:35:01 localhost CRON[2287945]: (root) CMD (/home/cf.challenge.sh;)

VIII. 附注

最后修改:2021 年 07 月 19 日 02 : 32 AM