linux定时任务crontab说明

crontab服务管理

1)crontab服务停止命令

systemctl stop crond.service

2)crontab服务开始命令

systemctl start crond.service

3)crontab服务重启命令

systemctl restart crond.service

3)crontab服务状态显示命令

systemctl status crond.service

crontab用户使用限制

1)设置可以使用crontab的用户配置文件

/etc/cron.allow

2)设置不可以使用crontab的用户配置文件

/etc/cron.deny

备注:cron.allow的优先级比cron.deny高,通常配置一个即可. 一般系统默认保留/etc/cron.deny文件.

crontab语法

crontab [-u 用户] 选项

选项:-e 编辑crontab定时任务

      -l 查询crontab定时任务

      -r 删除当前用户的所有crontab定时任务

备注:只用root用户可使用-u参数,可用于帮其他用户设置定时任务.

crontab –e

这样可以已编辑模式打开个人的crontab配置文件,然后加入一下这行:

00 00 * * * /home/linrui/XXXXXXXX.sh

这将会在每天凌晨00:00运行 指定的.sh文件

对于类似于几分钟执行一次的脚本,可在末尾加上 “>/dev/null 2>&1”,这里表示不写到系统日志:

00 00 * * * /home/peter/XXXXXXXX.sh >/dev/null 2>&1

通过在末尾添加 “>> /home/xxx/log 2>&1”,表示将执行情况写入log文件里,方便查看问题。

00 00 * * * /home/peter/XXXXXXXX.sh >> /home/xxx/log 2>&1

如果脚本不会自动执行,但手动可以执行,查看log日志显示:No such file or directory,因为crontab -e添加的时候在最后一行末尾,需要添加一个空行,即编辑的时候末尾enter以下。

crontab时间表格式

Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

即:分钟 小时 日期 月份 周 任务

时间范围:分钟[0-59] 小时[0-23] 日期[1-31] 月份[1-12] 周[0-7]

辅助字符:"*"代表任何时刻,","代表不连续的时间,"-"代表一段时间范围,"*/n"代表每隔n单位执行一次.

备注:周范围的0和7都代表星期日.

crontab脚本目录预配置

如脚本无需精确的执行时间,将文件拷贝到cron相应的基本时间目录hourly、daily、monthly或weekly即可.

查看cron基本时间目录命令:

# ls /etc/cron.*ly

crontab系统配置文件

crontab配置文件:/etc/crontab

crontab日志文件:/var/log/cron

crontab中文乱码问题:

这个要看你所用的服务器LANG参数,用$LANG查看,因为crontab执行时不会携带用户的环境变量,缺失一些系统变量。所以脚本中写上:
LANG="zh_CN.UTF-8"
export LANG 

 


 

 

猜你喜欢

转载自blog.csdn.net/qq_23587541/article/details/81945483