У меня есть сценарий ожидания, который я написал, что в конце вызывает scp
для копирования большого файла с сервера A на сервер B.
У меня есть проблема (такая же, как при использовании rsync
и нет scp
) заключается в том, что ожидаемый сценарий завершается до завершения передачи файла. Я знаю, что могу установить тайм-аут в ожидании, но по мере увеличения размера файла время ожидания будет увеличиваться.
Есть ли кто-нибудь, кто сталкивался с этой проблемой, и есть ли функция ожидания, которую я могу использовать в ожидании?
Большое спасибо.
В соответствии с http://oreilly.com/catalog/expect/chapter/ch03.html, вы можете просто установить timeout
к -1
для отключения механизма тайм-аута.
Две вещи, номер один, да, set timeout -1
если вы не хотите, чтобы он истек.
Во-вторых, вы должны использовать wait
позволить scp
или rsync
команда для завершения. Просто ждать вечно не так надежно ...
Последний комментарий, я был scp
пользователь в течение некоторого времени, но действительно полюбил дельта, частичная и редкий способности rsync
. С ними, даже если передача отключена, она может возобновить работу с того места, где она была прервана, что иногда очень полезно ... особенно если все равно ждать вечно;)
Что-то вроде:
rsync -a -v -i --timeout=30 --stats --log-file="$LOG_FILE" --partial --exclude 'log*.txt' "$DATA_DIR"/"$DATE" $DEST:"$DEST_DIR"
(Это подталкивает от узла к мастеру)
Это может значительно сэкономить полосу пропускания при передаче больших файлов, нестабильных сетях и т. Д.