非常に基本的なcronジョブを作成しようとしていますが、保存されていないようです。私がしたことは次のとおりです。
1)crontab -e
これにより、vimを使用してファイルが開きます。
2)
#!usr/bin/env python
0 23 * * 0 ~/Desktop/SquashScraper/helpfulFunctions.py
三):wq
4) クローンタップ-l
何も表示されず、次のメッセージが表示されます。
crontab: no crontab for ben
周りを見回すと、同様の問題を持つほとんどの人が編集の問題を経験しています。私のcrontabはvimで正しく開くので、これは問題ではないようです。
なぜこれが正しく機能/保存されないのかを知っていますか?
ありがとう、クライマン
以下を含めるように編集されました。
答え1
エラーメッセージが示すように、何らかの理由で/usr/bin/vi
コンピュータで正常に動作しません。
crontab: "/usr/bin/vi" exited with status 1
そこで何が起こっているのか、出るとvi
エラーコードが生成されるということです。終了時にエラーコードがcrontab
表示されると、編集中のファイルの内容はvi
信頼されず、vi
crontabは変更されません。
うまくいかない理由をさらに詳しく調べたりvi
、必要に応じてまったく異なるエディタを使用したりできます。たとえば、を使用する場合は、vim
次のように入力できます。
EDITOR=/usr/bin/vim crontab -e
あるいは、ホームディレクトリにcrontabの「公式」バージョンを保存することもできます。次に、ホームディレクトリでバージョンを編集し、最後に次のコマンドを使用してインストールします。
crontab filename
答え2
システムによっては、ユーザーcrontabがに保存されます/var/spool/cron/
。このディレクトリがあることを確認してください。また、crontabプログラムはsetuidになっており、他の人のcrontabを読むことができませんので、これを確認してください(-rwS...):
$ ls -l /bin/crontab
-rwsr-xr-x 1 root root 57536 Sep 18 2014 /bin/crontab
あなたのvimがエラーコードで終了するようです。エントリを「myfile」ファイルに入れて、それを使ってインストールしてcrontab myfile
みてください。より意味のあるエラーメッセージが表示されることがあります。
また、crontabを実行するにはファイルが/etc/cron.deny
存在する必要があります(通常は空です)。それ以外の場合は、エラーメッセージが表示されます。
あなたの#! @G-Manがコメントで述べたように、その行は機能しません。あなたは次のようなものが必要です
0 23 * * 0 python ~/Desktop/SquashScraper/helpfulFunctions.py
答え3
ここでは元の質問に答えません。しかし、ジョブをスケジュールするにはMac OS 10.9+そしてcron
、君がこんなことをしたのは間違ってる:crontab
廃止予定です。あなたlaunchctl
はlaunchd
(マニュアルページはこちら)逆。
launchd
/は、/がファイルで使用される方法と同様に、各操作を説明するファイルlaunchctl
と共に使用されます。最初は不安かもしれませんが、シングル。.plist
systemd
systemctl
.service
cron
crontab -e
幸いなことに、ジョブ管理を容易にするためのGUIソフトウェアがたくさんありますlaunchd
。私が個人的に一番好きなのは発射制御相馬区提供。価格は10ドルですが、ソフトウェアを無制限にダウンロードして使用できます。
とにかく、あなたの場合、~/Library/LaunchAgents/HelpfulFunctionsJob.plist
ファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>HelpfulFunctions.job</string>
<key>Program</key>
<string>/Users/bclayman/Desktop/SquashScraper/helpfulFunctions.py</string>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
<key>Weekday</key>
<integer>7</integer>
</dict>
</dict>
</plist>
<string>/Users/bclayman/Desktop/SquashScraper/helpfulFunctions.py</string>
実際のパスに変更してタスクをロードします。
launchctl load -w ~/Library/LaunchAgents/HelpfulFunctionsJob.plist