Linux

Shell 腳本未在 crontab 中執行

  • October 17, 2016

以下是我的 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

日誌文件中也沒有錯誤

外殼腳本

#! /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

當我在命令行中使用時,腳本執行完美,如下所示

sh /FinalSync.sh  $(date --date="5 days ago" +%d_%m_%Y)

cron轉換%為任何crontab條目的換行符。您需要使用%s轉義\

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

引用自:https://unix.stackexchange.com/questions/316938