Crontab は、Unix/Linux システムで一般的に使用されるスケジュールされた実行ツールであり、手動介入なしで指定されたジョブを実行できます。たとえば、「Let's Encrypt Wildcard free」ドメイン名 SSL 証明書で説明されている acme.sh スクリプトは、Crontab のスケジュールされたタスクを使用して SSL 証明書を更新する必要があります。

crontab コマンドを使用すると、指定したシステム命令またはシェル スクリプトを一定の間隔で実行できます。Linux VPS が Google Drive と Dropbox をマウントするときに、Crontab コマンドを使用してスケジュールされた同期バックアップを実行し、Crontab を使用して VPS とサーバーを定期的に再起動できます。または、Nginx、PHP、MysqL サービスなど。

つまり、基本的な Crontab コマンド構文を習得することは、独自の VPS ホストを管理するために非常に必要です。この記事では、詳細な説明は行わずに、Linux Crontab コマンドの使用方法を主に簡単に説明します。将来。

Linux Crontab コマンド スケジュールタスク 基本構文と操作チュートリアル - VPS/サーバー自動化操作

VPS ホスティングに関連するその他のコマンドとアプリケーションについては、以下を確認してください。

  1. Linux システム監視コマンドの概要 - パフォーマンスのボトルネックを見つけるためのマスター CPU、メモリ、ディスク IO など
  2. 3 つのコマンド ツール Rsync、SCP、Tar-quick ソリューションによる VPS リモート Web サイトの再配置とデータ同期
  3. Linux でフォルダー ディレクトリを共有する 3 つの方法 - NFS リモート マウント、GlusterFS 共有ストレージ、Samba 共有ディレクトリ

1. Crontab の表示と編集の再起動

1. crontab のスケジュールされた実行タスクのリストを表示します。

crontab -l

2. crontabを編集してタスクを定期的に実行する

crontab -e

3. crontabのスケジュールされたタスクを削除します

crontab -r

4. 関連コマンド:

sudo service crond start     #启动服务
sudo service crond stop      #关闭服务
sudo service crond restart   #重启服务
sudo service crond reload    #重新载入配置
sudo service crond status    #查看服务状态

2. Crontabの基本フォーマット構文

crontabの時間表現:

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

まずは例を見てみましょう。毎日午前 1 時にバックアップ プログラムを実行します: 0 1 * * * /root/wzfou.com/backup.sh。このうち、/root/wzfou.com/backup.sh はスクリプト パスです。絶対パスを使用する場合は、以前の日付形式については次の図を参照してください。

インスタンス 1: は 1 分ごとに実行されます

* * * * * /root/wzfou.com/backup.sh

インスタンス 2: 1 時間ごとに 3 分目と 15 分目に実行します。

3,15 * * * * /root/wzfou.com/backup.sh

例 3: 毎日 1 回、8:00 から 11:00 までの 3 分目と 15 分目に実行します。

3,15 8-11 * * * /root/wzfou.com/backup.sh

インスタンス 4: 2 日ごとに午前 8 時から午前 11 時までの 3 分目と 15 分目に実行されます。

3,15 8-11 */2  *  * /root/wzfou.com/backup.sh

インスタンス 5: 毎週月曜日の午前 8 時から午前 11 時までの 3 分目と 15 分目に実行されます。

3,15 8-11 * * 1 /root/wzfou.com/backup.sh

例 6:毎晩 ​​21:30 に 1 回実行します

30 21 * * * /root/wzfou.com/backup.sh

インスタンス 7: 毎月 1 回、1 日、10 日、22 日の 4:45 に実行します。

45 4 1,10,22 * * /root/wzfou.com/backup.sh

例 8:毎週土曜日と日曜日の 1:10 に 1 回実行します。

10 1 * * 6,0 /root/wzfou.com/backup.sh

インスタンス 9: 毎日 18:00 から 23:00 まで 30 分ごとに実行されます

0,30 18-23 * * * /root/wzfou.com/backup.sh

インスタンス 10: 毎週土曜日の午後 23 時に 1 回実行します

0 23 * * 6 /root/wzfou.com/backup.sh

例 11:1 時間ごとに実行

* */1 * * * /root/wzfou.com/backup.sh

例 12:毎晩 ​​23:00 から翌日 7:00 までの間、1 時間ごとに実行されます

* 23-7/1 * * * /root/wzfou.com/backup.sh

例 13: は、毎週の最初の日に実行されます (つまり、毎週日曜日の夜 24:00 に開始されます)。

@weekly /root/wzfou.com/backup.sh

例 14:毎月 15 日に 1 回実行します。

0 11 15 * * /root/wzfou.com/backup.sh

インスタンス 15: は毎月 1 日に 1 回実行されます (つまり、毎月 1 日の午前 0 時に開始されます)。

@monthly /root/wzfou.com/backup.sh

インスタンス 16: は、指定された月に 1 回実行されます (1 月、4 月、6 月は毎晩 0:00 に 1 回実行されます)。

0 0 * jan,apr,jun * /root/wzfou.com/backup.sh

インスタンス 17: 再起動後に 1 回実行します。

@reboot /root/wzfou.com/backup.sh

例 18:スケジュールされたタスクの実行後に電子メール通知を送信します。

MAILTO="raj"
1 1 * * * /root/wzfou.com/backup.sh

例 19: シェルを指定します (デフォルトは /bin/bash)

SHELL=/bin/sh
1 1 * * * /root/wzfou.com/backup.sh

インスタンス 20: は環境変数を指定します。

PATH=/sbin:/bin:/usr/sbin:/usr/bin 
1 1 * * * /root/wzfou.com/backup.sh

4. Crontab で考えられる問題

4.1  Crontab はすぐには有効になりません

新しく作成した Crontab のスケジュールされたタスクは、保存後、実行されるまで 2 分間待つ必要があります。もちろん、すぐに実行したい場合は、Crontab を再起動します。 crontab が失敗した場合は、/etc/init.d/crond restart を試して問題を解決するか、ログをチェックして特定のタスクが実行されているかどうか、エラーが報告されているかどうかを確認することができます。 tail -f /var/log/cron。

4.2  Crontab が実行されない

スクリプトにファイルパスが含まれる場合は、システム時刻とタイムゾーンを更新した後、cron を再起動する必要があります。スクリプトの手動実行は問題ないが、crontab が実行されない場合は、環境変数が原因である可能性が高く、問題を解決するために、次のように環境変数を crontab に直接導入してみることができます。

0 * * * * . /etc/profile;/bin/sh /root/wzfou.com/backup.sh

4.3  Crontab には実行権限がありません

システム レベルのタスク スケジューリングとユーザー レベルのタスク スケジューリングに注意してください。 root ユーザーと crontab ファイルの所有者のみが -e-l-r、および を実行できます。 v< 指定したユーザーの crontab ファイルを編集、リスト、削除、または検証するには、ept4> フラグの後に UserName を使用します。

root ユーザーのタスクのスケジュール操作は、「crontab -uroot -e」を使用して設定できます。または、スケジュールされたタスクを /etc/crontab ファイルに直接書き込むこともできます。

別のユーザーの crontab を編集するには、root として次のコマンドを実行します (コマンドの最後に「-u username」を追加) を使用して crontab を一覧表示または削除することもできます。

 crontab -u username -e

4.4  Crontab 実行後の通知

Crontab のスケジュールされたタスクが指定した時間に実行されると、システムはプログラムの実行内容を示すレターを送信します。これはログ /var/log/cron で確認できます。このような通知を受け取りたくない場合は、各行のスペースの後に > /dev/null 2>&1 を追加してください。

返信を残す