Back

linux - crontab 的调试,启动thin服务器

发布时间: 2018-11-18 09:10:00

参考:https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log

日志默认位置

在 /var/log/syslog 中。 grep CRON 。 如果没有安装MTA的话(例如 mail 程序,则基本看不到报错内容,只能看到一个cron运行的title)

安装sendmail

$ apt-get install sendmail 这个名令会让系统增加MTA支持。 crontab报错的话,默认会给管理员发送email.

运行时加上 2>&1

 * * * * * sh /root/backup.sh >> /var/log/cron.log 2>&1

linux中, 1 表示 stdout, 0 表示 stdin , 2表示stderr. 2>&1 表示把出错的内容打到正常的日志中。 所以,上面的 代码表示,把所有的日志(stdout, stderr 的)都pipe到 /var/log/cron.log 中

对于rbenv等需要加载环境的命令

 * * * * * export PATH="$HOME/.rbenv/bin:$PATH" ; eval "$(rbenv init -)"; ruby /opt/keep_rails_running.rb >> /var/log/cron.log 2>&1

需要直接export 变量。 不能用source , 会找不到。

下面是原文

很多时候我们要执行crontab命令,但是事后发现命令并没有被执行.

原因肯定是多种多样的.找到问题的线索:

例如,我希望在 每天凌晨2点运行某个命令:

0 2 * * * cd /var/data/zhi_dao_yuan_manage/current && ./restart_very_quickly

1. 查看 /var/log/crontab 这个日志文件,这里会记录某个命令在某个时刻是否被执行. 如下所示:

Nov 18 02:00:01 HBL-WEB-1 CROND[58286]: (zhidaoyuan) CMD (cd /var/data/zhi_dao_yuan_manage/current && ./restart_very_quickly)

2. 查看 /var/spool/mail/zhidaoyuan 文件,就可以看到具体的报错信息:

3220 From: [email protected] (Cron Daemon)
3221 To: [email protected]
3222 Subject: Cron <zhidaoyuan@hbl-web-1> cd /var/data/zhi_dao_yuan_manage/current && ./restart_very_quickly
3223 Content-Type: text/plain; charset=UTF-8
3224 Auto-Submitted: auto-generated
3225 X-Cron-Env: <shell= bin="" sh="">
3226 X-Cron-Env: <home= home="" zhidaoyuan="">
3227 X-Cron-Env: <path= usr="" bin:="" bin="">
3228 X-Cron-Env: <logname=zhidaoyuan>
3229 X-Cron-Env: <user=zhidaoyuan>
3230 Message-Id: <[email protected]>
3231 Date: Sun, 18 Nov 2018 02:00:01 +0800 (CST)
3232 
3233 ./restart_very_quickly: line 2: bundle: command not found

所以,就知道,这个cron任务没能执行的原因是没有找到bundle命令.给它设置一下就可以了.

3. 解决办法:crontab 执行命令时,加载用户的配置文件:

source ~/.bash_profile && cd ... && ./restart ... 

就可以了. 

3262 From: [email protected] (Cron Daemon)
3263 To: [email protected]
3264 Subject: Cron <zhidaoyuan@HBL-WEB-1> source ~/.bash_profile && cd /var/data/zhi_dao_yuan_manage/current && sh /var/data/zhi_dao_yua
3265 Content-Type: text/plain; charset=UTF-8
3266 Auto-Submitted: auto-generated
3267 X-Cron-Env: <SHELL=/bin/sh>
3268 X-Cron-Env: <HOME=/home/zhidaoyuan>
3269 X-Cron-Env: <PATH=/usr/bin:/bin>
3270 X-Cron-Env: <LOGNAME=zhidaoyuan>
3271 X-Cron-Env: <USER=zhidaoyuan>
3272 Message-Id: <[email protected]>
3273 Date: Sun, 18 Nov 2018 17:43:05 +0800 (CST)
3274 
3275 Starting server on 0.0.0.0:3300 ...
3276 Deleting stale PID file tmp/pids/thin.3300.pid
3277 
3278 Starting server on 0.0.0.0:3301 ...
3279 Deleting stale PID file tmp/pids/thin.3301.pid
3280 

Back