как проверить активность или ее отсутствие в файловом каталоге unix с помощью команд perl или unix - PullRequest
1 голос
/ 10 марта 2011

Сценарий: У меня есть процесс, когда многие файлы копируются (scp'd) на сервер DestinationServer, например, Host1, Host2, Host3, Host4.Переход к тому же общему каталогу: DestinationServer: / home / target.Все файлы уникальны, поэтому никакие файлы не будут перезаписаны.Host1-Host4 будет иметь cronjob, который запустит свой скрипт scp на DestinationServer.Предостережение: хозяева находятся в разных часовых поясах, местах.Таким образом, они будут заканчиваться в разное время.

Необходимость: Поскольку файлы scp'd для пункта назначения: / home / target, каков наилучший способ программной проверки, когда эти scpиз других Хостов сделано ??

Опции: Мои опции - это программно делать это либо в perl, либо в shell, если это возможно.

Что я ищу, чтоМожно ли использовать команды Unix или модули Perl, чтобы определить, когда процессы завершатся?Любые идеи, примеры будут великолепны!Спасибо.

Ответы [ 3 ]

4 голосов
/ 10 марта 2011

Используйте Maildir подход: скопируйте все файлы во временный каталог, затем после завершения передачи исходный хост выполнит переименование в целевой каталог через ssh.Таким образом, когда файл появляется в целевом каталоге, вы знаете, что он завершен.

Я предлагаю это, потому что если вы просто scp-файлы в целевой каталог и каким-либо образом контролировать каталог, вы не можете различить полныйпередача из прерванной команды scp или сбоя сети.

0 голосов
/ 10 марта 2011

Подобный, но альтернативный способ Jouni - использовать файлы семафоров.Перед тем, как запустить scp-файлы, хост создает файл семафора, а когда закончите, удалите его.Итак, вы знаете, пора.

0 голосов
/ 10 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...