ルートクロンはスクリプトを実行しません(許可は拒否されました)


17

次のコマンドを使用して、特定のユーザーのフォルダーにあるスクリプトを定期的に実行するようにルートcronタブを編集しました。

sudo crontab -e

cronがスクリプトを実行するとき、これは出力です:

sh: 1: /home/user/Location/Of/Script: Permission denied

ルートcronには何でもできる許可があると思いました。このスクリプトをルートとして手動で実行しても問題はありません。

詳細なエラー情報はここで見つけることができることをドキュメントで読みました:

sudo cat /var/log/syslog

私が見つけたものは次のとおりです。

Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)

ただし、これはおそらく許可拒否の問題とは無関係だと思います。

だから私は本当に何をする必要がありますか?


3
権限をリストできます/home/user/Location/Of/Scriptか?例la -l /home/user/Location/Of/Script。ちなみに、外部で電子メールを送受信していない場合でも、通常の内部使用のためにMTAをインストールする必要があります。システムにインストールされていないことに驚いています。
ファヒムミタ14

1
これは、あらゆる種類のものが原因である可能性があります。あなたのcrontabに@FaheemMithaが要求されたコマンドの出力だけでなく、該当する行を投稿してください
terdonを

-rw-r--r--(これが問題でした)
ありがとう-Lonniebiz 14

「-rw-r--r--」で解決したと言いますが、それが何なのか、どのように使用するのかわかりません。このスレッドで説明したのと同じ問題があります。後世のためのソリューションをもう少し具体的にすることはできますか?私のような人々は本当に感謝しています。ありがとうございました!
ジョンソンジェイソン

@JohnsonJason:問題は、スクリプトファイルのアクセス許可が実行を許可しなかったことです。受け入れられた回答を見てください。これは、スクリプトに実行の許可を与える方法を示しています。
Lonniebiz

回答:


19

あなたのスクリプトは実行可能ではないと思います。そのため、次のコマンドを使用して作成します。

chmod +x /home/user/Location/Of/Script

または、あなたがそのスクリプトの所有者でない場合:

sudo chmod +x /home/user/Location/Of/Script

cronがスクリプトを実行するには、実行可能である必要がありますが、rootとして手動でこのフラグは必要ありませんか?
ロニービズ14年

1
スクリプトを手動で実行する方法によって異なります。./Sciptまたはを使用してスクリプトを実行する場合は問題あり/home/user/Location/Of/Scriptません。通常、すべてのスクリプトは実行可能である必要があります。Linuxでシェルスクリプトを実行する方法を参照してください。
ラドゥラデアヌ14年

それは理にかなっていますが、cronを実行するまでアクセス許可の問題が発生することなく、このスクリプトを手動で./scriptの方法で実行しています。ご協力ありがとうございます。
ロニービズ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.