Если вы намереваетесь сделать резервную копию жесткого диска A удаленного компьютера через SSH в один файл на жестком диске вашего локального компьютера, вы можете выполнить одно из следующих действий.
Примеры
запустить с удаленного компьютера
$ dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz
запустить с локального компьютера
$ ssh user@remote "dd if=/dev/sda | gzip -1 -" | dd of=image.gz
Живой пример
$ ssh skinner "dd if=/dev/sda5 | gzip -1 -" | dd of=image.gz
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 22.7608 seconds, 4.7 MB/s
116749+1 records in
116749+1 records out
59775805 bytes (60 MB) copied, 23.9154 s, 2.5 MB/s
$ ll | grep image.gz
-rw-rw-r--. 1 saml saml 59775805 May 31 01:03 image.gz
Методы мониторинга?
- Войдите через
ssh
другой терминал и ls -l
файл, чтобы увидеть его размер.
Вы можете использовать pv
для отслеживания хода выполнения большой операции dd, например, для удаленного примера выше, вы можете сделать:
$ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
Отправьте сигнал "SIGUSR1", dd
и он напечатает статистику. Что-то вроде:
$ pkill -USR1 dd
Рекомендации
Методы, упомянутые выше для мониторинга, были первоначально оставлены через комментарии @Ryan & @bladt и меня. Я переместил их в ответ, чтобы сделать их более очевидными.
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
как ожидалось. Как я могу это исправить?