Есть ли способ предварительно просмотреть размер передачи rsync?

Мой ответ основан на запросе teru. Мне нужен вспомогательный сценарий ~ / helper на сервере server.ip:

#!/bin/bash
TUBE=/tmp/sshCoLab_myfifo.$$;
mkfifo "$TUBE"
( <"$TUBE" "$@" ; rm "$TUBE" ; kill -TERM 0 ) &  
cat >"$TUBE" ;
rm "$TUBE" ;
kill -TERM 0 ;

Если он вызывается, например, с

ssh server.ip ~/helper echo hello from server

и выполняет echo hello с сервера по адресу server.ip, после чего клиент ssh завершает работу.

Если он называется, например, с

ssh server.ip ~/helper sleep 1000 &
CHID=$!

kill -9 $ CHID также остановит скрипт на сервере. Для меня kill -INT $ CHID не работает, но я не знаю почему.

В ответ, команда ssh будет ждать вечно, когда удаленная команда будет завершена, потому что cat никогда не завершится.

Все ответы с ssh -t у меня не работали с kill , а только с Ctrl-C.

Редактировать: Я обнаружил, что это работало от нового Ubuntu 14.01 до более старой научной версии Linux - но не наоборот. Таким образом, я думаю, что нет общего решения. Странный.

6
13.04.2017, 15:13
1 ответ

Размер частичных передач не отображается, но вы можете получить общее представление об общем размере набора данных, добавив - -dry-run и - stats переключается на rsync . Он не проверяет обратную сторону операции, чтобы увидеть, сколько данных было изменено, но, по крайней мере, покажет вам размер всех файлов, которые могут быть синхронизированы.

16
27.01.2020, 20:25

Теги

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