質問: シェルスクリプトでMySQLの mysqldumpバックアップ を cronに登録しましたが、ダンプに失敗しています。 OS:FreeBSD 8.3 シェルスクリプトの場所 /usr/home/www/scripts/bk_mysql.sh 所有者:権限 -rwxr-xr-- 1 user1 wheel 398 Jun 10 19:45 bk_mysql.sh 内容 #!/bin/sh BACK_DIR=/usr/home/www/www.example.com/backup MYSQL_ROOT_PW=aaaaaaa # mysqldump cd $BACK_DIR mysqldump -u root --password=$MYSQL_ROOT_PW --all-databases > mysql_`date +%y%m%d%H%M`.sql cron は1分毎にテスト実行しています */1 * * * * root /usr/home/www/scripts/bk_mysql.sh しかし、ダンプファイルが作られません。 なお、同スクリプト内で、以下のアーカイブのパターンではアーカイブ生成に成功していますので、パーミッションなどには問題ないのかな? DATA_DIR=/var/db cd $DATA_DIR tar cvzf $BACK_DIR/mysql_`date +%y%m%d-%H%M` mysql と思っています。 mysqldump 特有の問題なのでしょうか? ご教示お願いします。
回答: $ which mysqldump と入力して、表示されるパス (/sbin/mysqldump) といったパスで、 mysqldumpコマンドを置換すると良いと思いますよ。 */1 * * * * root /usr/home/www/scripts/bk_mysql.sh /etc/crontab に直書きしてるんでしょうか。 とりあえずrootがコマンドラインとして認識されている可能性を考えて、 shに置換してみてはいかがでしょう。 余談ですがrootでコマンドを実行するのは、あまりよくありません。 上記例では、mysqldumpによってディスクが本当にfullになってダウンするとか、 そういうことも起り得ます。 一般ユーザなら、95%で止めてくれたりします。(そういう設定がされている前提ですが)