MySQLのDBのバックアップ

#!/bin/sh

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

KEEPDAY=3
TODAY=`date +'%y%m%d'`
DBDUMP_FILE=mysql.$TODAY
RMFILE=mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/home/user_name
BACKUP_DIR=$HOME_DIR/backup

cd $BACKUP_DIR

mysqldump -Q --host=mysql?.db.sakura.ne.jp --user=user_name --password=database_passwd database_name > $DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1

if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
echo "SUCCESS! MAYBE!"
rm -f $RMFILE
exit 0
fi

シェルスクリプト

IF文

条件が真(成立)の時は0を返し、偽(不成立)の時は1を返す?

if 条件
then
    条件が成立した時に実行するコマンド
else
    条件が不成立の時に実行するコマンド
fi

特殊な変数

変数説明
$nnは数字であり、$0はシェルスクリプト名、以降$1、$2…は第1引数、第2引数…である。第10引数以降は${10}、${11}…で参照する。
$#与えられた引数の個数
$@$0以外の全ての引数("$@"のようにダブルクォーテーションで囲んだ場合"$1" "$2" …"のように個別に展開される。)
$*$0以外の全ての引数("$@"のようにダブルクォーテーションで囲んだ場合"$1 $2 …"のように展開される。)
$?最後に実行したコマンドの終了ステータス
$!最後に実行したバックグラウンドコマンドのPID
$$シェルのPID
$-現在のオプションフラグ

ファイル形式のチェック

-b ファイル名指定したファイルがブロックデバイスファイルなら真である。
-c ファイル名指定したファイルがキャラクタデバイスファイルなら真である。
-d ファイル名指定したファイルがディレクトリなら真である。
-f ファイル名指定したファイルが通常ファイルなら真である。
-L ファイル名指定したファイルがシンボリックリンクなら真である。
-p ファイル名指定したファイルが名前付きパイプなら真である。
-S ファイル名指定したファイルがソケットなら真である。

ファイルパーミッションのチェック

-g ファイル名指定したファイルにSGIDがセットされていれば真である。
-k ファイル名指定したファイルにスティッキービットがセットされていれば真である。
-r ファイル名指定したファイルが読み取り可能なら真である。
-u ファイル名指定したファイルにSUIDがセットされていれば真である。
-w ファイル名指定したファイルが書き込み可能なら真である。
-x ファイル名指定したファイルが実行可能なら真である。

その他のファイルのチェック

-e ファイル名指定したファイルが存在すれば真である。
-s ファイル名指定したファイルのファイルサイズが0より大きければ真である。

文字列のチェック

-n 文字列文字列の長さが0より大きければ真である。
-z 文字列文字列の長さが0であれば真である。

文字列のチェック

文字列1 = 文字列2 2つの文字列が等しければ真である。
文字列1 != 文字列2 2つの文字列が等しくなければ真である。

数値のチェック

数値1 -eq 数値22つの数値が等しければ真である。
数値1 -ge 数値2数値1が数値2以上であれば真である。
数値1 -gt 数値2数値1が数値2より大きいのであれば真である。
数値1 -le 数値2数値1が数値2以下であれば真である。
数値1 -lt 数値2数値1が数値2未満であれば真である。
数値1 -ne 数値22つの数値が等しくなければ真である。

論理結合

!条件条件が偽であれば真である。
条件1 -a 条件2条件1と条件2の両方が真であれば真である。
条件1 -o 条件2条件1と条件2のどちらかが真であれば真である。


Comment



Counter: 14212, today: 3, yesterday: 0

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:15 (1280d)