linux shellタイミングバックアップmysqlデータベース

3074 ワード

インストールcrontab
crontabがインストールされているかどうかを検出
# crontab
-bash: crontab: command not found 
それはcrontabがインストールされていないことを示しています.
インストールの開始:
# yum -y install vixie-cron
インストールが完了するまで待てばよい.
バックアップ・データベースの作成
vim/usr/java/shell/bak_mysql.sh
スクリプトの内容は次のとおりです.
#!/bin/bash
# @Author:  hwj
# @Date:    2017-09-02
# @Desc:    backup dbName db data 

mysqlserver='127.0.0.1'
mysqldbname='dbName'   #    
mysqluser='dbName'     #      
mysqlpwd='dbPassword'  #     
mysqlbakdir='/usr/java/bak_msyql'   #       
if [ ! -d '$mysqlbakdir/`date +%Y`/`date +%m`' ];then
   mkdir -p $mysqlbakdir/`date +%Y`/`date +%m`
fi
sqlbakfile=$mysqlbakdir/`date +%Y`/`date +%m`/$mysqldbname`date +%F-%H-%M-%S`.sql

mysqldump -u$mysqluser -p$mysqlpwd   -h$mysqlserver --hex-blob $mysqldbname >$sqlbakfile
tar czvPf $sqlbakfile.tar.gz $sqlbakfile
rm $sqlbakfile

bak_へmysql.sh実行権限
# chmod u+x bak_mysql.sh
スクリプトが成功したかどうか、まず実行してみましょう.
# ./bak_mysql.sh 
バックアップファイルが生成されているかどうかを確認します.
# cd/usr/java/bak_msyql
# ll
生成されていませんbak_msyql.sqlスクリプトに問題があり、正しいまでデバッグします.
計画タスクの追加
# crontab -e
この時の操作はvimと同じです.
入力:
0 4 * * */usr/java/shell/bak_mysql.sh
保存(これは毎日午前4時に1回実行されます)
タイミングタスクを開始します.
#/sbin/service crond start
crontabログを表示するには、次の手順に従います.
# tail -f/var/log/cron
crontabを起動時に自動運転に設定する
/etc/rc.d/rc.localこのスクリプトの末尾に/sbin/service crond startを付ける
その他の説明
crontab-u//あるユーザのcronサービスを設定し、一般的にrootユーザはこのコマンドを実行する際にこのパラメータを必要とする
crontab-l//ユーザーcronサービスの詳細をリスト
crontab-r//ユーザーのいないcronサービスの削除
crontab-e//ユーザーのcronサービスの編集
/sbin/service crond start//サービス開始
/sbin/service crond stop//サービスを閉じる
/sbin/service crond restart//サービスの再起動
/sbin/service crond reload//再読み込み構成
/sbin/service crond status//ステータスの表示
または
# service crond start 
# service crond stop 
# service crond restart 
# service crond reload 
# service crond status
タイミングパラメータの説明
crontabファイルの意味:
ユーザーが作成したcrontabファイルでは、各行はタスクを表し、各行の各フィールドは設定を表し、そのフォーマットは6つのフィールドに分けられ、最初の5つは時間設定セグメントで、6番目のセグメントは実行するコマンドセグメントで、フォーマットは以下の通りです.
minute hour day month week command順序:分時日月週
次のようになります.
minute:分を表します.0から59までの任意の整数です.
hour:時間を表し、0から23までの任意の整数であってもよい.
day:日付を表します.1から31までの任意の整数です.
month:月を表します.1から12までの任意の整数です.
week:曜日を表します.0から7までの任意の整数で、ここの0または7は日曜日を表します.
command:実行するコマンドは、システムコマンドでも、自分で作成したスクリプトファイルでも構いません.
上記のフィールドでは、次の特殊文字も使用できます.
アスタリスク(*):monthフィールドがアスタリスクの場合、他のフィールドの制約条件を満たした後、毎月コマンド操作を実行するなど、可能なすべての値を表します.
カンマ(,):カンマで区切られた値でリスト範囲を指定できます.たとえば、1,2,5,7,8,9などです.
中棒(-):整数間の中棒で整数範囲を表すことができます.たとえば、「2-6」は「2,3,4,5,6」を表します.
正斜線(/):正斜線で時間の間隔周波数を指定できます.たとえば、「0-23/2」は2時間ごとに実行されることを示します.また、正斜線はアスタリスクとともに使用できます.たとえば*/10はminuteフィールドで使用すると、10分ごとに実行されることを示します.
ブログ参照
http://blog.csdn.net/testcs_dn/article/details/48829785
http://www.cnblogs.com/chen-lhx/p/5996781.html
http://blog.csdn.net/testcs_dn/article/details/48780971