xml地图|网站地图|网站标签 [设为首页] [加入收藏]

智能硬件

当前位置:美高梅游戏网站 > 智能硬件 > Linux crontab不执行问题排查

Linux crontab不执行问题排查

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-02 13:42

解决Linux的crontab没有执行ntpdate的问题

前言:在我们的项目中,需要同步Linux服务器的时间,于是用到了ntpdate命令,就在crontab中进行了配置,设置为每个小时的整时分钟进行同步,完了后就一直没有关注,因为这很简单,经验主义告诉我,既然手动使用ntpdate命令就可以同步时间成功,放在cron进程(是Linux的一个守护进程,如果启动后,会每隔一分钟去检查对应的crontab文件,root用户的在/var/spool/cron)中就更没有问题了,然而,今天看Linux服务器的时间后,发现和Windows时间差上了好几分钟,我们的Linux服务承载着期货交易平台的定时服务,比如说,9点半开盘等等,这就意味着时间不准确啊,于是就调查解决问题,有了下面的记录

问题描述:

1.使用crontab -l命令查看定时服务
[[email protected] xxx]# crontab -l
0,10,20,30,40,50 * * * * ntpdate time.windows.com &>/xxx/ntpdate.log

在CentOS上配置了一个crontab,想让它每天执行一次,配置语法没有问题,但是却查不到程序执行的log,所以程序就没有执行。

2.看起来好像没有问题啊,vim /var/spool/mail/root(定时服务日志会存放在该文件中)查看定时服务日志,发现有如下信息
/bin/sh: ntpdate: command not found

说明定时服务在/bin/sh目录中去找ntpdate命令,并且没有找到

crontab配置如下:

3.使用whereis ntpdate命令看看该命令在什么目录下
[[email protected] cron]# whereis ntpdate
ntpdate: /usr/sbin/ntpdate /usr/share/man/man8/ntpdate.8.gz

问题找到了,在定时服务中,ntpdate命令要使用全路径

00 11 * * * sh /opt/geo/search-task-2.0/bin/updateGeoIndex.sh

4.使用crontab -e命令修改一下,加上ntpdate命令的目录
0,10,20,30,40,50 * * * * /usr/sbin/ntpdate time.windows.com &>/xxx/ntpdate.log

然而保存后,等到整数分钟后,在日志中没有发现该命令执行,为什么呢,猜想如下

a.以上命令格式错误,时间格式错误

b.cron自动服务没有执行

通过网上查找时间的命令格式,发现

0,10,20,30,40,50 * * * *

并没有错误,而手动执行

/usr/sbin/ntpdate time.windows.com &>/xxx/ntpdate.log

也成功执行,那么就看看b是否存在问题

解决方案:

5.执行ps -ef | grep cron,查看时间服务进程是否存在
[[email protected] xxx]# ps -ef | grep cron
root     26157 22992  0 10:04 pts/3    00:00:00 grep cron

发现没有cron执行进程

通过Google,得知可以通过/var/spool/mail/root(user name)查看crontab具体执行信息,于是

本文由美高梅游戏网站发布于智能硬件,转载请注明出处:Linux crontab不执行问题排查

关键词:

上一篇:Ubuntu设置开机自动挂载所有格式硬盘分区

下一篇:没有了