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.