Quando il backup del fornitore ha dei problemi… temporanei!!

Photo by Kevin Horvat on Unsplash
Situazione:
avete la vostra bella macchina VPS hostata da un provider che, normalmente, vi permette di fare il backup, della vostra macchina, sulla loro struttura. Nel mio caso mi permettono di avere sino a due copie di backup in date diverse, volendo.
I backup in questione vengono eseguiti attraverso il più classico dei comandi dd e depositati su una loro struttura NAS interna. Questo sistema è decisamente molto di aiuto quando dovete recuperare la macchina dopo aver fatto qualche disastro che vi rende la macchina viva ma non funzionante o totalmente non bootabile.
Problema:
per qualche motivo il sistema di backup, che è manuale via web page, fornito dal vostro provider, non funziona, e voi avete fatto delle grosse modifiche al vostro sistema. Vi serve fare un backup per evitare di perdere tutto il lavoro fatto, ma non potete fare seguendo la solita procedura via web. Come fare?
Soluzione:
sfruttando il vostro accesso ssh, alla vostra macchina remota ed approfittando delle possibilità di piping tra vari processi, sia locali, che remoti eseguiamo dal nostro sistema domestico:
ssh -C utente_remoto@ip_remoto "dd if=/dev/sda of=- " | dd of=/path/locale/mia-copia-locale.iso
Praticamente facciamo le seguenti operazioni:
- ci colleghiamo come utente_remoto alla macchina ip_remoto, via ssh;
- lanciamo il comando
dd
specificando, in input, il nostro device (attenzione a non selezionare anche la partizione, se si tratta di un disco contenente il sistema operativo, di cui vogliamo fare un eventuale restore, quindi noif=/dev/sda1
maif=/dev/sda
!!) - sfruttando il meccanismo di piping, reindirizziamo l’uscita del comando
dd if=/dev/sda
sulla macchina remota, verso un’altro processodd
locale in cui specifichiamo solo il parametro di uscita quindiof=mia-copia-locale.iso
Volendo monitorare lo stato di progressione della copia, possiamo inserire il parametro staus=progress
in uno dei due comandi dd
: su entrambi non avrebbe senso.
Se state usando un Mac, il parametro status=progress
non viene riconosciuto, per cui usando il mio Mac per copiare un disco remoto, integralmente, con dd
il comando sarà:
ssh -C utente_remoto@ip_remoto "dd if=/dev/sda of=- status=progress" | dd of=/path/locale/mia-copia-locale.iso
Quindi status=progress
sarà sul lato sinistro che si riferisce alla macchina remota, che sono certo trattarsi di un sistema Linux.
Se usate status=progress
sul lato Mac otterrete un errore di parametro sconosciuto simile a questo:dd: unknown operand status!!
Buon backup!!
J.C.
NOTA: il paramentro status=progress
non viene riconosciuto dal comando dd
in ambiente MacOs, quindi, nel caso il vostro sistema locale lo sia, aggiungete il parametro status=progress
sul lato linux.