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をログファイルに送信する必要があります。