shell 脚本未在 crontab 中运行

HDe*_*007 3 linux shell cron shell-script

以下是我的 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
Run Code Online (Sandbox Code Playgroud)

日志文件中也没有错误

外壳脚本

#! /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
Run Code Online (Sandbox Code Playgroud)

当我在命令行中使用时,脚本运行完美

sh /FinalSync.sh  $(date --date="5 days ago" +%d_%m_%Y)
Run Code Online (Sandbox Code Playgroud)

hee*_*ayl 5

cron转换%为任何crontab条目的换行符。您需要使用以下方法转义%s \

* * * * *  /FinalSync.sh "$(date --date="5 days ago" +\%d_\%m_\%Y)"
Run Code Online (Sandbox Code Playgroud)