cronスクリプトを実行してシェルスクリプトを実行する方法は?


44

私はcronジョブを設定していました:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

主な問題は、スケジュール時に「メールが/ var / spool / mail / luckyに送信されました」というエラーがあることです。

myfile.shの内容は次のとおりです。

mkdir jh
cd jh 

これはあなたを助けるかもしれません:help.ubuntu.com/community/CronHowto
PeppeDAlterio

2
myfile.shが実行可能ファイルとして設定されている場合
rogerdpack

回答:


60

これは、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

素晴らしい、私の命を救った:)鉱山はこのようにうまく動作します。0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2>&1
Louwki

5

これがフォルダを作成していると思われるパスは/です。これは、 実行するすべてのファイルのフォルダーおよびファイルへのフルパスcrontabが必要だからです。

したがって、myfile.shのパスは次のようになります。

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shこの行は正しいですが、shが/ usr / bin / shに存在するかどうかを確認するためにパスを確認する必要があります(which shshが存在するパスを表示するために使用します。私の場合は/ bin / shでした)

crontabの作成を急いでいる場合、このリンクにはかなり良い例があります

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.