1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#!/bin/sh # 今日の日付 TODAY=`date +%Y%m%d` # 保存先のベースディレクトリ BASE_DIR=/home/xxx/backup/ # 現在のディレクトリ SCRIPT_DIR=$(cd $(dirname $0);pwd) # スクリプトファイルのファイル名 SCRIPT_FILE=${0##*/} # バックアップするデータベース DATABASE1=データベース名 # バックアップディレクトリ、ファイル名の指定 BACKUP_FILE1=$BASE_DIR$TODAY/$DATABASE1.sql # 本日分のバックアップディレクトリを作成 mkdir -p "$BASE_DIR$TODAY" # バックアップファイルの生成 # Cron実行時は環境変数が設定されないので、パスをしっかり記述 ※サーバーによる /usr/bin/mysqldump --single-transaction --quick -u ユーザー名 -pパスワード $DATABASE1 > $BACKUP_FILE1 # ディレクトリの中身を変数に格納 FILE_LIST=$(cd $BASE_DIR$TODAY;ls -lh) # メール文 body=" Backup file was created in the following directory. ----- $BACKUP_FILE1 ---- script file: $SCRIPT_DIR/$SCRIPT_FILE $FILE_LIST " # 通知メール送信 echo "$body" | mail -s "[CRON] Backup Database Complete" notice@xxx.jp |
リストアのコマンド
1 2 |
mysql -u ユーザー名 -h ホスト -pパスワード データベース名 < dump.sql |