Если вы намереваетесь сделать резервную копию жесткого диска A удаленного компьютера через SSH в один файл на жестком диске вашего локального компьютера, вы можете выполнить одно из следующих действий.
Отправьте сигнал "SIGUSR1", ddи он напечатает статистику. Что-то вроде:
$ pkill -USR1 dd
Рекомендации
Методы, упомянутые выше для мониторинга, были первоначально оставлены через комментарии @Ryan & @bladt и меня. Я переместил их в ответ, чтобы сделать их более очевидными.
Я пробовал это для аналогичной проблемы (резервное копирование ONEжесткого диска удаленного компьютера в TWOхранилище удаленного компьютера ), например: <br /> [root @ ONE] # dd if = / dev / sda1 | ssh root @ TWO dd of=/root/Public/ONE/sda1.img<br /> 409600 + 0 записей в 409600 + 0 записей из 209715200 байт (210 МБ) скопировано, 0,894929 с, 234 МБ / с Псевдо-терминал не будет выделен, так как stdin не является корневым терминалом @ пароль TWO Проблема в том, что /root/Public/ONE/sda1.imgфайл был создан ONE, а не включен, TWOкак ожидалось. Как я могу это исправить?
Urhixidur
1
Может кто-нибудь привести пример использования pvс локальной машины? Спасибо.
TCB13
Лучше использовать lbzip2 или Pigz Inst из gzip
Шимон Дудкин
зачем мне нужен "| dd of = image.gz" в конце? (не только "> image.gz"), потому что dd берет 100% одного процессора
Шимон Дудкин
6
Что касается мониторинга: более новые версии dd также имеют status=progressопцию. Таким образом, вам больше не нужно запускаться pkill -USR1 ddиз другого терминала.
До Шефера
12
Полученная вами ошибка связана с удаленным использованием sudo (вам будет предложено ввести пароль, но у вас нет tty для его ввода). С другой стороны, как обычный пользователь вы не можете использовать его просто так, ddкак это предлагается в другом ответе (у вас нет необходимых прав доступа к устройству). Вы можете решить эту проблему, предоставив себе права на выполнение ddот имени sudo без пароля. Вы можете сделать это, отредактировав файл sudoers (на пульте!):
и это должно работать. Вы можете сделать более общую запись в sudoers, что позволит вам работать ddс любым параметром, но разумнее ограничить количество бесплатных разрешений до необходимого.
Или вы можете просто запустить 'sudo ls' на соответствующем конце (и ввести пароль) непосредственно перед выполнением команды "sudo dd ..."
MikeW
В новых версиях dd добавление status = progress позволяет даже отслеживать ход копирования.
Sensslen
7
Я только что использовал модифицированную версию на виртуальной коробке Linux Mint для клонирования физического жесткого диска на устаревшем сервере RedHat.
Я запустил следующее как root на виртуальной коробке:
192.168.1.5 - это физическая коробка Red Hat Enterprise Linux 2.1.
/ dev / sdb - это новый виртуальный диск, который после завершения клонирования станет основой виртуальной версии старого умирающего физического блока.
ONE
жесткого диска удаленного компьютера вTWO
хранилище удаленного компьютера ), например: <br /> [root @ ONE] # dd if = / dev / sda1 | ssh root @ TWOdd of=/root/Public/ONE/sda1.img
<br /> 409600 + 0 записей в 409600 + 0 записей из 209715200 байт (210 МБ) скопировано, 0,894929 с, 234 МБ / с Псевдо-терминал не будет выделен, так как stdin не является корневым терминалом @ пароль TWO Проблема в том, что/root/Public/ONE/sda1.img
файл был созданONE
, а не включен,TWO
как ожидалось. Как я могу это исправить?pv
с локальной машины? Спасибо.status=progress
опцию. Таким образом, вам больше не нужно запускатьсяpkill -USR1 dd
из другого терминала.Полученная вами ошибка связана с удаленным использованием sudo (вам будет предложено ввести пароль, но у вас нет tty для его ввода). С другой стороны, как обычный пользователь вы не можете использовать его просто так,
dd
как это предлагается в другом ответе (у вас нет необходимых прав доступа к устройству). Вы можете решить эту проблему, предоставив себе права на выполнениеdd
от имени sudo без пароля. Вы можете сделать это, отредактировав файл sudoers (на пульте!):sudo visudo
добавьте следующую строку:
userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX
Теперь вы можете выдать:
ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd
и это должно работать. Вы можете сделать более общую запись в sudoers, что позволит вам работать
dd
с любым параметром, но разумнее ограничить количество бесплатных разрешений до необходимого.источник
Я только что использовал модифицированную версию на виртуальной коробке Linux Mint для клонирования физического жесткого диска на устаревшем сервере RedHat.
Я запустил следующее как root на виртуальной коробке:
источник