У меня есть задача Rsync с режем с удаленного сервераКак сделать блокировку файла с Башем
rsync -av [email protected]:/srv/data/ /srv/data/
Для того, чтобы регулярно работать и избежать сценария «Reenter» вопрос, я создать блокировку файла «in_progress» с rsync progress's pid, который указывает, продолжает ли программа работать.
lock(){
echo $1 > in_progress
}
Используя эту функцию, чтобы судить о том, по-прежнему работает прогресс Rsync:
is_running(){
pid=$(cat in_progress)
return ps aux | awk '{print $2}' | grep $pid
}
я могу получить идентификатор процесса для передачи функционировать lock
с этим
$!
я имел чтобы установить rsync progress background, чтобы получить pid rsync, поэтому я получаю это
rsync -av [email protected]:/srv/data/ /srv/data/ &
lock $!
но когда делается прогресс Rsync, я должен ю файл блокировка
Я попробовал этот
rsync -av [email protected]:/srv/data/ /srv/data/ && rmLock &
lock $!
... то кажется Идентификатор я не Идентификатор из RSync прогресса :-(
возможно дубликат [Как предотвратить скрипт работает одновременно?] (Http://stackoverflow.com/questions/169964/how-to-prevent-a-script-from-running-only) – Palec
Хорошо указать, что ваша проблема решена путем принятия ответа, который был полезен. – klashxx