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

6 Linux Crontab コマンドの例

Crontab コマンドは、cron デーモンが cron ジョブを実行するために使用する cron テーブルを管理します。この記事では、crontab コマンドのさまざまなコマンド ライン オプションについて説明します。

1.オプション -u を使用して他のユーザーの Crontab を調整する

-u はユーザーを表します。この後に、システムで有効なユーザー名が続く必要があります。 -u オプションだけでは何もしません。他のオプションと組み合わせる必要があります。実際には、他の crontab コマンド ライン オプションと組み合わせることができます。

-u ユーザー名を指定しない場合、crontab コマンドは現在のユーザーで実行されます。たとえば、次のすべての crontab コマンドは、現在ログインしているユーザーに対して実行されます。

crontab -l
crontab -e
crontab -r
..

-u ユーザー名を指定すると、指定されたユーザー名で crontab コマンドが実行されます。たとえば、次の crontab コマンドはすべて oracle ユーザーで実行されます。

crontab -u oracle -l
crontab -u oracle -e
crontab -u oracle -r
..

2.オプション -l を使用して cron テーブルを表示

-l はリストを表します。これにより、現在のユーザーの crontab が表示されます。 root としてログインしているので、root ユーザーの cron ジョブが表示されます。

# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup

他のユーザーの cron ジョブを表示するには、-l オプションと -u オプションを組み合わせます。

# crontab -u oracle -l
01 00 * * * /bin/sh /home/oracle/bin/rman-backup

15 の crontab の例では、cron ジョブ エントリを使用する実用的な方法について説明しています。

3.オプション -e を使用して cron テーブルを編集

-e は編集を表します。これにより、現在のユーザーの crontab を編集できます。 root としてログインしているので、Vim エディターで root の cron ジョブが自動的に開き、編集できるようになります。

# crontab -e
53 00 * * 7 /bin/sh /home/root/bin/server-backup
~
~
/tmp/crontab.7dgqju

上記からわかるように、/tmp/crontab.7dgqju は crontab によって自動的に作成される一時ファイルで、ここで cron ジョブを編集できます。

編集を保存して Vim エディタを終了すると、変更を行ったかどうかに応じて、次のいずれかのメッセージが表示されます。

# crontab -e
crontab: no changes made to crontab

# crontab -e
crontab: installing new crontab

注:編集のために cron ジョブを開くために crontab が使用するエディターは、VISUAL または EDITOR 環境変数に依存します。デフォルトでは、Linux 環境で Vim エディターを使用します。ただし、VISUAL/EDITOR 環境変数を使用して変更できます。

他のユーザーの cron ジョブを編集するには、-e オプションと -u オプションを組み合わせます。

# crontab -u oracle -e
crontab: installing new crontab

crontab エントリ自体の意味を理解するには、5 分 (または時間、日、または月) ごとに Cron ジョブを実行する方法を参照してください。

4.ファイルからCrontabをロード

crontab を手動で編集して新しいジョブを追加する代わりに、すべての cron ジョブをファイルからアップロードすることもできます。これは、同じ cron ジョブ エントリを持つ多数のサーバーを維持する必要がある場合に役立ちます。

次の例では、すべての cron ジョブが /home/root/mycronjobs.txt ファイルにあります。

# cat /home/root/mycronjobs.txt
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota

mycronjobs.txt ジョブを現在のユーザーの crontab にアップロードするには、次の手順を実行します:

# crontab /home/root/mycronjobs.txt

cron ジョブが正常にアップロードされていることを確認します。

# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota

注:このアップロード方法を使用するときは注意してください。これにより、新しいものをアップロードする前に現在のすべての cron ジョブ エントリが消去されるためです。

ファイルから別のユーザーに cron ジョブをアップロードするには、-u オプションと組み合わせます。

# crontab -u oracle /home/oracle/mycronjobs.txt

5.オプション -s を使用して SELinux セキュリティを追加

-s は SELinux を表します。これにより、現在の SELinux セキュリティ コンテキストを含む crontab に MLS_LEVEL 変数が追加されます。

-s オプションを使用するには、ファイルから cron ジョブをアップロードする必要があります。

# cat /home/root/mycronjobs.txt
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota

# crontab -s /home/root/mycronjobs/my.txt
SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota

システムに応じて、上記は SELinux セキュリティ コンテキスト文字列を含む SELUNUX_ROLE_TYPE 変数または MLS_LEVEL 変数のいずれかを追加します。環境で SELinux を使用していない場合は、このオプションが何をするかについて心配する必要はありません。 SELinux は別のトピックであり、今後の記事で詳しく取り上げる可能性があります。

6.オプション -r を使用してすべての cron ジョブを削除

-r は削除を表します。これにより、以下に示すように、現在のユーザーのすべての cron ジョブ エントリが削除されます。

# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota

# crontab -r

# crontab -l
no crontab for root

-i は対話モードを表します。 -i と -r を組み合わせると、すべての crontab エントリを削除する前に確認を求められます。

# crontab -ir
crontab: really delete root's crontab? n

他のユーザーの cron ジョブを削除するには、-r オプションと -u オプションを組み合わせます。

# crontab -u oracle -l
01 00 * * * /bin/sh /home/oracle/bin/rman-backup

# crontab -u oracle -r

# crontab -u oracle -l
no crontab for oracle

Linux
  1. LinuxでのJQコマンドと例

  2. 7 Linux df コマンドの例

  3. 8 Linux TR コマンドの例

  1. Linux での rm コマンドの例

  2. Linux での ps コマンドの例

  3. w Linux でのコマンド例

  1. Linux での sa コマンドの例

  2. Linux での ac コマンドの例

  3. Linux での df コマンドの例