最初にシナリオについて説明しましょう。特定のインターフェイスアドレスから定期的にデータを取得するクローラーを作成し、それをローカルデータベースに保存する必要があります。
したがって、定期的に実行できるものが必要です。5fireのナレッジシステムでは、データベースでストアドプロシージャまたはSQLステートメントを実行する以外に、システムでタスクを実行する方法の概念はありません。
そこで同僚に相談しました。 ubuntu、正確には、linuxには、タスクの実行をカスタマイズするために特別に使用されるcrontabというものがあることを私は知っています。簡単に説明してください。使用されます。
これは比較的単純ですが、知識システムの整合性を確保するために、crontabが何であるかを調べる必要があります。
crontabという単語は、時限タスクを意味します。
百科事典の定義を見てください[[完全な定義](http://baike.baidu.com/view/1229061.htm)]:
crontabコマンドは、UnixおよびUnixに似たオペレーティングシステムで一般的に使用され、定期的に実行される命令を設定します。このコマンドは、標準の入力デバイスから命令を読み取り、後で読み取って実行できるように「crontab」ファイルに保存します。この言葉は、もともと時間を意味するギリシャのクロノス(χρόνος)から来ています。
通常、crontabに格納されている命令はデーモンによってアクティブ化され、crondはバックグラウンドで実行されることが多く、実行するスケジュールされたジョブがあるかどうかを毎分チェックします。このようなジョブは、一般にcronジョブと呼ばれます。
上記の概念により、crontabの使用がより明確になります。
システムは毎分チェックする必要があるため、構成ファイルなどのチェックの基礎が必要です。
または、Wikiをご覧ください。
crontabファイルには、cronデーモンに送信される一連のジョブと命令が含まれています。各ユーザーは独自のcrontabファイルを持つことができます。同時に、オペレーティングシステムはシステム全体のcrontabファイルを保存します。これは通常、/ etcまたは/ etcの下のサブディレクトリに保存され、このファイルはシステム管理者のみが使用できます。変更します。
crontabファイルの各行は特定の形式に従い、スペースまたはタブでいくつかのフィールドに分割され、各フィールドは単一または複数の値で配置できます。
さて、それを使い始めましょう。定義から使い方を知っている人もいると思われます。しかし、私はまだ記録したいです。
使用手順:
1.ターミナルでcrontab-eを実行します[説明:構成ファイルを編集します]
2.使用するエディターを選択します。ほとんどの人はviを選択します。
3.この時点で構成ファイルが開かれているので、彼の形式に従って構成を書き込むだけです。
まあ、それは私が思うほど簡単です。 。
例えば:
私のホームディレクトリhelloworld.pyにpythonスクリプトがあります
#coding:utf-8
print 'hello world by crontab!'
このスクリプトを毎日午前7時30分に実行してほしい。
したがって、このタスクのcrontab構成ファイルは次のとおりです。
# m h dom mon dow command
307*** python /home/the5fire/testcrontab.py >>/home/the5fire/testcrontab.log 2>&1
簡単に説明すると、この構成の意味は、毎日7:30にpythonを使用してホームディレクトリでtestcrontab.pyファイルを実行し、出力をtestcrontab.logに出力することです。後者の2>&1はエラーを意味します。の出力は標準出力にも出力されるため(2はエラーを意味し、2>はエラー出力を意味し、&は同等を意味し、1は正しいことを意味します)、操作でエラーが発生した場合、エラーは以前に定義されたログにも出力されます。
さらに、コマンドの適切な実行について何か言いたいことがあります。
上記は実行するタイミングのほんの一部ですが、特定の頻度で実行するように設定するにはどうすればよいですか。たとえば、1分ごとに順次実行されます。
対応する構成は
# m h dom mon dow command
*/1**** python /home/the5fire/testcrontab.py >>/home/the5fire/testcrontab.log 2>&1
別のシナリオを次に示します。毎日午前6時から午前8時まで3分ごとに実行される構成を記述したいと思います。
# m h dom mon dow command
*/36-8*** python /home/the5fire/testcrontab.py >>/home/the5fire/testcrontab.log 2>&1
これまでのところ、使用する必要があります.5つのアスタリスクは、異なる実行単位(分、時間、日、月、年)を示し、バックスラッシュは頻度を示します。 -
Recommended Posts