Как удалить удаленный диск с помощью SSH на локальном компьютере и сохранить на локальный диск

Как создать резервную копию удаленного диска с помощью SSH на моем локальном компьютере и сохранить его на локальном диске?


Я пробовал следующее:

ssh hostname@my.ip.address "sudo dd if=/dev/sdX " | \ dd of=/home/username/Documents/filename.image` 

Однако, я получаю следующую ошибку:

нет tty присутствует и не указана запрошенная программа

3 Solutions collect form web for “Как удалить удаленный диск с помощью SSH на локальном компьютере и сохранить на локальный диск”

Если вы намерены выполнить резервное копирование жесткого диска 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 

Методы мониторинга?

  1. Войдите через ssh в другой терминал и ls -l файл, чтобы посмотреть, что это за размер.
  2. Вы можете использовать pv для контроля за ходом большой операции dd, например, для удаленного примера выше, вы можете сделать:

     $ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz 
  3. Отправьте сигнал «SIGUSR1» на dd и он будет печатать статистику. Что-то вроде:

     $ pkill -USR1 dd 

Рекомендации

Методы, упомянутые выше для мониторинга, были первоначально оставлены с помощью комментариев от @Ryan & @bladt и мной. Я переместил их в ответ, чтобы сделать их более очевидными.

Полученная вами ошибка связана с использованием 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.

Я запустил следующее в качестве администратора в виртуальном поле:

 ssh root@192.168.1.5 "dd if=/dev/cciss/c0d0" | dd of=/dev/sdb 
  • 192.168.1.5 – это физическое поле Red Hat Enterprise Linux 2.1.
  • / dev / sdb – это новый виртуальный диск, который при завершении клонирования станет основой виртуальной версии старого умирающего физического окна.
  • Как запускать несколько команд sudo по уже открытому ssh-соединению
  • Поиск метода rsync + ssh в качестве альтернативы Dropbox
  • Ошибка с `ssh -Y`, ошибка в файле блокировки
  • Изменение переменной PHP PATH для SSH
  • Как удалить файл на удаленном компьютере через SSH с помощью сценария оболочки?
  • Уведомление по электронной почте, когда кто-то SSH Linux Centos7 рабочая станция (вывод команды who)
  • Вход ssh в скрипт Bash
  • ssh в учетную запись, у которой нет домашней директории
  • Shellscript! Синтаксическая ошибка, неожиданно "("
  • Добавить статический текстовый слой / бар в терминале
  • Получить указание команды ssh
  • Linux и Unix - лучшая ОС в мире.