0

皆さんこんにちは、

この支援要請を読んでいただいたように、あなたは元気であると信じています。私は Linux の世界ではあまり経験がありませんが、できるだけ早く習得するよう努めています。したがって、私の側の明らかな無知を許し、可能であれば支援してください。

ClearOS v5.2 Enterprise サーバー (Centos Linux ディストリビューションに基づく) を実行しており、シェル スクリプトで次のコマンドを使用して MySQL データベースをバックアップしています。

mysqldump -u root -pMYPASSWORD --all-databases > /mnt/shares/flexshares/backup/MySQL/mysql-backup-`date +%Y-%m-%d-%H-%M`.sql

cron ジョブを使用して、毎日午前 1 時 15 分にこのスクリプトを呼び出します。現在、その時点でジョブが実行され、スクリプトが呼び出されていることを cron ログで確認できますが、コマンドは実行されません (以下のログ エントリ)。/mnt/shares/flexshares/backup/MySQLディレクトリに作成されている sql ファイルが表示されないため、これを言います。

Aug 21 01:15:01 server1 crond[27842]: (root) CMD (/root/my_scripts/backup-mysql.sh)
Aug 22 01:15:01 server1 crond[9031]: (root) CMD (/root/my_scripts/backup-mysql.sh)

奇妙なことに、CLI から同じコマンドを実行すると、問題なく実行され、MySQL データベースがターゲット ディレクトリ ( /mnt/shares/flexshares/backup/MySQL ) にダンプされます。

不足しているもの、または実行されない原因となっているスクリプトに含まれているものは何ですか? これが私のシェルスクリプトです("backup-mysql.sh"):

#!/bin/bash
# FULL BACKUP OF MySQL DATABASE
mysqldump -u root -pMYPASSWORD --all-databases > /mnt/shares/flexshares/backup/MySQL/mysql-backup-`date +%Y-%m-%d-%H-%M`.sql

私が得ることができるどんな助けにもとても感謝しています、ありがとう。

v/r

キスメット

4

3 に答える 3

3

コマンドがスクリプトから正しく実行されていないと思います。次のことを試していただけますか -

         #!/bin/sh
         DUMPFILE=mysql-backup-`date +%Y-%m-%d-%H-%M`.sql
         `mysqldump -u root -pMYPASSWORD --all-databases > $DUMPFILE`
于 2013-08-22T16:59:25.877 に答える
2

脚本は問題ないと思います。

十分な実行権限が与えられているかどうか、および cron エントリが適切かどうかを確認してください。

自分でスクリプトを実行してみて、DB ファイルが生成されているかどうかを確認してください。

于 2013-08-22T16:36:07.203 に答える
0

本当に感謝しています。問題はcronジョブにある可能性があるという@Narayanのコメントに基づいて、cronジョブでさらにテストを行い、問題がどこにあるかを確認しました。./backup-mysql.shを実行して CLI からスクリプトを直接実行しようとすると、すぐにアクセスが拒否されました。

これにより、スクリプト ファイルのアクセス許可を確認するように促されましたが、皮肉なことに実行可能ではありませんでした。これが、スクリプトが cron ジョブから実行されなかった理由だと思います。権限を変更してテストしたところ、すべて正常に動作しています。

Linux の世界での今日の私の教訓だと思いますが、常に許可を確認してください。とにかくあなたの助けに感謝します、本当に感謝しています。

于 2013-08-23T14:09:07.383 に答える