Я работаю на сервере A (Источник):
dd bs=16M if=/dev/sda|bzip2 -c|nc serverB.example.net 19000
На сервере B (пункт назначения):
nc -l -p 19000|bzip2 -d|dd bs=16M of=/dev/sdb
Мне нужно где-то увидеть прогресс? (A / dev / sda сервера составляет 50 ГБ)
Я ждал 20 минут, но оба все еще работают, как я могу узнать, что он действительно передает данные и т. Д.?
¿Пробовали ли вы pv? http://www.ivarch.com/programs/pv.shtml
dd bs=16M if=/dev/sda|bzip2 -c| pv | nc serverB.example.net 19000
nc -l -p 19000| pv | bzip2 -d| dd bs=16M of=/dev/sdb
удачи!
Отправить dd
обработать USR1
сигнал:
$ dd if=/dev/urandom of=/dev/null &
[1] 977
$
$ kill -USR1 977
274647+0 records in
274646+0 records out
140618752 bytes (141 MB) copied, 17.3286 s, 8.1 MB/s
$
Проверьте страницу руководства для dd в вашей ОС, но она должна поддерживать сигнал USR1, который даст вам информацию о ходе выполнения. Если вы знаете pid процесса, просто отправьте ему «kill -USR1 $ pid», и он покажет вам, как далеко он находится.
Найдите PID процесса, для которого вы хотите проверить ввод-вывод, в вашем случае dd
на сервере b было бы хорошее место, чтобы посмотреть тогда
cat /proc/<PID>/io
посмотри на значение для wchar
которое должно быть записанным значением в байтах.
Для дальнейшего использования вы можете вставить pv в один (или оба) канала, и он сообщит вам, сколько данных прошло через него.
dd bs=16M if=/dev/sda|bzip2 -c|pv|nc serverB.example.net 19000
225MB 0:04:48 [ 799kB/s] [ <=> ]
Ты можешь использовать iftop
чтобы увидеть сетевой трафик или iotop
чтобы увидеть использование ввода-вывода.
watch -d -n 1 ifconfig
на сервере B. Будет выделен весь полученный трафик (пакеты / байты RX). Не рассчитывайте на точность значений, если вы используете 32-битный дистрибутив (вы все равно можете увидеть, работает ли он).
Более новые версии dd
в GNU-Coreutils (> 8.24) теперь включают status
аргумент, чтобы избежать всех pv
и USR1
сигнальные хаки:
dd if=/dev/urandom of=/dev/null status=progress
Если на Mac:
brew install coreutils
# All commands have been installed with the prefix 'g'
gdd if=/dev/urandom of=/dev/null status=progress