私はDebian 7サーバーを使用しています。私は毎日mysqldumpを保存するためにcrontabで実行されるシェルスクリプトを作成しました。
mysqldump *database* -u *mysql-user* -p*mysql-password* > /backup/mysql_backup/*filename*.sql
コマンドラインに直接入力すると、すべてがうまく機能します。ただし、シェルスクリプト自体(./backup.sh)を実行しても結果ファイルは表示されませんが、エラーはありません。フォルダ権限は777で、シェルスクリプトは実行可能です。スクリプトがコマンドラインで実行されていないときにスクリプトをcrontabに入れようとしませんでした。
何をすべきかを知っている人はいますか?
答え1
追加の#!/bin/bash
作業を行いましたが、その行を追加するのを忘れました。シェルではなぜ動作しないのかわかりませんが、スクリプトとcronjob内で動作します。ご意見ありがとうございます。
答え2
crontabにはbashシェル、特に$ PATHにログインするときと同じ環境変数がないので、crontabに関連するコマンドへのフルパスを使用する習慣を持ちます。
/usr/bin/mysqldump > /full/path/backup/