-1

スクリプトを中断した後でも、ステータスがゼロのままです。

最初のスクリプト

#!/bin/bash

## call the backup script
/usr/local/bin/backup 2>&1 >/dev/null
echo $?

バックアップ

#!/bin/bash

exitscript() {
 rm -f $LOCKFILE

 echo "Script Status: $1 | tee -a ${LOG}"
 echo "> End Date: $(date +'%d.%m.%Y %H:%M:%S')" | tee -a ${LOG}
 exit $1
}

######START#######
trap "exitscript 1" 1 2 23 24 25

rsync ${args} ${src} ${dest} | tee -a ${RSYNC_LOG}
retcode=${PIPESTATUS[0]}
if [[ ${retcode} -ne 0 ]]; then
  exitcode=1
fi

exitscript ${exitcode:-0}

最初のスクリプトが実行されると、終了ステータス 0 が返されますが、終了する前にバックアップ スクリプトを強制終了しようとしました (そのため、非常に大きなサイズのファイルを作成して、rsync がファイルをコピーするのに時間がかかり、時間を取得できるようにしました)。終了する前にスクリプトを強制終了します)

ps -ef | grep -i backup
kill $PID 

もう 1 つの問題は、バックアップ スクリプトを強制終了した後でも、rsync がまだ実行されていることです。スクリプトが強制終了され、最初のスクリプトがゼロのステータス コードを返すようになったら、rsync を停止したいと考えています。どんな提案にも感謝します。ありがとう!

4

1 に答える 1