Script de shell não executado no crontab [duplicado]

3
    

Esta pergunta já tem uma resposta aqui:

    

A seguir está minha entrada no crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * *  /FinalSync.sh $(date --date="5 days ago" +%d_%m_%Y) || echo $? >> log

Não tem erro no arquivo de log também

Shell Script

#! /bin/sh

source=/Source/$1
destination=/Destination
folderParam=$(basename $source)
if /usr/bin/rsync -avh -r $source $destination; then
   cp /FolderCopyStatus/Success   /Status/Success_$folderParam
else
   cp /FolderCopyStatus/Failure   /Status/Failure_$folderParam
fi

Script executado perfeitamente quando eu uso na linha de comando como em

sh /FinalSync.sh  $(date --date="5 days ago" +%d_%m_%Y)
    
por HDev007 17.10.2016 / 12:50

1 resposta

5

cron converte % em nova linha para qualquer entrada crontab . Você precisa escapar do % s com \ :

* * * * *  /FinalSync.sh "$(date --date="5 days ago" +\%d_\%m_\%Y)"
    
por 17.10.2016 / 12:51