Ruby&Rails---Ubuntu使用crontab定时任务-重启服务器

使用crontab做定时任务,例子是重启rails项目服务器

先介绍常用的命令

定制任务

crontab -e

列出任务

crontab -l

开启

sudo /etc/init.d/cron start

关闭

sudo /etc/init.d/cron stop 

重启

sudo /etc/init.d/cron restart

重新载入配置

sudo /etc/init.d/cron reload 
步骤1:编写需要定时执行的脚本文件 start.sh

该文件我是放在工程根目录下

#!/bin/bash
. /etc/profile
. ~/.bash_profile
cd /home/hpd/productions/your_pro_name
kill -9 $(lsof -t -i:3000)
RAILS_ENV=production rake assets:precompile
bin/rails s -e production
sudo service nginx restart
步骤2:编写定时任务

输入 crontab -e,会出现如下图


Ruby&Rails---Ubuntu使用crontab定时任务-重启服务器_第1张图片
图片.png

然后输入

SHELL=/bin/bash
* * * * * /home/hpd/productions/your_pro_name/start.sh
* * * * * 的意思是每分钟执行一次。

这边编写的规则详情可以看:http://blog.csdn.net/LOUISLIAOXH/article/details/48242289

然后保存,退出。

步骤3:启动定时任务
重启:sudo /etc/init.d/cron restart 
重新载入配置:sudo /etc/init.d/cron reload 

到这边应该就已经可以了。

遇到的问题

手动执行.sh脚本文件是可以的,但是放到crontab上就不行了。这是因为crontab没有相应的环境。需要加上环境才行。如步骤1中的

. /etc/profile
. ~/.bash_profile

详情可以看:http://blog.csdn.net/cy309173854/article/details/53186516

你可能感兴趣的:(Ruby&Rails---Ubuntu使用crontab定时任务-重启服务器)