※ ChatGPTを利用し、要約された質問です(原文:データベースのバックアップだけ取れない場合があって困ってます(バックアップ用シェルの書き方に関して))
データベースのバックアップを取得できない場合の解決方法
このQ&Aのポイント
データベースのバックアップを取得できない場合に困っています。バックアップ用シェルの書き方を見直す必要があります。
シェルスクリプトを使ってデータベースのバックアップを取得しようとしていますが、うまくいかない場合があります。
シェルスクリプトのどの部分を変更すれば、データベースのバックアップを確実に取得できるのでしょうか。
データベースのバックアップだけ取れない場合があって困ってます(バックアップ用シェルの書き方に関して)
以下のようなシェルをcronで実行し、バックアップを取ろうとしているのですが、データベースのバックアップだけ、うまくいく場合と抜けてしまう場合があります。
下のシェルのどの部分を変えれば、データベースのバックアップも毎回ちゃんと取ってくれるようになるのでしょうか。
------------------------------
#!/bin/bash
NAME="name"
DBNAME="dbname"
DBUSER="dbuser"
DBPASS="dbpass"
HTML="/home/test/www/"
BACKUPDIR="/bakup/"
mkdir -p $BACKUPDIR$NAME
mkdir /tmp/backup-$NAME-`date +%Y%m%d`
mysqldump --databases $DBNAME > /tmp/backup-$NAME-`date +%Y%m%d`/bk.sql -u $DBUSER --password=$DBPASS --opt
( cd /tmp/backup-$NAME-`date +%Y%m%d` ; tar cf /tmp/backup-$NAME-`date +%Y%m%d`.tar . )
( cd $HTML; tar rf /tmp/backup-$NAME-`date +%Y%m%d`.tar . )
rm -r /tmp/backup-$NAME-`date +%Y%m%d`
gzip /tmp/backup-$NAME-`date +%Y%m%d`.tar
mv -f /tmp/backup-$NAME-`date +%Y%m%d`.tar.gz $BACKUPDIR$NAME
find $BACKUPDIR$NAME -type f -mtime +7 | xargs rm -f
------------------------------
それでは、宜しくお願いします!
お礼
とりあえず、色々やって解決した感じです。 以下のように変える事で、今はうまくいってるようです。なぜかよくわかりませんが… mysqldump --databases $DBNAME > /tmp/backup-$NAME-$DATE/bk.sql -u $DBUSER --password=$DBPASS --opt ↓ /usr/local/bin/mysqldump --databases $DBNAME > /tmp/backup-$NAME-$DATE/bk.sql -u $DBUSER --password=$DBPASS --opt 本当にありがとうございました!
補足
ご回答ありがとうございます。 無駄まで省いて頂いて、助かります! 試してみたところ、どうやらmysqldumpでファイルが書き出される前に、圧縮されてしまうようです。 mysqldumpが終わるまで次の処理はおあずけって事はできないのでしょうか。