問題
mysqldumpで、0バイトの空ファイルが吐き出される
当然、ファイルを開いても中には一行も書いてありません。
環境
さくらレンタルサーバ スタンダードプラン
MySQL:5.5、PHP:5.4.45 (CGI)
設定したファイル
mysql-backup.sh
#!/bin/sh # ------------------------------------------------------- # CMSのMySQLを自動バックアップするプログラム # # [環境設定] # # シェルスクリプト(このファイル)の格納場所 # /home/ユーザ名/.ssh/mysql-backup.sh # # ################################################## # # バックアップファイルを保存するディレクトリパス dirpath='/home/ユーザ名/backup' # バックアップを保存する日数 period=7 # ------------------------------------------------------- # # [バックアップ取得処理] # # ファイル名を定義 ※「mysqldump-yymmdd.sql」となるようにします prefix="mysqldump_" filename="${prefix}`date +%Y%m%d`.sql" # mysqldumpを実行しdumpファイルを出力 /usr/local/bin/mysqldump -defaults-file=/home/ユーザ名/.ssh/mysql-backup.conf データベース名 > $dirpath/$filename # 出力されたdumpファイルのパーミション変更 chmod 0600 $dirpath/$filename # # [古いファイルを削除] # oldfile="${prefix}`date -v-$(($period + 1))d +%Y%m%d`.sql" rm -f $dirpath/$oldfile
ログイン情報は以下の別ファイルを読み込ませています。
mysql-backup.conf
[mysqldump] user=ユーザ名 password=パスワード ~~host=FTPホスト名~~ ※こちらは私の記載ミスで、当初より下記を記載しておりました。 host=MySQL DBホスト名
またファイルパーミッションは、以下に設定しました。
- /home/ユーザ名/.ssh/mysql-backup.sh (600)
- /home/ユーザ名/.ssh/mysql-backup.conf (400)
- /home/ユーザ名/backup/ (700)
SSH接続で手動で実行しても、
さくらの管理画面のCRON設定でも同様の結果です。
ご教示いただければ幸いです。
よろしくお願いいたします。