ここでbashスクリプトを使用してcronを実行する方法。次のようにして、ここでエラーが発生しました.ubuntuでそれを実行する方法を知りたいです。
bash.shファイル
#!/bin/bash
cd /var/www/Controller
/usr/bin/php post.php
Crontab -e
* * * * * /home/samitha/bash.sh >> /home/samitha/log/cron.log 2>&1
しかし、今私は次のエラーが出ます
/bin/sh: 1: /home/samitha/bash.sh: Permission denied
どうすれば修正できますか?何を間違えたか?
次の解決策も試すことができます。
chmod +x post.php
chmod +x bash.sh
echo "* * * * * /home/samitha/bash.sh >> /home/samitha/log/cron.log 2>&1" >> cronjob
chmod +x cronjob
/etc/init.d/crond start #redhat based servers like centos
/etc/init.d/cron start #debian based servers like ubuntu
crontab cronjob
問題は、ユーザーにファイルを実行する権限がないことである可能性があります。
まず、スクリプトの実行フラグを設定します
chmod +x /home/samitha/bash.sh
次に、phpファイルの権限を確認する必要があります
ls -lah /var/www/Controller
ユーザーグループもユーザー名も表示されない場合は、スクリプトをスーパーユーザー権限で実行するか、その権限を変更する必要があります。
最初の方法はあなたのエントリーを入れるでしょう
Sudo crontab -e
または2つ目は(だれもがあなたのサイトを呼び出すことによってスクリプトを実行することを許可されているため、お勧めしません)
chmod a+x /var/www/Controller/post.php
そのcronを実行するユーザー(cron -eを実行するユーザー)には、そのスクリプトを実行するための適切な権限がありません。つまり、スクリプトに実行フラグがないか、一部の祖先ディレクトリに実行フラグがないためにスクリプトに到達できないかのどちらかです。