GNU/Linux >> Linux の 問題 >  >> Linux

Linuxcronコマンドを使用したタスクのスケジューリング

Linuxの旅の早い段階で、オペレーティングシステムの多数のコマンドラインユーティリティと、それらが通常のタスクを合理化する方法に感謝するようになりました。たとえば、Windowsサーバー上のアプリケーションをバックアップするには、高価なアドオンソフトウェアパッケージが頻繁に必要でした。対照的に、tar コマンドを使用すると、Linuxのバックアップが比較的簡単になり、強力で信頼性も高くなります。

しかし、学区の電子メールシステムをバックアップするとき、私は別の課題に直面しました。人々がシステムを使用していたため、平日または夕方にはバックアップを実行できませんでした。バックアップは深夜以降に実行する必要があり、信頼性が高い必要がありました。私はWindowsタスクマネージャーに慣れていましたが、Linuxで何を使用する予定でしたか?その時、私はcronについて学びました。

cronを使用したLinuxでのタスクのスケジューリング

Cronは、スケジュールされたコマンドを自動的に実行するために使用されるデーモンです。 cronの使用方法を学ぶには、ある程度の読み取りと実験が必要でしたが、すぐにcronを使用してメールサーバーをシャットダウンし、データを圧縮されたtarファイルにバックアップしてから、午前3時にメールサービスを再起動しました。

cronジョブのコマンドは、Linuxシステムのcrontabファイルに保存されます。このファイルは通常/ etc/crontabにあります。 $ crontab -lを使用してcrontabファイルの内容を表示します 。

$ crontab -eを使用してcrontabファイルを編集します 。

一部のシステムでは、cron編集用にデフォルトでViエディターが使用されます。この設定は、環境変数を使用して上書きできます:

$ EDITOR=nano crontab -e

これにより、nanoエディターを使用して個人のcrontabを編集できます(まだ持っていない場合は、自動的に作成されます)。

すべてのcrontabコマンドには、整数値を挿入するまで、アスタリスクで示されるパラメーターがあります。最初は分、次に時間、日、月、最後に曜日を表します。

コメントの前にはハッシュが付きます。 Cronはコメントを無視するため、コマンドの機能とその重要性についてメモを残すのに最適な方法です。

サンプルのcronジョブ

毎週月曜日の午前10時にclamscanを使用して、ホームディレクトリでウイルスとマルウェアをスキャンするとします。また、毎週火曜日の午前9時にホームディレクトリをバックアップする必要があります。 cronファイルとcrontabファイルを使用すると、これらのユーティリティを実行することを覚えているかどうかに関係なく、システムのメンテナンスが毎週行われるようになります。

「don」(私のユーザー名)の代わりに独自のユーザー名を使用して、crontabファイルを編集して以下を含めます。

# Scan my home directory for viruses
0 10 * * 1 clamscan -ir /home/don
# Backup my home directory
0 9 * * 2 tar -zcf /var/backups/home.tgz /home/don

nanoエディターを使用している場合は、 Ctrl + Oを使用して作業内容を保存します ファイルを書き出すにはCtrl+ X エディターを終了します。ファイルを編集した後、crontab -lを使用します cronファイルの内容を一覧表示して、正しく保存されていることを確認します。

システムで必要な任意のジョブのcrontabジョブを作成できます。これはcronデーモンを最大限に活用します。

Linuxコマンドラインからのスケジューリング

cronの最も難しい部分が、これらの主要なアスタリスクに適切な値を考え出すことは周知の事実です。 crontab.guruのように、cron時間を人間が読める形式の翻訳に動的に変換するWebサイトがあります。また、Opensource.comには、ダウンロードしてまっすぐに保つためのcronチートシートがあります。

さらに、最新のcronシステムのほとんどは、次のような一般的な値へのショートカットを備えています。

  • @hourly :1時間に1回実行(0 * * * *)
  • @daily :1日1回実行(0 0 * * *)
  • @weekly :週に1回実行(0 0 * * 0)
  • @monthly :月に1回実行(0 0 1 * *)
  • @reboot :再起動後に1回実行

cronの代替手段もあります。たとえば、定期的に実行したいが特定のスケジュールに従って実行したくないジョブのanacronや、at 1回限りのジョブのコマンド。

Cronは便利なタスクスケジューリングシステムであり、テキストの編集と同じくらい簡単に使用できます。試してみてください!


Linux
  1. Linuxのpingコマンドで接続の問題を診断する

  2. Linuxのwatchコマンドでコマンドとタスクを監視する

  3. スマートクォートをLinuxsedコマンドに置き換えます

  1. Linuxtacコマンドの使用を開始する

  2. Linuxcatコマンドの使用を開始する

  3. Linux での locate コマンド

  1. statコマンドを使用してLinuxのファイルステータスを確認します

  2. Linuxatコマンドでタスクをスケジュールする

  3. Linuxlsコマンドをマスターする