自動バックアップデータベーススクリプトinnobackupex

スクリプトの内容:6日の残りのフルバックアップ、増分バックアップを行うために、初めての完全バックアップ毎週月曜日フルバックアップがなかった場合

#!/ binに/ bashの
innobackupex =は/ usr / binに/ innobackupex#指令位置
mysql_cmd = "--user =ルート--password =パスワード--host --port = 3306 = 192.168.1.170" #のデータベース接続情報
backup_full = /ルート/ mysqlの/バックアップ/フル#フルバックアップマスターディレクトリの
バックアップ= /ルート/ mysqlの/バックアップ /バックアップ/# 増分バックアップマスターディレクトリ
%% +%Y-D ' - =' M日付
#echo backup_full $ / $ DATE
#コマンドデータベース接続情報が正しいので、フィルター上で、インストールディレクトリが存在するかどうかを判断するために
フルバックアップディレクトリが空の場合は#、その後、フルバックアップを開始し、ディレクトリ名を取得する
のulimit -n 10240
flag_backup_full LS = `$ backup_full | WC -l`
[$ flag_backup_full -eq 0]であれば、その後、# フルバックアップディレクトリが空の場合は、フルバックアップが実行され
    ます。mkdir -p $ bakcup_full / DATE $
    `$ $ backup_full mysql_cmd innobackupex $ / $ date`以前で
Fiの

[ `日付+%u` -eqあれば 1];その後、# 完全バックアップが月曜日に行われた場合
    ます。mkdir -p $ bakcup_full / $ DATE
    ` $ innobackupex $ mysql_cmd $ backup_full / $ date`
[ `LSは-ltのIF | sedの-n 2P | AWK '{$印刷 ] 2 `-gt 9}';#次にフルバックアップディレクトリが2より大きい場合、最も古い2つのフルバックアップ保持削除
    LSは-lrt zaoqi_mulu =を` | -n sedの 2Pを| awkは'{$ 9印刷}' `
    RM -rf $ zaoqi_mulu
Fiの
他に#がそうでない場合は、最新のフルバックアップディレクトリの増分バックアップ取得
    new_quanliang LSを=` -lt $ backup_full | sedの-n 2P | awkの'{$ 9印刷}' `
# $ new_quanliangエコー
#STR $ = `backup_full -LT-LS / new_quanliang` $
#$エコーSTR
    new_mulu -LT-LS =` $ backup_full / $ new_quanliang | sedの2P -n | awkの{} 9プリント$。 ' `
#エコー$ new_mulu
# $ new_muluエコー
#エコー$ backup_full / $ DATE / $ new_mulu
    $ innobackupex $ mysql_cmd --incremental `$バックアップ/ $ DATE --incremental-BASEDIR = $ backup_full / $ new_quanliang / $ new_mulu`
Fiの
#増分バックアップは12の増分バックアップを保持12より大きい削除最古の、ある場合に
back_zengliang_num =バックアップLS -l $ `| WC -l`
エコー$ back_zengliang_num
old_zengliang -lrt LS =` | sedの2P -n | awkの{} 9プリント$。 ' `
エコー$ old_zengliang
IF [$ 12 back_zengliang_num -gtである];その後、
RM -rfバックアップ$ / $ old_zengliang
Fiの

スクリプトを実行するために、毎日1:00のcrontab

おすすめ

転載: www.cnblogs.com/tiantianhappy/p/11978394.html