Mac OS X Lionでのcronjobの追加エラー


37

これまで、Macにcrontaskを追加しようとしたことはありません。驚いたことに、エラーが発生しました。

[hayek@mac:/www/] 02:33:22 PM: crontab -e                                                                                                         1 .
crontab: no crontab for hayek - using an empty one
crontab: "/usr/bin/vi" exited with status 1

なぜそのエラーがスローされているのかを知るにはどうすればよいですか?

Mac OS X Lion 10.7.2を実行しています


2
特定の理由でcronを使用していますか?OS xでは、主にlaunchdに取って代わられました
Daniel Beck

vnstatを使用して、cronjobを必要とする帯域幅の使用状況を追跡したかった。代替アプリを使用できることは知っていますが、可能な限りMacでcronを機能させる方法を知っておくと便利です。
ハイエク

1
crontab file外部ファイルからテーブルをインストールしようとしましたか?または次のような別のエディターを使用しEDITOR=NANO crontab -eますか?
リリ

@DanielBeck cronを使用するのは、launchdよりも新しいエントリを設定する方がはるかに高速だからです。
ダグ・ハリス

何がcrontab -l表示されますか?/var/log/cron.logまたはに他のメッセージがありますか/var/log/system.log
ダグ・ハリス

回答:


41

〜/ .vimrcに以下を追加します。

    autocmdファイルタイプcrontab setlocal nobackup nowritebackup

素晴らしいシンプルなトリック!私にとってはうまくいきます。
トライグエン

これは最良の答えであり、うまく機能します-シェルプロファイルでのenv変数の設定と編集を含むものよりはるかに簡単です~/.vimrc
-RichVel

私自身の返信はもはや適切でも効果的でもないので、これを正しい答えとしてマークします。
ハイエク

1
これはMac OS High Sierraでも機能します!これを投稿していただきありがとうございます
カーニータッ

44

この問題viは、cronとは無関係であることが判明しました。やってexport EDITOR=vimそれを修正


2
はい、私はあなたが問題を見つけたことを理解しています、そして解決策は...何ですか?
グーカンバリスアーカー

3
やってみてexport EDITOR=vim、やってみてください。
ハイエク

ありがとう@Hayek。遅延のため申し訳ありませんが、私はあなたがしたようにすぐに応答できませんでした:P しかし、全能の「sudo」でcrontabを実行すると、問題が解決しました。
グーカンバリスアーカー

喜んでくれました。
ハイエク

1
私はちょうど同じ問題を抱えています。設定EDITOR=vimはそれを修正しませんでした-それはちょうど新しいエラーに私を導いたcrontab: temp file must be edited in place。私はvimを非常に好んでいますが、cronジョブを編集する頻度はあまりないので、それで十分満足していNANOます...誰かが修正を知っていれば、私は非常に興味があります。
リカルド

35

関連する問題で、メッセージが表示された場合:

crontab: temp file must be edited in place

試してください:

1).bash_profileに追加

alias crontab="VIM_CRONTAB=true crontab"

2).vimrcに追加

if $VIM_CRONTAB == "true"
    set nobackup
    set nowritebackup
endif

ソース:http : //drawohara.com/post/6344279/crontab-temp-file-must-be-edited-in-place


2
これが正解です!!
ジェイコブ14

これは私にとってはうまくいきました。これは正しい答えだと思います。
シュバハモイ

1
cshまたはtcshの場合、次を使用しますalias crontab "export VIM_CRONTAB=true; /usr/bin/crontab"
JAFaucett

1
OPからの質問では、説明されている@xgMzの正確なエラーについては言及していませんが、これはより良い答えだと思います。crontabは書き込み/保存動作のvimバックアップを好まないように見えるので、ここで説明するように無効化するだけで機能します。
シャムハバラカダ

macOS Sierraのvimとcronでこの問題が発生しました。これは正解です!
ジェームズマコーマック


2

私は同じ問題を抱えていて、テーブルを作成するために投稿されたアドバイスに従いました:

crontab file

そして、それはcronテーブルを作成し、それから私は実行することができました

crontab -e

デフォルトのエディターとしてviを使用しており、問題はありませんでした。これは、viがファイルを保存できなかったように見えますが、一度作成するとアクセスできます。これは、実行できることと一致しています。

sudo crontab -e 

好奇心として、テーブルは

/usr/lib/cron/tabs/UserName

sudoとしてのみ読み取ることができます。


0

これを診断する最良の方法は、次のような簡単なエントリで新しいcrontabを作成することです。

* * * * * /bin/date >> /tmp/cron_output

それが機能する場合、問題は追加した特定のコマンドにあります。共有してください。また、crontabからではなく、Terminal.appから直接実行したときに結果を共有してください。


1
提案したコマンドと同じエラー。ターミナルで/bin/dateWed Nov 23 15:03:49 PST 2011、期待どおりに戻ります。
ハイエク

OK、ちょうどあなたの答えを見て、あなたが同じエラーを受け取る理由を説明します-それは問題を診断するのに役立つかもしれないと思っただけです:)
tog22

0

cronは、launchdを支持して廃止されました。

Lingonは、起動エージェントを設定するためのすばらしい小さなツールです。以前は無料でしたが、現在は3ドルです。

ウィキペディアには、すべてのキーと、それらをアクティブ化/非アクティブ化するために使用するlaunchctlツールを説明する優れた起動ページがあります。



-1

OSXでも同じ問題が見られました。答えは、sudoコマンドを使用してrootとして実行することです。例:

sudo crontab -e

上記のGökhanBarışAkerからそのアイデアを得ました。


sudorootユーザーでcronジョブを配置しようとしています。cronファイルは、通常のユーザーとルートユーザーでは異なります。
ティモフィー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.