ubuntuのスケジュールされたタスクにcrontabを使用する

最初にシナリオについて説明しましょう。特定のインターフェイスアドレスから定期的にデータを取得するクローラーを作成し、それをローカルデータベースに保存する必要があります。

したがって、定期的に実行できるものが必要です。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

ubuntuのスケジュールされたタスクにcrontabを使用する
ubuntuでのHanlpの使用の概要
UbuntuでのAnacondaの使用
ubuntuでのmediawikiの使用
14.10に適用可能なUbuntu13.10でQQを使用する
Ubuntuファイルシステムの概要
Pythonの用途は何ですか
サーバーの初期設定にはUbuntu16.04を使用します
Ubuntuシステムの使用と開発における一般的な例外と解決策
Ubuntuの基本設定:openssh-serverのインストールと使用の概要
pythonのpipの用途は何ですか
Ubuntuはcronを使用してスケジュールされたタスクを実装します
Win10サブシステムUbuntuのインストールと使用
VMwareでUbuntuのディスクサイズを拡張する
Ubuntuがネットワークに接続できない場合の解決策
Ubuntu14.04でEvernoteを使用する方法の概要
Ubuntu18.04にVMwareToolsをインストールする問題を解決します
ubuntuは、スワップスワップスペースの使用の優先度を調整します
UbuntuにCaffeのCPUバージョンをインストールします
Ubuntuの基本的な構成とインターフェースの美化
Ubuntuの下に古いバージョンのseuratをインストールします
次のコマンドを使用して、Ubuntuプロジェクターの問題を解決します。
Ubuntuを使用した最初の経験について話す
まず、Ubuntu17.10の新機能を見てください
ubuntu18.04を最初から再インストールするための道
ubuntuでpythonをアンインストールした結果、非常に
Ubuntu(wsl)フォルダーの背景色をキャンセルします
Ubuntu16.04にMongodbをインストールする最新の方法
Ubuntu19にTheanoをインストールする問題を解決します
Ubuntu環境でのSSHのインストールと使用
Ubuntuの使用上の注意
ubuntu zip / unzipの使用
apt-get install of ubuntu(transfer)のデフォルトのインストールパス
ubuntu18仮想マシンipをクローン化するための同じソリューション
コマンドラインを使用して、Ubuntuバージョンメソッドを検出します
Ubuntuの言語を中国語に変換する方法は? ?
Cobblerを使用して、CentOS / Ubuntuのバッチ展開を自動化します
UbuntuでのPythonでのGDALのインストールと使用
Ubuntuオペレーティングシステムのデフォルトのルートパスワードを変更します
python学習初日の概要
Canonicalは、Ubuntu17.10ダウンロードチャネルの一時的な閉鎖を発表しました
ubuntu18.04ワイヤレスネットワークの低速に対する解決策