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

UbuntuでCrontabを使用してシステムタスクを自動化する

このチュートリアルでは、 Ubuntucrontabの使用方法を説明します。 。いくつかの簡単な手順で、 Ubuntuのcrontabを使用して、Ubuntuでシステムタスクを自動化する方法を説明します。 cronソフトウェアユーティリティは、Unixライクなオペレーティングシステムの時間ベースのジョブスケジューラです。 cronは、crontab(cronテーブル)ファイルによって駆動されます。これは、特定のスケジュールで定期的に実行するシェルコマンドを指定する構成ファイルです。 crontabファイルは、cronデーモンへのジョブおよびその他の命令のリストが保存されている場所に保存されます。ユーザーは独自のcrontabファイルを持つことができ、多くの場合、システム管理者のみが編集できるシステム全体のcrontabファイル(通常は/etcまたは/etcのサブディレクトリ)があります。

Ubuntuでcronを使用できます 指定された期間内にスクリプトを自動的に実行するには、データベースまたはその他の重要なファイルのバックアップを作成し、サーバーで実行されているサービスなどを監視します。以下の手順に従って、Ubuntucrontabを設定します。

1。サーバーに接続してシステムを更新します

Ubuntuサーバーでのcrontabの設定を開始する前に、SSH経由でVPSに接続し、システムソフトウェアを利用可能な最新バージョンに更新しましょう。

これを行うには、次のコマンドを実行します。

apt-get update && apt-get upgrade

2。 cronパッケージがインストールされているかどうかを確認します

cronユーティリティを使用するには、cronパッケージがサーバーにインストールされていることを確認する必要があります。

cronがインストールされているかどうかを確認するには、次のコマンドを実行します。

dpkg -l cron

3。 Ubuntuにcronパッケージをインストールします

cronパッケージがサーバーにインストールされていない場合は、パッケージマネージャーを使用してインストールできます。

apt-get install cron

4.cronサービスが実行されているかどうかを確認します

cronサービスがシステムで実行されているかどうかを確認するには、次のコマンドを使用できます。

systemctl status cron

5。 Ubuntuでcronジョブを構成する

cronジョブを設定するには、/ etc/crontabファイルを変更する必要があります。このファイルはrootユーザーのみが変更できることに注意してください。
crontabファイルはお気に入りのテキストエディタで編集できます。例:

nano /etc/crontab

このファイルの内容は通常、次のようになります。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
37 * * * * root run-parts /etc/cron.hourly
23 5 * * * root run-parts /etc/cron.daily
19 3 * * 0 root run-parts /etc/cron.weekly
23 0 6 * * root run-parts /etc/cron.monthly

ご覧のとおり、crontabファイルには、独自のcronジョブを定義する方法についての説明がすでに含まれています。構文は次のとおりです。

minute hour day month day_of_week username command

crontabのアスタリスク(*)を使用して、すべての有効な値を指定できます。したがって、毎日深夜にコマンドを実行する必要がある場合は、次のcronジョブを追加できます。

0 0 * * * root /sample_command >/dev/null 2>&1

特定のユーザーがcronジョブを作成することもできます。ユーザー固有のcronジョブは/var/ spool / cron/usernameにあります。

特定のユーザーのcronジョブを作成する場合、cronジョブでユーザー名を指定する必要はありません。ユーザー固有のcronジョブの構文は次のようになります。

minute hour day month day_of_week command

6。 Ubuntucrontabの例

より便利なcrontabの例を見てみましょう。

毎日午前4時30分に実行するバックアップスクリプトをスケジュールするとします。次に、次のcronジョブを設定できます。

30 4 * * * /path/to/script/backup-script.sh

または、たとえば、毎月1日の午後8時にバックアップをスケジュールする場合は、代わりに次のcronジョブを設定できます。

0 18 1 * * /path/to/script/backup-script.sh

次のタイムスタンプの一部を使用することもできます:

@hourly path/to/script/script.sh
@daily path/to/script/script.sh
@weekly path/to/script/script.sh
@monthly path/to/script/script.sh
@reboot path/to/script/script.sh

これにより、毎時/日/週/月の初めまたはサーバーの再起動時にcronジョブが実行されるようにスケジュールされます。

スクリプトがエラーを含むあらゆる種類の出力を生成する場合、この出力を別のファイルに記録するようにcronジョブを設定できます。たとえば、次のcronは、毎週水曜日と土曜日の午前4時、午前10時、午後16時に1日3回実行され、出力(標準およびエラー)はすべてbackup.logファイルに記録されます:

0 4,10,16 * * wed,sat path/to/script/script.sh > /path/to/logs/backup.log 2>&1

出力を生成したくない場合は、標準エラーと標準出力の両方を/ dev / nullにリダイレクトできます。これにより、書き込まれたすべての情報が破棄されます:

0 4,10,16 * * wed,sat path/to/script/script.sh > /dev/null 2>&1

7。 cronサービスを再起動します

crontabに変更を加えた後、次のコマンドを使用してcronサービスを再起動する必要があります。

systemctl restart cron

8。 Linuxcrontabマニュアル

Linux cronの詳細については、次のマニュアルページを確認することもできます。

man cron

および

man crontab

最初に正しいcronジョブを設定するのが難しい場合は、cronジョブ計算機を使用してcronジョブ式を生成できます。インターネット上で利用可能ないくつかの優れたcronジョブ計算機があります。

関連項目:CentOS7でCrontabを使用してシステムタスクを自動化する

もちろん、 Ubuntucrontabを使用する必要はありません フルマネージドのUbuntuホスティングのいずれかを使用している場合は、専門のLinux管理者に依頼して、Ubuntuでのcrontabを使用してシステムタスクを自動化することができます。これらは24時間年中無休で利用でき、Ubuntuサーバーでcrontabを使用してシステムタスクをすぐにスケジュールします!

PS。 Ubuntucrontabとシステムタスクを自動化する方法に関するこの投稿が気に入った場合 、左側のボタンを使用してソーシャルネットワークで友達と共有するか、下に返信を残してください。ありがとう


Panels
  1. Ubuntu20.04システムのコマンドラインを使用してUbuntuにファイルをダウンロードする

  2. LubuntuLinuxでCrontabを使用してスタートアップスクリプトを作成する方法

  3. Linux で Cron を使用してシステム ジョブを定義する

  1. cronを使用してタスクをスケジュールするためのLinuxのヒント

  2. Ubuntu20.04でSARを使用してシステムリソースを監視する

  3. LinuxでのCronを使用したシステムタスクのスケジューリング

  1. Ubuntu –どのX11ドライバーシステムが使用されているかを確認する方法は?

  2. CentOS7でcrontabを使用してシステムタスクを自動化する

  3. Cronを使用してLinuxVPSでタスクの自動化を設定するにはどうすればよいですか?