我想在我的Mac上使用cron.我选择它launchd,因为我希望能够在Linux上使用我的新知识.但是,我似乎无法让crontab -e命令工作.它启动vim,我进入我的测试工作:
0-59 * * * * mollerhoj3 echo "Hello World"
Run Code Online (Sandbox Code Playgroud)
但在保存和退出(:wq)后,
crontab -l
Run Code Online (Sandbox Code Playgroud)
说:
No crontab for mollerhoj3
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Cao*_*Dat 179
只需按以下步骤操作:
crontab -e.输入您的cron作业,例如:
30 * * * * /usr/bin/curl --silent --compressed http://example.com/crawlink.php
Run Code Online (Sandbox Code Playgroud)按Esc退出vim的插入模式.
crontab: installing new crontab.您可以使用验证crontab文件crontab -l.但请注意,这可能不起作用,具体取决于~/.vimrc文件的内容.
Mic*_*ell 69
我从来没有遇到过这个问题,但我创建了一个〜/ .crontab文件并对其进行编辑(允许我备份它,Time Machine或其他),然后运行
crontab ~/.crontab
Run Code Online (Sandbox Code Playgroud)
在许多unix版本中为我工作了20多年.
Dav*_*ohm 38
注:上面写着使用的答案ZZ命令我,我的小牛系统不能正常工作,但是这可能是由于我的vim的配置,因为如果我开始用原始的东西.vimrc,接受的答案工作.如果其他解决方案没有,我的回答可能对您有用.
在MacOS X上,根据crontab联机帮助页,创建的crontab临时文件crontab -e需要就地编辑.默认情况下,Vim不会就地编辑(但它可能会支持一些特殊情况crontab -e),因此如果您的$EDITOR环境变量设置为vi(默认值),或者vim编辑crontab将始终失败.
要让Vim就地编辑文件,您需要执行以下操作:
:setlocal nowritebackup
Run Code Online (Sandbox Code Playgroud)
这应该让你当你更新的crontab crontab -e用:wq或ZZ命令.
您可以在.vimrc中添加自动命令,以便在编辑crontabs时自动执行此操作:
autocmd FileType crontab setlocal nowritebackup
Run Code Online (Sandbox Code Playgroud)
另一种方法是添加setlocal nowritebackupto ~/.vim/after/ftplugin/crontab.vim,如果你启用了Filetype插件,那么当你编辑crontab文件时,Vim会自动加载.如果您在多个平台上使用vim文件,还可以检查操作系统:
""In ~/.vim/after/ftplugin/crontab.vim
if has("mac")
setlocal nowritebackup
endif
Run Code Online (Sandbox Code Playgroud)
And*_*ndy 22
不建议在OS X上使用cron. launchd用来代替.尝试man launchctl开始吧.您必须创建定义作业的特殊XML文件,并将它们放在具有特定权限的特殊位置.
你通常只需要搞清楚 launchctl load
http://nb.nathanamy.org/2012/07/schedule-jobs-using-launchd/
编辑
如果您确实想在OS X上使用cron,请查看以下答案:https://superuser.com/a/243944/2449
我做了两件事来解决这个问题.
EDITOR = emacs crontab -e我不知道为什么vim不起作用)crontab -l现在打印cronjobs.现在我只需要弄清楚cronjobs为什么还没有运行;-)
如前所述,cron已弃用(但受支持),建议OS X使用launchd.
如果系统关闭或睡眠,则不执行cron作业; 它们将在下一个指定时间发生之前运行.
如果通过设置StartCalendarInterval键来计划启动作业,并且计算机在作业运行时处于睡眠状态,则计算机唤醒时将运行作业.但是,如果作业应该运行时机器处于关闭状态,则直到下一个指定时间才会执行作业.
当计算机关闭或睡眠时,将跳过所有其他启动的作业; 它们将在下一个指定时间发生之前运行.
因此,如果计算机在作业的预定时间总是关闭,则cron作业和启动作业都不会运行.例如,如果您总是在晚上关闭计算机,则计划在凌晨1点运行的作业将永远不会运行.
| 归档时间: |
|
| 查看次数: |
117039 次 |
| 最近记录: |