シェルスクリプトはcrontabから126終了コードを返します。

シェルスクリプトはcrontabから126終了コードを返します。

スケジュールされた作業項目:

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

または

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

両方とも

ログファイルのエラーコードは126です。

シェルスクリプト

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

ls -l@ilkkachuの検索結果

-rw-r--r-- 1 root root 299 Oct 17 16:20 /FinalSync.sh

ベストアンサー1

前の質問に対する私の意見で示唆したように、エラーコード126はスクリプトまたはその中のコマンドを実行する権限がないことを意味するようです(参照http://tldp.org/LDP/abs/html/exitcodes.html)。ところが、crontabそれが一つの過程だと思うので変ですroot。以下を試してください。

chmod +x /FinalSync.sh

これが役に立ちます。それ以外の場合は、コマンドで問題が発生する可能性がありますcp(おそらく、書かないでください)。また、\cp別名を避けてください。したがって、誰がスクリプトを起動しても、常に同じように動作します。

おすすめ記事