CentOS7のcronに登録した日次バックアップが取れていなかったので/var/log/cronを確認すると、以下のエラーメッセージが記載されていた。

(root) CMDOUT (/bin/bash: /var/www/db_dump/mysqldump.sh: Permission denied)

原因はパーミッション関連の問題のようだが、今回はこのエラーの解決方法を紹介する。

シェルファイルに実行権限を与える

調べたところ、単にバックアップ用シェルファイルに実行権限がなかっただけだった。

確認するとパーミッションは644となっていたので、cronを実行するrootユーザーにのみ実行権限を与え、700に変更することでcronは正常に動くようになった。

chmod 700 /var/www/db_dump/mysqldump.sh