Copy поля over network while creating these поля

My Situation: I want to copy в file from one ПК to another. Unfortunately this file isn't завершил. There is в process appending восходит to this file (only at the end).

Is there в way to easily copy this file without having to start from the beginning each украл the copy-tool thinks, it finished?

Is there for example any possibility to tell tools like scp/rsync/whatever to wait for example 20 seconds after finishing в download - and if the file changes, just download this дополнительный бит of восходит?

Or is there maybe в way to let the download start with байт X?

Does anyone know в solution? Thanks in advance!

2
задан 15 December 2015 в 15:46

2 ответа

Лучший способ состоял бы в том, чтобы иметь процесс, который создает файл, также создают удаленный файл одновременно. Или путем записи непосредственно в удаленное местоположение или при помощи чего-то как tee к обоим данным канала к, например, ssh соединение и в локальный файл. Это должно было быть сделано при запуске процесса все же.

Так как файл уже создается, да, можно использовать rsync для него. По умолчанию, rsync только копирует обновленные данные поэтому, если Вы просто работаете rsync каждые несколько минут, Вы получите то, что Вы хотите. Вы могли использовать метод решения "в лоб":

while :; do rsync -u source destination; sleep 20; done

Это будет работать в бесконечном цикле, копируя source кому: destination только если source отличается. После того как процесс, который создает файл, закончился, можно остановить его с Ctrl+C.

Более изящный путь состоял бы в том, чтобы контролировать файл. Если это создается на machineA и скопированный в machineB, Вы могли сделать это от machineB (это предполагает, что Вы имеете без пароля ssh настраивать):

while [[ $(ssh machineA md5sum < /path/to/file) != $(md5sum < /path/to/file) ]] do 
    rsync -uv aa b
    sleep 20
done

Обратите внимание, что это остановится в первый раз, когда эти два файла являются тем же. Если Вы регистрируете процесс создания, не пишет больше 20 секунд и затем возобновляется, необходимо будет скопировать снова вручную.

3
ответ дан 2 December 2019 в 02:20

Вы могли бы изучить использование incron для Вашего rsync для выполнения, когда файл изменяется, т.е. IN_MODIFY, если это - долгосрочная синхронизация файлов, Вам нужно.

http://www.linux-magazine.com/Issues/2014/158/Monitoring-with-incron

http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/

http://manpages.ubuntu.com/manpages/intrepid/man5/incrontab.5.html

, Если это - короткий срок, последний цикл с условием продолжения terdon может быть более быстрым для установки.

1
ответ дан 2 December 2019 в 02:20

Другие вопросы по тегам:

Похожие вопросы: