Si su intención es hacer una copia de seguridad del HDD A de una computadora remota a través de SSH en un solo archivo que está en el HDD de su computadora local, puede hacer una de las siguientes acciones.
Envíe una señal "SIGUSR1" dde imprimirá estadísticas. Algo como:
$ pkill -USR1 dd
Referencias
Los métodos mencionados anteriormente para el monitoreo se dejaron originalmente a través de comentarios de @Ryan & @bladt y de mí mismo. Los moví a la respuesta para hacerlos más obvios.
Intenté esto por un problema similar (copia de seguridad ONEdel disco duro de la computadora remota en TWOel almacenamiento de la computadora remota ), así: <br /> [root @ ONE] # dd if = / dev / sda1 | raíz ssh @ DOS dd of=/root/Public/ONE/sda1.img<br /> 409600 + 0 registros en 409600 + 0 registros 209715200 bytes (210 MB) copiados, 0.894929 s, 234 MB / s El pseudo-terminal no se asignará porque stdin no es una contraseña de raíz raíz @ TWO : El problema es que el /root/Public/ONE/sda1.imgarchivo se creó el ONE, no TWOcomo se esperaba ¿Cómo puedo solucionar esto?
Urhixidur
1
¿Alguien puede darnos un ejemplo de uso pvde la máquina local? Gracias.
TCB13
es mejor usar lbzip2 o pigz en lugar de gzip
Shimon Doodkin
¿por qué necesito "| dd of = image.gz" al final? (no solo "> image.gz") porque dd toma el 100% de una CPU
Shimon Doodkin
66
En cuanto a la supervisión: las versiones más nuevas de dd también tienen la status=progressopción. Por lo tanto, ya no necesita ejecutar pkill -USR1 dddesde otra terminal.
Hasta Schäfer el
12
El error que recibe se debe al uso de sudo de forma remota (se le pedirá la contraseña pero no tiene un tty para ingresarla). Por otro lado, como usuario normal, normalmente no puede usar simplemente ddcomo se sugiere en otra respuesta (no tiene los permisos necesarios para el dispositivo). Puede resolver el problema otorgándose derechos para ejecutar ddcomo sudo sin contraseña. Puede hacer esto editando el archivo sudoers (en el control remoto):
y debería funcionar Puede hacer una entrada más genérica en sudoers, lo que le permite ejecutar ddcon cualquier parámetro, pero es más sabio mantener estos permisos gratuitos al mínimo que necesita.
ONE
del disco duro de la computadora remota enTWO
el almacenamiento de la computadora remota ), así: <br /> [root @ ONE] # dd if = / dev / sda1 | raíz ssh @ DOSdd of=/root/Public/ONE/sda1.img
<br /> 409600 + 0 registros en 409600 + 0 registros 209715200 bytes (210 MB) copiados, 0.894929 s, 234 MB / s El pseudo-terminal no se asignará porque stdin no es una contraseña de raíz raíz @ TWO : El problema es que el/root/Public/ONE/sda1.img
archivo se creó elONE
, noTWO
como se esperaba ¿Cómo puedo solucionar esto?pv
de la máquina local? Gracias.status=progress
opción. Por lo tanto, ya no necesita ejecutarpkill -USR1 dd
desde otra terminal.El error que recibe se debe al uso de sudo de forma remota (se le pedirá la contraseña pero no tiene un tty para ingresarla). Por otro lado, como usuario normal, normalmente no puede usar simplemente
dd
como se sugiere en otra respuesta (no tiene los permisos necesarios para el dispositivo). Puede resolver el problema otorgándose derechos para ejecutardd
como sudo sin contraseña. Puede hacer esto editando el archivo sudoers (en el control remoto):sudo visudo
agregue la siguiente línea:
userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX
Ahora puedes emitir:
ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd
y debería funcionar Puede hacer una entrada más genérica en sudoers, lo que le permite ejecutar
dd
con cualquier parámetro, pero es más sabio mantener estos permisos gratuitos al mínimo que necesita.fuente
Acabo de utilizar una versión modificada en un cuadro virtual Linux Mint para clonar un disco duro físico en un servidor RedHat antiguo.
Ejecuté lo siguiente como root en el cuadro virtual:
fuente