设置Linux计划任务crontab容易出错的地方

Linux的计划任务可以说是最常用也实用的系统程序了,Linux的计划任务设置也很简单,但稍有不注意就会出错。

如:使用ntpdate命令每天凌晨自动对时,可能会这么写

【国内直连ChatGPT 29元起】
国内直连ChatGPT,Plus会员每月29元起,支持最新o1模型探索更多领域,无需注册OpenAI账号。

00 00 * * * ntpdate asia.pool.ntp.org;

但这么写是出错的,你可能百思不得其解,在命令状态下执行看下结果

-bash-4.1# ntpdate asia.pool.ntp.org
25 Jul 14:00:21 ntpdate[5815]: step time server 212.26.18.43 offset 19.175301 sec

结果正常,但为何在crontab里却不执行呢?

其实在crontab里需要写命令的全路径,Linux是一个真正的基于文件的系统,所有的命令都以文件形式存储在磁盘里。

那如何查看命令的位置呢?

使用which命令

-bash-4.1# which ntpdate
/usr/sbin/ntpdate

使用which命令我们得出ntpdate命令的全路径是/usr/sbin/ntpdate,我们把它加入crontab里

00 00 * * * /usr/sbin/ntpdate asia.pool.ntp.org;

保存后,即可实现每天零点对时了。

即使是你写成shell脚本,那么shell脚本里所有的命令都需要绝对路径。

分享

TITLE: 设置Linux计划任务crontab容易出错的地方

LINK: https://www.qttc.net/143-linux-crontab-setting-notes.html

NOTE: 原创内容,转载请注明出自琼台博客