私はcronジョブを設定していました:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
主な問題は、スケジュール時に「メールが/ var/spool/mail/luckyに送信されました」というエラーがあることです。
Myfile.shの内容は次のとおりです。
mkdir jh
cd jh
これは、cronジョブとして設定されているスクリプトでは問題ありません。
mkdir jh
cd jh
jh
ディレクトリを作成する必要がある場所にフルパスを指定する必要があります。また、このパスには、新しいファイル/ディレクトリを作成する権限が必要です。
たとえば、スクリプトは次のようになります。
#!/bin/sh
mkdir /home/lucky/jh
cd /home/lucky/jh
また、/usr/bin/sh
はsh
の正しいパスではありません。正しいパスは/bin/sh
です。これはwhereis sh
コマンドで確認できます。それでも、cronジョブは次のようになります。
20 * * * * /home/lucky/myfile.sh
スクリプトを実行可能にすることを忘れないでください:
chmod +x /home/lucky/myfile.sh
これがフォルダを作成していると思われるパスは/
です。これは、crontab
が実行するすべてのファイルでフォルダーとファイルへのフルパスを必要とするためです。
したがって、myfile.shのパスは次のようになります。
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
この行は正しいですが、shが/ usr/bin/shに存在するかどうかを確認するためにパスを確認する必要があります(shが存在するパスを確認するにはwhich sh
を使用します。 )
Crontabの作成を急いでいる場合、このリンクにはかなり良い例があります
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/