Jeśli zamierzasz wykonać kopię zapasową dysku twardego A komputera zdalnego za pośrednictwem SSH do jednego pliku na dysku twardym komputera lokalnego, możesz wykonać jedną z następujących czynności.
Wyślij sygnał „SIGUSR1” do dd, aby wydrukować statystyki. Coś jak:
$ pkill -USR1 dd
Bibliografia
Metody monitorowania wymienione powyżej zostały pierwotnie pozostawione w komentarzach @Ryan & @bladt i mnie. Przesunąłem je do odpowiedzi, aby były bardziej oczywiste.
Próbowałem tego dla podobnego problemu (tworzenie kopii zapasowej ONEdysku twardego komputera zdalnego w TWOpamięci komputera zdalnego ), na przykład: <br /> [root @ ONE] # dd if = / dev / sda1 | ssh root @ TWO dd of=/root/Public/ONE/sda1.img<br /> 409600 + 0 rekordów w 409600 + 0 zapisanych danych 209715200 bajtów (210 MB) skopiowanych, 0,894929 s, 234 MB / s Pseudo-terminal nie zostanie przydzielony, ponieważ stdin nie jest terminalem głównym @ hasło TWO : Problem polega na tym, że /root/Public/ONE/sda1.imgplik został utworzony ONE, a nie TWOzgodnie z oczekiwaniami. Jak to naprawić?
Urhixidur,
1
Czy ktoś może nam podać przykład użycia pvz lokalnego komputera? Dziękuję Ci.
TCB13,
lepiej jest użyć lbzip2 lub pigz insted z gzip
Shimon Doodkin
dlaczego na końcu potrzebuję "| dd of = image.gz"? (nie tylko „> image.gz”), ponieważ dd zajmuje 100% jednego procesora
Shimon Doodkin
6
W odniesieniu do monitorowania: nowsze wersje dd mają również status=progressopcję. Dzięki temu nie musisz już uruchamiać się pkill -USR1 ddz innego terminala.
Do Schäfer
12
Otrzymany błąd jest spowodowany zdalnym użyciem sudo (zostaniesz poproszony o hasło, ale nie masz hasła, aby je wprowadzić). Z drugiej strony, jako zwykły użytkownik nie możesz normalnie używać tego, ddco sugeruje inna odpowiedź (nie masz wymaganych uprawnień do urządzenia). Możesz rozwiązać problem, przyznając sobie prawo do wykonywania ddjako sudo bez hasła. Możesz to zrobić, edytując plik sudoers (na pilocie!):
i powinno działać. Możesz wprowadzić bardziej ogólny wpis w sudoers, pozwalając na uruchamianie ddz dowolnym parametrem, ale rozsądniej jest ograniczyć te bezpłatne uprawnienia do niezbędnego minimum.
ONE
dysku twardego komputera zdalnego wTWO
pamięci komputera zdalnego ), na przykład: <br /> [root @ ONE] # dd if = / dev / sda1 | ssh root @ TWOdd of=/root/Public/ONE/sda1.img
<br /> 409600 + 0 rekordów w 409600 + 0 zapisanych danych 209715200 bajtów (210 MB) skopiowanych, 0,894929 s, 234 MB / s Pseudo-terminal nie zostanie przydzielony, ponieważ stdin nie jest terminalem głównym @ hasło TWO : Problem polega na tym, że/root/Public/ONE/sda1.img
plik został utworzonyONE
, a nieTWO
zgodnie z oczekiwaniami. Jak to naprawić?pv
z lokalnego komputera? Dziękuję Ci.status=progress
opcję. Dzięki temu nie musisz już uruchamiać siępkill -USR1 dd
z innego terminala.Otrzymany błąd jest spowodowany zdalnym użyciem sudo (zostaniesz poproszony o hasło, ale nie masz hasła, aby je wprowadzić). Z drugiej strony, jako zwykły użytkownik nie możesz normalnie używać tego,
dd
co sugeruje inna odpowiedź (nie masz wymaganych uprawnień do urządzenia). Możesz rozwiązać problem, przyznając sobie prawo do wykonywaniadd
jako sudo bez hasła. Możesz to zrobić, edytując plik sudoers (na pilocie!):sudo visudo
dodaj następujący wiersz:
userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX
Teraz możesz wydać:
ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd
i powinno działać. Możesz wprowadzić bardziej ogólny wpis w sudoers, pozwalając na uruchamianie
dd
z dowolnym parametrem, ale rozsądniej jest ograniczyć te bezpłatne uprawnienia do niezbędnego minimum.źródło
Właśnie użyłem zmodyfikowanej wersji na wirtualnym pudełku Linux Mint, aby sklonować fizyczny dysk twardy na starzejącym się serwerze RedHat.
Uruchomiłem następujące jako root na wirtualnym pudełku:
źródło