バックアップを行うシェルスクリプトがあります。このスクリプトをcronに設定しましたが、問題はバックアップが重いため、最初のrsyncが終了する前に2番目のrsyncを実行できることです。スクリプトでrsyncを起動し、PIDを取得して、プロセスが存在するかどうか(このファイルが存在するかどうか)をスクリプトがチェックするファイルを作成することを考えました。rsyncをバックグラウンドに置くとPIDを取得しますが、rsyncがいつ終了するかを知る方法がわかりませんが、rsync(バックグラウンドなし)を設定すると、プロセスが終了する前にPIDを取得できないため、ファイル聖霊降臨祭のPID。
「rsyncを制御する」ための最良の方法が何であるか、そしてそれがいつ終了するかはわかりません。
私のスクリプト
#!/bin/bash
pidfile="/home/${USER}/.rsync_repository"
if [ -f $pidfile ];
then
echo "PID file exists " $(date +"%Y-%m-%d %H:%M:%S")
else
rsync -zrt --delete-before /repository/ /mnt/backup/repositorio/ < /dev/null &
echo $$ > $pidfile
# If I uncomment this 'rm' and rsync is running in background, the file is deleted so I can't "control" when rsync finish
# rm $pidfile
fi
誰か助けてもらえますか?
前もって感謝します !!:)
# check to make sure script isn't still running
# if it's still running then exit this script
sScriptName="$(basename $0)"
if [ $(pidof -x ${sScriptName}| wc -w) -gt 2 ]; then
exit
fi
これがあなたのために働くかどうか私に知らせてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加