我希望能够添加一个日志文件,其中包含上次运行 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
你的引用有点奇怪,导致回声声明混乱。我也替换~
为$HOME
.确保您HOME=/home/myuser
的 crontab 位于顶部。
我注意到的另一个问题是,您试图将 tar 重定向到输出文件名,您应该在 -f 标志后指定存档名称,然后将 >> tar stdout 发送到日志文件。