Crontab 让linux定时执行shell脚本

时间:2023-01-18 07:59:19

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行

 

入门

# crontab –e

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

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

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

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

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

 

Cron 各项的描述

以下是 crontab 文件的格式:

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

o minute: 区间为 0 – 59

o hour: 区间为0 – 23

o day-of-month: 区间为0 – 31

o month: 区间为1 – 12. 1 是1月. 12是12月.

o Day-of-week: 区间为0 – 7. 周日可以是0或7.

 

Crontab 示例

1、在 凌晨00:01运行

01 00 * * * /home/linrui/XXXX.sh

2、每个工作日23:59都进行备份作业。

59 23 * * 1,2,3,4,5 /home/linrui/XXXX.sh  

或者如下写法:

59 23 * * 1-5 /home/linrui/XXXX.sh

3、每分钟运行一次命令

*/1 * * * * /home/linrui/XXXX.sh

4、每个月的1号 14:10 运行

10 14 01 * * /home/linrui/XXXX.sh

 

Crontab命令的选项

以下是 crontab 的有效选项:

crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。

crontab –l : 显示 crontab 文件。

crontab -r : 删除 crontab 文件。

crontab -ir : 删除 crontab 文件前提醒用户。

 

今天用crontab不能自动执行脚本,但是手动执行可以,通过在末尾添加 “>> /home/xxx/log 2>&1”,查看log日志显示:No such file or directory

折腾了半天,后来是因为crontab -e添加的时候在最后一行末尾,需要添加一个空行,即编辑的时候末尾enter以下。。

转载自:https://my.oschina.net/u/2288038/blog/485972