Ubuntu 12.04でVPSをセットアップしましたが、1日に1回cronjobを実行したいと考えています。
コマンドラインは次のとおりです。
mono /root/Folder/Aplication.exe
私はインターネットを見回しましたが、どうやってそれをするのか理解できないようです。たとえば、このコマンドを24時間ごとに真夜中に実行したいと思います。
私の質問を読んでくれて、もちろんすべての答えをありがとう。
@ Gussと私の答えにはいくつかの補完的な違いがあるため、そのままにします。
ここに、cronjobssetup( source )の図を示します。
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
毎日0時15分に$ USERでジョブを実行する場合は、ユーザーのcrontabファイル(/var/spool/cron/crontabs/<user_name>
にある)を編集する必要があります)。コマンドcrontab -e
でそれを行うことができます。 (たぶん、ダイアログが表示され、そこでデフォルトのターミナルテキストエディタを選択する必要があります。)crontabファイルの最後に次の行を追加します。
15 0 * * * /usr/bin/mono /root/Folder/Aplication.exe > /var/log/mono.daily.log 2>&1
/usr/bin/mono
Cronのコマンドへのフルパスを使用することをお勧めします。それを見つけるには、Sudo updatedb && Sudo whereis mono
を使用できます。> /var/log/mono.daily.log
この部分は、cronjobで何が起こっているかを追跡したい場合に、出力をログファイルにリダイレクトします。前日のログデータを保持する場合は、>>
の代わりに>
を使用できます。2>&1
この部分は、エラーメッセージをログファイルに書き込みます。rootでジョブを実行する場合は、そのcrontabファイルを編集する必要があります:Sudo
crontab -e
を追加し、上記の行を追加します。
また、毎日cronjobsの場合、フォルダー/etc/cron.daily
に実行可能ファイルを追加できます。サンプルを見つけるには、このフォルダーにある既存のファイルのいくつかをチェックしてください。
Cronを使用して、Ubuntu(および他のLinux)でスケジュールされたジョブを実行します。 cronについて覚えておくべき重要なことの1つは、「ユーザーcronテーブル」と「システムcronテーブル」があることです。
アプリケーションをユーザーのコンテキストで実行する場合は、比較的単純です。そのユーザーとしてログインし、crontab -e
を実行します。 cronテーブルを手動で編集するエディターに入ります。
ユーザーcronテーブルの下には、6つのフィールドがあります。
<minute> <hour> <day-of-month> <month> <day-of-week> <command ...>
フィールドはスペースで区切られますが、「command
」は行の最後まで拡張されます(いくつか注意事項があります)。面倒な詳細については、man 5 crontab
をお読みください。
毎日何かを実行するには、時間を選択し、それを最初の2つのフィールドにプログラムして、他のすべてのフィールドをアスタリスクのままにします(つまり、「anything goes」)。だから式
1 2 * * * mono /root/Folder/Aplication.exe
モノアプリケーションを毎日実行します(曜日に関係なく毎月毎日-これらは3つのアスタリスクです)2:01 AM(最初の2つのフィールド)。
これで、アプリケーションを/root
の下にインストールしたことがわかるので、このアプリケーションをシステムアプリケーションとして実行することをお勧めします。これは、VPSでサーバーをセットアップするときにも意味があります。システムcrontabは、/etc
ディレクトリの下のファイルに保存されることを除いて、ユーザーcrontabに非常に似ています。また、実行するユーザーを指定する追加フィールドがあります-root
。したがって、式は次のようになります。
1 2 * * * root mono /root/Folder/Aplication.exe
おそらく、あなたは/etc/cron.d/
-おそらく/etc/cron.d/myapp
の下に作成する新しいファイルにこれを入れたいでしょう(拡張子がないことに注意してください-これは意図的なものです)。 /etc/
の下には、他のいくつかのcrontabファイルとディレクトリがあります。これらは、/etc/cron.daily
など、毎日の実行などに非常に役立ちます。
ノート