Cronログファイルが更新されませんでした。

Cronログファイルが更新されませんでした。

cronjobが最後に実行された時刻のタイムスタンプを含むログファイルを追加したいと思います。現在私が使用しているコードです。

crontab -l > mycron
echo ""${var1}" "${var2}" "${var3}" "${var4}" "${var5}" tar -czf "$fsrc"/* > ./"$fdest"/"$fname"">> ~/cronlog.log 2>&1 >>mycron
crontab mycron
rm mycron

ログファイルが生成され、ジョブは期待どおりに実行されますが、ログファイルには何もありません。ログファイルを最新の状態に保つにはどうすればよいですか?

ありがとう

ベストアンサー1

エコラインを使用してください。

[zbrady@myserver ~]$ cat test1.sh
var1=0
var2=1
var3=2
var4=3
var5=4
fsrc=abc
fdest=def
fname=ghi
>mycron
echo ""${var1}" "${var2}" "${var3}" "${var4}" "${var5}" tar -czf "$fsrc"/* > ./"$fdest"/"$fname"">> ~/cronlog.log 2>&1 >>mycron
cat mycron
[zbrady@myserver ~]$ ./test1.sh
0 1 2 3 4 tar -czf abc/* > ./def/ghi

少し変更されたバージョンを使用してください。

[zbrady@mysever ~]$ cat test2.sh
var1=0
var2=1
var3=2
var4=3
var5=4
fsrc=abc
fdest=def
fname=ghi
>mycron
if ! crontab -l |grep ^HOME=
then echo HOME=$HOME > mycron
fi
crontab -l >> mycron
echo "${var1} ${var2} ${var3} ${var4} ${var5} tar -czf ./$fdest/$fname $fsrc/* >> $HOME/cronlog.log 2>&1" >> mycron
cat mycron

[zbrady@myserver ~]$ ./test2.sh
HOME=/home/myuser
0 1 2 3 4 tar -czf ./def/ghi abc/*  >> /home/myuser/cronlog.log 2>&1

あなたの引用は少し奇妙なので、echoのドアに混乱を引き起こします。私もcrontabが一番~上にあることを$HOME確認してください。HOME=/home/myuser

私が見つけたもう一つの問題は、tarを出力ファイル名にリダイレクトしようとしていることです。 -fフラグの後にアーカイブ名を指定してから、>>tar stdoutをログファイルに送信する必要があります。

おすすめ記事