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.
ONEdel disco duro de la computadora remota enTWOel 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.imgarchivo se creó elONE, noTWOcomo se esperaba ¿Cómo puedo solucionar esto?pvde la máquina local? Gracias.status=progressopción. Por lo tanto, ya no necesita ejecutarpkill -USR1 dddesde 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
ddcomo se sugiere en otra respuesta (no tiene los permisos necesarios para el dispositivo). Puede resolver el problema otorgándose derechos para ejecutarddcomo sudo sin contraseña. Puede hacer esto editando el archivo sudoers (en el control remoto):sudo visudoagregue la siguiente línea:
userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdXAhora puedes emitir:
ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.ddy 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.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