下記のシェルスクリプトに関する質問について、ご存知の方がいらっしゃいましたらご教示を願います。
質問の内容
1.tar: 空のアーカイブのエラー
添付のシェルスクリプトで、WordPressサイト全体のバックアップをしようとすると「tar: 空のアーカイブ作成はご容赦願います」と言うエラーが出ます。なぜでしょうか?
2.WordPressサイト全体のバックアップについて
「tar: 空のアーカイブ作成はご容赦願います」と言うエラーを出させずに、WordPressサイト全体をバックアップするためには、添付のファイルをどのように書き換えればよろしいでしょうか?
質問の補足
補足 1
さくらのVPSにあるこのWordPressサイトのファイルとデータベースをシェルスクリプトで圧縮して、さくらのレンタルサーバーにその圧縮ファイルを保存しようと考えています。
補足 2
./e-yota_backup.shというファイルにWordPressサイト保存のための、シェルスクリプトを記述していますが、実行すると「tar: 空のアーカイブ作成はご容赦願います」というエラーが表示されます。
補足 3
シェルスクリプトのソースコードは、以下の通りです。なおこのソースコードはさくらのナレッジの記事を元に作成しました。
[php]
#!/bin/bash
datestr=`date +%Y%m%d-%H%M%S`
STATUS=0
# sakura knowledge http://knowledge.sakura.ad.jp/knowledge/4334/
function scpfile(){
eval "scp -i /root/.ssh/id_rsa $1 ecoteki@11.222.333.444:/home/ecoteki/www/e-yota_backup/$2"
if [ $? -ne 0 ]
then
echo "[ERROR]scp error. file=$1"
STATUS=1
fi
return
}
function deletefile(){
CNT=0
for file in `ls -1t ${1}*`
do
CNT=$((CNT+1))
if [ ${CNT} -le 10 ]
then
continue
fi
eval "rm ${file}"
done
return
}
eval "tar czf /e-yota_backup/e-yotafile_${datestr}.tar.gz /var/www/e-yota"
if [ $? -ne 0 ]
then
echo "[ERROR]tar error."
STATUS=1
fi
eval "mysqldump -uroot -phogefuga mysql wordpressdb |gzip -c > /e-yota_backup/e-yotadb_${datestr}.sql.gz"
if [ $? -ne 0 ]
then
echo "[ERROR]mysqldump error."
STATUS=1
fi
deletefile "/e-yota_backup/e-yotafile_"
deletefile "/e-yota_backup/e-yotadb_"
scpfile /e-yota_backup/e-yotafile_${datestr}.tar.gz e-yota.tar.gz
scpfile /e-yota_backup/e-yotadb_${datestr}.sql.gz e-yotadb.sql.gz
if [ ${STATUS} -ne 0 ]
then
SUBJECT="[ERROR]e-yota backup report"
else
SUBJECT="[SUCCESS]e-yota backup report"
fi
echo "" | mailx -s "${SUBJECT}" "dummy@gmail.com"
exit ${STATUS}
[/php]
追記
上記のシェルスクリプトコード自体は正しいものの、ootの直下に/e-yota_backupというディレクトリを作成していなかったため、タイトルのエラーが出ておりました。当該ディレクトリを作成した上で、シェルスクリプトのファイルを再度実行するとエラーは表示されなくなり、バックアップができるようになりました。さくらのナレッジの記事でこの箇所の作業をすることを忘れていました↓
関係者のみなさまありがとうございました!
【参考ページ】
http://qiita.com/kite_999/items/8cee371023bc4640a6f9