Come eseguire il backup della cronologia del terminale Linux

Il terminale Linux ha una funzione di “cronologia”. Con questa funzione, verrà eseguito il backup di ogni operazione di comando immessa per dopo. Poiché tutti i comandi del terminale vengono salvati nella “cronologia”, è essenziale conservarne un backup per sicurezza.

In questa guida, ti mostreremo come eseguire il backup della cronologia del terminale Linux e come ripristinare anche i backup. Quindi, apri il tuo emulatore di terminale Linux preferito e segui!

Dove viene archiviata la cronologia del terminale Linux?

Il terminale Linux memorizza la sua cronologia in un file. Questo file è denominato “.bash_history”. Chiunque può modificarlo e viene memorizzato nella directory home. Poiché il file della cronologia del terminale per Linux è archiviato in una directory utente, ogni singolo utente del sistema dispone di un file.

I permessi speciali non proteggono questi file di cronologia e qualsiasi utente del sistema può dare un’occhiata alla cronologia di un altro con un semplice comando. Quindi, ad esempio, se voglio dare un’occhiata alla cronologia del terminale / riga di comando del nome utente “utente” sul mio sistema Linux, farei:

cat /home/user/.bash_history

Gli utenti possono anche visualizzare la cronologia dell’utente corrente a cui hanno effettuato l’accesso nella shell del terminale Linux, semplicemente eseguendo il comando “history”.

history

Soprattutto, dal momento che “history” è solo un file, può essere cercato come un normale file di testo usando la funzione grep. Quindi, ad esempio, per trovare istanze di “git clone” nel nome utente con il comando seguente.

cat /home/user/.bash_history | grep 'git clone'

Funziona anche come utente attualmente connesso con il comando “history”.

history | grep 'search term'

Salva la cronologia del terminale su un backup

Nella sezione precedente di questa guida, ho parlato di come la “cronologia” per il terminale Linux sia solo un file di testo ben nascosto che contiene tutti i comandi inseriti dall’utente. Bene, poiché è solo un file, significa che è semplicissimo eseguire il backup per sicurezza.

Per creare un backup, utilizza il comando cat. Perché? Con cat, puoi visualizzare l’intero file di testo direttamente nel terminale. Possiamo utilizzare questo comando in combinazione con il simbolo “>” per reindirizzare l’output di visualizzazione a un file di backup.

Quindi, ad esempio, per eseguire il backup della cronologia corrente, esegui il comando cat su “~ / .bash_history” e salvalo in un file con l’etichetta “history_backup”.

cat ~/.bash_history > history_backup

È inoltre possibile eseguire il comando della cronologia in combinazione con “>” e salvarlo in questo modo.

history > history_backup

Infine, è possibile eseguire il backup della cronologia della riga di comando / terminale di un altro utente non connesso eseguendo il comando seguente.

Nota: assicurati di cambiare “nome utente” con l’utente da cui desideri salvare la cronologia.

cat /home/username/.bash_history > history_backup

Backup solo di alcuni elementi della cronologia

Potresti voler solo eseguire il backup di comandi specifici nella cronologia del tuo terminale Linux. Il modo per farlo è visualizzare il file della cronologia e combinarlo con il comando grep, che filtrerà parole chiave specifiche.

Ad esempio, per eseguire il backup solo dei comandi nella cronologia del terminale Linux che contengono i comandi git clone o git, è possibile eseguire l’operazione seguente.

Nota: in questi esempi, utilizziamo “>>” anziché “>”. Il motivo di “>>” è che non sovrascriverà il contenuto del backup del file cronologico e può essere rieseguito più volte per aggiungerlo al backup.

cat ~/.bash_history | grep 'git' >> history_backup

O

cat /home/username/.bash_history | grep 'git' >> history_backup

Il filtro con grep può anche essere applicato al comando history, in questo modo.

history | grep 'git' >> history_backup

Per eseguire il backup di determinate parole chiave dal file della cronologia, sostituire “git” negli esempi precedenti con i comandi di cui si desidera eseguire il backup. Sentiti libero di rieseguire questo comando quanto necessario.

Come ripristinare il backup della cronologia

Il ripristino del backup della cronologia è semplice come eliminare il file originale e inserire il backup al suo posto. Per eliminare il file della cronologia originale, utilizzare il comando rm in una finestra di terminale per eliminare “.bash_history”.

rm ~/.bash_history

Una volta eliminato il file della cronologia originale dalla cartella principale dell’utente in cui si desidera ripristinare la cronologia, utilizzare il comando mv per rinominare “history_backup” in “.bash_history”.

mv history_backup ~/.bash_history

Ora che il nuovo file di cronologia è a posto, eseguire il comando history -rw per ricaricare la funzione di cronologia del terminale.

history -rw

Potrai quindi vedere la cronologia del tuo terminale con:

history

Ripristina backup per altri utenti

Hai bisogno di ripristinare i backup della cronologia da altri utenti sul sistema? Per fare ciò, inizia accedendo al proprio utente utilizzando il comando su.

su username

Dopo aver effettuato l’accesso all’utente, eliminare il file della cronologia corrente che risiede nella directory home dell’utente (~).

rm ~/.bash_history

Da lì, rinomina il file di backup della cronologia come nuovo file “.bash_history” nella directory dell’utente.

mv /path/to/backup/file/history-backup ~/.bash_history

Scrivi le modifiche con:

history -rw

Al termine, esegui la cronologia per visualizzare i comandi ripristinati nella finestra del terminale.