データベースをバックアップするスクリプトがあります /home/<user>/bin/dbbackup
。このスクリプトはすべてのユーザーによって実行可能で、私が所有しています。ファイル /etc/cron.allow
そして /etc/cron.deny
存在しない。
私の crontab
私は次の行を持っています(コードの最後の行の後に新しい空白行を含みます):
@reboot /home/<user>/.dropbox-dist/dropboxd
30 2 * * * bash /home/<user>/bin/dbbackup
しかし、cronは私の dbbackup
スクリプト。私はスクリプトの手動テストを実行するときに動作します。コマンドラインでこのテストを実行すると、次のようになります。 * * * * * /bin/echo "cron works" >> ~/file
次のエラーが表示されます。
No command "dbbackup" found, did you mean:
Command "dvbackup" from package "dvbackup" (universe)
Command "tdbbackup" from package "tdb-tools" (main)
dbbackup: command not found
私のサーバはUbuntu Trustyを実行しています。助けてください?
回答:
回答№1は0コメントに記されているように、amiga_osは行のbashへの参照を削除する必要があるようです。
30 2 * * * bash /home/<user>/bin/dbbackup
すべきだ。
30 2 * * * /home/<user>/bin/dbbackup
私は通常、そのパスからスクリプトを呼び出すだけですスクリプトの最初の行に "#!/ bin / bash"(またはbashが存在する場所)を使用してください。 amiga_osはすでにこれを行っていたようですが、これは良いことです。私は文章をcronに入れるのは気にならないので気にしない。
私はそれがcronがユーザーはbashプロファイルを読んでいないので、$ PATHにアクセスできないため、シェルのようには動作しません。