Administrator
发布于 2024-08-06 / 16 阅读
0
0

Linux Cron

在 Linux 中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。

cron服务

cron是一个 Liunx 下 的定时执行工具,可以在无需人工干预的情况下运行作业。

# 查看crond服务状态
systemctl status crond
# 开启crond服务
systemctl start crond

crontab语法

refer to : https://tool.lu/crontab/

crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的。

在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。

格式如下:

        minute   hour    day-of-month   month-of-year    day-of-week    commands 
合法值  00-59    00-23    01-31          01-12            0-6 (0 is sunday) 

总共5个参数

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",

*代表所有的取值范围内的数字,

"/"代表每的意思,"/5"表示每5个单位,

"-"代表从某个数字到某个数字,","分开几个离散的数字。


例子:
    # 每月的最后1天
    0 0 L * * *

    说明:
    Linux
    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- minute (0 - 59)
    

常见示例:

*/5 * * * * 表示每隔5分钟执行一次

0 */1 * * * 表示每个小时执行一次

1 3 1,4,6 * * 表示每月的1号3点01分 每月的4号3点01分 每月的6号3点01分执行一次

0 3 * 5-9 * 表示5-9月的3点执行一次

0 2 * 6 5 表示6月的每周五2点执行一次

crontab命令

-l 在标准输出上显示当前的crontab。
-r 删除当前的crontab文件。
-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。


创建cron脚本

新增或者编辑定时任务:

crontab -e

进入编辑模式, 按照指定任务命令格式编辑命令

1 2 3 4 5 /path/to/command或者:1 2 3 4 5 /root/ntp_sync.sh
*/1 * * * * echo "wptest....." >> /home/cronwp/wpcrontest.txt


示例:

创建一个print11.sh,内容如下:

#!/bin/bash
echo 111

新增cron定时任务

crontab -e

*/1 * * * * /var/logs/cron/print11.sh >> /var/logs/cron/print11.log

上面的是每分钟执行一次脚本
还可以设置成,每天1点执行一次备份脚本,如下:

0 1 */1 * * /opt/MysqlBackup/mysql_dump.sh

查看定时任务

crontab -l

评论