我正在尝试熟悉cron作业,我认为我得到了基本的想法(调度,语法等),但是,我似乎无法在我的Mac上使用终端 - 正是这样做我找到了Crontab?我应该如何引用脚本的路径?
我要做的是在远程计算机上点击一个php脚本(http://..。) - 这有可能吗?
答案 0 :(得分:8)
键入crontab -e
以编辑您的cron表,并键入crontab -l
以列出当前内容。输入man 1 crontab
以获取有关该命令的更多信息,输入man 5 crontab
以获取有关该命令的更多信息cron表文件格式。
例如,要在每天10:00a下载stackoverflow页面,请运行crontab -e
,输入此行,然后保存/退出。输出将写入主目录中的文件。
0 10 * * * /usr/bin/curl -s http://stackoverflow.com > ~/stackoverflow.html
答案 1 :(得分:5)
要开始使用launchd(而不是cron),您首先需要创建一个空的.plist
文件,例如local.mytask.plist
并将其放在某处。 ~/Library/LaunchAgents
可能是一个好地方。在文本编辑器中打开它并复制到下面的代码中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>local.mytask</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/wget</string>
<string>http://someserver/somepage.php</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>RunAtLoad</key>
<true />
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
然后从命令行“激活”文件:
sudo launchctl load /Users/my_username/Library/LaunchAgents/local.mytask.plist
要自动加载,请使用相同的行创建~/.launchd.conf
文件(减去sudo launch
)
load /Users/my_username/Library/LaunchAgents/local.mytask.plist
以上上述说明已从www.davidlanier.com复制并转载此处供您参考。
答案 2 :(得分:4)
如果有人在Snow Leopard上与cron战斗的人偶然发现这个问题,我会疏通这个旧线程。
是的,launchd应该取代cron,但事实上它不能做cron可以做的某些事情。
Cron整合不好。如果它发送一条消息,它最终会出现在/ var / mail / user_name中,当然Apple Mail对此一无所知。
crontab -e抛出'必须在适当位置编辑临时文件'。显然vim与vi不兼容。然后,您可以执行crontab“&lt; /tmp/crontab.whatever”(查看/ tmp并查看实际使用的名称),它将最终出现在正确的位置,假设您没有输入拼写错误,则可以正常工作
是的,需要一段时间才能解决这个问题:(
答案 3 :(得分:3)
launchd功能强大,但你真的不想自己编写plist。获取Lingon。它是一个开源的,设计精良的GUI,用于创建和管理系统的启动任务。
答案 4 :(得分:1)
自10.4以来,Cron已被launchd取代。您可能应该使用此编写任务,除非您计划在某些时候将它们移植到Linux / Unix系统。
如果您决定使用cron,请尝试输入crontab -e
或sudo crontab -e
。这些将为您提供不同的crontab文件,前者适用于您当前正在运行的用户,后者适用于root用户。
“点击”URL可以通过很多方式完成。根据您用来“命中”它的本地脚本,您可以使用某些语言的内置方法/类。例如,Ruby脚本将使用net/http,但如果您只是编写一个bash脚本,也可以尝试使用curl。请man curl
了解更多内容,但基本命令只是curl http://google.com
。
答案 5 :(得分:0)
您不再想使用cron。正如其他人已经说过的那样,它已被launchd取代,而launchd显然将成为Mac OS X上的未来。
MacTech杂志最近一直在做一系列关于launchd的文章,我强烈建议你阅读它们。我知道我确实学到了很多东西。
2009年9月(第25卷,第9期) 25.09 MacEnterprise:推出午餐
2009年10月,(第25卷,第10期) 雪豹,发射和午餐 更多的发布食谱,以及雪豹的变化
MacTech中还有其他文章,我建议搜索他们的网站。