2016-04-27 5 views
0

私はVPS上にファイルシステムとSQLのコピーを作成し、それらを私がバックアップメディアにプッシュするのと同じフォルダに保存する 'sh'スクリプトを作成しました。 SSHをrootとしてログインしてコマンドを手動で実行するとzipファイルとSQLバックアップが正常に作成されるようにスクリプトが動作していることがわかりますが、このスクリプトを実行するために作成したCRONjobは機能しません。私は「の/ etc/crontabの」で、次のcronジョブを作成していますVPS上でCRONジョブを実行する際に問題が発生しました

SHELL=/bin/sh 
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

    # m h dom mon dow user command 
    17 * * * * root cd/&& run-parts --report /etc/cron.hourly 
    4 6 * * *  root test -x /usr/sbin/anacron || (cd/&& run- parts --report /etc/cron.daily) 
    20 1 * * 7  root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.weekly) 
    51 5 1 * *  root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.monthly) 
    * * * * *  root /home/backup/test.sh 

5番目のエントリは、私がテストするために作成したものです。パスは正しいので、前に指示された絶対パスを使用しました。私はCRONジョブをテストするためにファイル(test.txt)に何らかのテキストを出力するtest/shという簡単なスクリプトを書いていますが、動作しません。私は 'tail -f'コマンドを使ってテキストファイルへの変更を監視しています。これは決して呼び出されません。スクリプトは手動で実行されても動作します。

ここには単純な「test.sh」ファイルがあります。手動で呼び出すと正しく動作します。

#!/bin/bash 

echo "Dumping at: $(date)" >> /home/backup/test.txt                                           

私は、アクセス許可の問題があるかもしれない理解が、私は「ルート」としてこれを実行していたならば、これは問題ないはずと思いましたか?私はどこに間違っているのか誰にでも見える?だから、

おかげ

+1

test.shには何が含まれていますか?具体的には、test.txtをどのように参照していますか?絶対パスを使用していますか? cronがあなたのスクリプトを実行するときに、あなたが手動でそれを実行するときにあなたがいるディレクトリにはいないことに留意してください。 – moonshadow

+0

crontabタグの[info wiki](https://stackoverflow.com/tags/crontab/info)の 'Debugging crontab'にリストされているものをすべてチェックしましたか? –

+0

test.shの内容を元の投稿に追加します。謝罪私はこれを忘れた – devoncrazylegs

答えて

1

は、検索の数時間後、私は愚かな何かを実現しました。私はcrontabファイルから 'bash'コマンドを除外しました。

私はこれに私の行を変更:

          • ルートのbash /home/backup/test.sh

これは現在実行中です。

関連する問題