2011-09-06 167 views
21

我想在我的Mac OS X机器上编写一个cron作业,它会在每天中午12:20运行一个Ruby脚本。如何创建一个在12点20分每天运行的cron作业?

这正是我需要运行,但我不知道语法或命令到Mac上使用:

/usr/bin/ruby /Users/tamer/scripts/sftp.rb 

我读到做crontab -e,但我需要以后做什么?

回答

39

“在上午12:20日常” 的crontab的是

20 0 * * * 

在crontab中整条生产线将被

20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb 
11

crontab条目看起来应该像:

20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb 

这假设您不需要任何其他环境变量来使其全部工作。如果您确实需要其他变量,则创建一个环境设置shell脚本,然后执行Ruby程序和脚本。

要提交作业,我通常使用:

crontab -l > x3 
echo "20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb" >> x3 
crontab < x3 
rm x3 
+1

不会你只需要使用'crontab的-e'编辑crontab的配置文件(代替使用X3临时文件)? – snowbound

+1

@snowbound:也许吧,但前提是我知道/记得这个选项在那里,如果我想做交互式编辑。如果我正在编写脚本,除了使用更好的临时文件名(例如'mktemp')之外,我可能会按照所示方式执行。或者,因为我通常将我的'crontab'条目保存在源代码管理下,所以我将编辑该文件的主版本并在签入更改后重新提交。 –

+0

您的方法还具有可以通过另一个脚本以编程方式调用的优点:D – snowbound