crontab(タイミングタスク操作)

2949 ワード

タイミングタスクは,その名の通り,ある時点で自動的にタスク操作を行う.
Pgsqlのバックアップではcrontabを利用してタイミング操作を行い、使いやすいです.だから分かち合う
具体的なタイミング編集コマンド:crontab-e
まずcrontabのファイルから使用ポリシーを分析し、rootユーザーの下に、/etcの下にcrontabのファイルがあり、その内容は以下の通りです.

[[root@myzk](mailto:root@myzk) ~]# cat /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# 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


このファイルの下の最初の4行の内容はcrontabの環境変数で、SHELL変数の値はシステムが使用するSHELL環境(この例はbash shell)を指定し、PATH変数はコマンドを実行する経路を定義します.Cronの出力は、MAILTO変数定義のユーザ名に電子メールで送信される.MAILTO変数が空の文字列(MAILTO=""")として定義されている場合、電子メールは送信されません.コマンドまたはスクリプトの実行時にHOME変数を使用してベースディレクトリを設定できます.
注意:上記のシステムはデフォルトで変更する必要はありません.
rootユーザーではvim/etc/crontabファイルでスクリプトの追加タイミングタスクスクリプトを直接行うことができ、他の一般ユーザーではcrontab–eでスクリプトの追加を行うことができます.
編集が完了しました.crontab–lでスクリプト情報を表示できます.
タイミングコマンドスクリプトの解析:
スクリプトのフォーマットは次のとおりです.
minute hour day month week user-name command
minute---   (0-59)
hour------  (0-23)
day--------  (1-31)
month---  (1-12)
week----  (0-6) //0     

数字以外にもいくつかの特殊な記号が「」、「/」と「-」、「,」であり、すべての値の範囲内の数字を表し、「/」はそれぞれの意味を表し、「*/5」は5単位ごとを表し、「-」はある数字からある数字まで、「,」はいくつかの離散した数字に分かれている.以下にいくつかの例を挙げて問題を説明します.
特定の例を使用して、タイミングスクリプトを分析します.
pgslq.shは実行が必要なスクリプトであり、内容は必要なバックアップ操作またはその他のタスクスクリプトである
1 * * * * /home/postgres/pgsql.sh

1時間ごとの最初の分にスクリプトを実行することを示します.
2 3 * * * /home/postgres/pgsql.sh

毎日3時2分にスクリプトを実行することを示します.
1 1 * * 0 / home/postgres/pgsql.sh 

毎週1時1分にスクリプトの実行を行うことを示します
1 1 1 * * / home/postgres/pgsql.sh

毎月の1時1分にスクリプトを実行することを示します
犯しやすい間違いは、通常、1時間あたりの最初の分を1分ごとに実行することです.この点は、両者の違いに注意してください.
1 * * * * /home/postgres/pgsql.sh

1時間ごとの最初の分にスクリプトを実行することを示します.
*/1 * * * * /home/postgres/pgsql.sh

スクリプトを1分ごとに実行することを示します
だからここでは「/」という記号の違いを覚えておきましょう.
「-」の使い方:
0 10 * * 1-3 / home/postgres/pgsql.sh

毎週月曜日から水曜日の朝10時にスクリプトを実行することを示します.
0 10 * * 1、3、5 / home/postgres/pgsql.sh

毎週月曜日、水曜日、金曜日の朝10時にこのスクリプトを実行することを示します.
これらは、ほぼタイミングタスクのほとんどの可能性タイミングスクリプトです.
表にuser-nameという表示のユーザーこのスクリプトが存在するユーザーが表示されますが、一般的にプロジェクトを行うとrootユーザーが作成することはできません.そのため、私たちは直接一般ユーザーの下でタイミングスクリプトの作成を行い、crontab-eを直接実行し、タイミングタスクを作成することができます.
あるユーザーのcron設定を編集するたびに、cronは自動的に/var/spool/cronの下でこのユーザーと同じ名前のファイルを生成します.このユーザーのcron情報はこのファイルに記録されます.このファイルは直接編集することはできません.crontab-eで編集することしかできません.cronが起動してから1分ごとにこのファイルを読み、中のコマンドを実行するかどうかを確認します.したがって、このファイルを変更した後、cronサービスを再起動する必要はありません.