centosはスクリプトまたはコマンドをタイミングよく実行します

2671 ワード

引用する


現在、作業中にmysqlデータベースのバックアップをタイミングで実現する必要があります.このタイミング実行スクリプトまたはコマンドはcrontabs、crontabに格納されたコマンドがデーモンプロセスによってアクティブ化され、crondはバックグラウンドで実行され、毎分所定のジョブが実行されるかどうかをチェックします.このような作業は一般的にcron jobsと呼ばれている.

インストールcrontabs


centosではyum install crontabsコマンドを使用してcrontabをインストールできます.crontabはunix/linuxシステム上でタスクをタイミングよく実行するプログラムで、crontabはcrondとは異なり、crondサービスはタイミング実行のサービスであり、crontabコマンドでタイミング実行が必要なタスクを追加または編集できます.
crondサービスステータスの表示:service crond status
crondサービスの起動:service crond start
crondサービスの停止:service crond stop
構成が変更され、構成が再ロードされました:service crond reload
crondサービスが起動に設定されているかどうかを確認し、コマンドを実行します:ntsysv
電源投入自動起動:chkconfig–level 35 crond on

crontabコマンド


crontab設定タイマ、構文:crontab[-u][プロファイル]またはcrontab[-u][-elr].
cronは、ユーザが特定の時間に予め設定された命令またはプログラムを実行できるようにタイマの機能を提供する常駐サービスである.ユーザがタイマーのプロファイルを編集する限り、タイマーの機能を使用できます.パラメータの説明は次のとおりです.
-eユーザーのタイマー設定を編集します.-lユーザのタイマ設定をリストします.-rユーザのタイマ設定を削除します.-uタイマーを設定するユーザ名を指定します.
プロファイルのフォーマットは次のとおりです.
* *  *  *  *  command
時分割日月週コマンド
1列目は分1~59毎分*または*/1で表示
第2列表示時間1~23(0は0点)
第3列は日付1~31を示す
4列目は月1~12
第5列表示番号曜日0~6(0は日曜日)
6列目実行するコマンド
# Use the hash sign to prefix a comment # +—————- minute (0 – 59) # | +————- hour (0 – 23) # | | +———- day of month (1 – 31) # | | | +——- month (1 – 12) # | | | | +—- day of week (0 – 7) (Sunday=0 or 7) # | | | | | # * * * * * command to be executed
具体的な他のパラメータはman crontabで見ることができますが、ここでは詳しく説明しません.

crontabインスタンス


crontabの具体例は以下の通りです.
1.毎晩21:30にnginx:30 21**/etc/initを再起動します.d/nginx restart
2.毎月1、10、22日の4:45にnginx:45 4 1、10、22*/etc/initを再起動する.d/nginx restart
3.nginx:**/1***/etc/initを1時間ごとに再起動します.d/nginx restart
4.夜11時から朝7時まで、1時間おきにnginx:*23-7/1**/etc/initを再起動する.d/nginx restart

mysqlバックアップスクリプト

#!/bin/sh

DB_USER=root
DB_PASS=****
DB_NAME=xxx
DB_BKPATH="/usr/local/backup"
DATE=`date +%Y%m%d%H%M`
HOUR_AGO=`date +%Y%m%d%H -d "-1 hour" `

cd ${DB_BKPATH}
mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${DB_BKPATH}/${DB_NAME}_${DATE}.sql
rm -rf ${DB_BKPATH}/${DB_NAME}_${HOUR_AGO}*

crontab-eを使用してタイミングバックアップデータベースを追加するには、現在6時間ごとにバックアップされています.具体的なコマンドは、次のとおりです.
* */6 * * * sh/usr/local/backup/mysql_backup.sh