O arquivo de log do Cron não está atualizando

0

Eu gostaria de poder adicionar um arquivo de log que tenha um timestamp da última vez que o cronjob foi executado. Este é o código atual que estou usando

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

O arquivo de log é criado e o trabalho é executado como deveria, mas o arquivo de log não tem nada nele. Como posso fazer a atualização do arquivo de log?

Obrigado

    
por Drunkpacman 26.06.2018 / 22:26

1 resposta

3

Com sua linha de eco.

[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

Com a minha versão ligeiramente modificada.

[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

Sua citação foi um pouco estranha e estava fazendo com que a declaração de eco fosse uma bagunça. Eu também substitui ~ por $HOME . Certifique-se de ter HOME=/home/myuser no topo do seu crontab.

Uma outra questão que notei foi que você estava tentando redirecionar o tar para o nome do arquivo de saída, você deve especificar o nome do arquivo após o sinalizador -f e apenas > > seu tar stdout para o seu arquivo de log.

    
por 26.06.2018 / 23:09