cronが日付を使用するbashスクリプトを実行していません

Boud225:

私は、ログファイルの日々の回転のためのサブスクリプトを実行するスクリプトをテストしています:

59 23 * * * /home/[username]/work/Rotate.sh

この.SHファイルはこれに同様に働くそれらのそれぞれは、他のシェルスクリプトの番号を呼び出します。

folderName=$(date +%B)
folderPath="/data/logs/archive/"
currentDate=$(date +%d-%m-%Y)
targetFile="/data/logs/logfile.log"

sudo mkdir $folderPath
sudo mkdir $folderPath$folderName

cp $targetFile $folderPath$folderName/logfile.$currentDate.log

echo "" > $targetFile

直接(コマンドを使用して、意図したように、端末作品からRotate.shを呼び出すsudo sh work/Rotate.sh)が、私は短い間隔にcronsタイミングを低減してきたとき、私は全く何も結果を得ていません。それは私のシェルスクリプトのいくつかの側面は、cronジョブを破壊していることは可能ですか?私は、crontabの-eの行の宣言の中で何かを逃したことがありますか?

Saiprasad命とり:

あなたのCRON環境がシステムでサポートされている最低限の環境であるため、そのような失敗のための共通の理由があります。そのシェル経由であなたに利用できるようになり、追加の環境設定を認識していません。

このような場合の周りの簡単な作業では、あなたのシェルスクリプトからソースの.profileにあります。あなたのファイルの開始時にコマンドの下に置くと、この問題が解決取得するお手伝いをしなければなりません。

source $HOME/.profile

これを実行する別の方法は、cronジョブ自体に同じを調達することです。

59 23 * * * . $HOME/.profile; /home/[username]/work/Rotate.sh

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28402&siteId=1