Automatizzare l'inserimento password in rsync

Posted on Sep 13, 2021

Utilizzo rsync come strumento per fare backup e sincronizzazione delle mie cartelle personali e di lavoro. Ho un semplice script che effettua l’operazione

rsync -ruv /PATH/TO/FOLDER_1/* rsync://USER@HOST:/PATH/TO/DESTINATION_1
rsync -ruv /PATH/TO/FOLDER_2/* rsync://USER@HOST:/PATH_TO_DESTINATON_2

Lo script esegue due chiamate rsync perché voglio sincronizzare due cartelle (e relative sottocartelle) specifiche tra le molte presenti e questa è la soluzione più semplice che ho trovato.

Il problema è che quando eseguo lo script mi viene richiesta due volte la password dell’utente USER per ogni esecuzione e questo è piuttosto noioso.

Guardando la documentazione di rsync ho trovato che è possibile automatizzare l’inserimento di questa password in due modi

  1. Utilizzando una variabile di ambiente
export RSYNC_PASSWORD=superpassword
rsync -ruv /PATH/TO/FOLDER_1/* rsync://USER@HOST:/PATH/TO/DESTINATION_1                                                                                                                                     
rsync -ruv /PATH/TO/FOLDER_2/* rsync://USER@HOST:/PATH_TO_DESTINATION_2 
  1. Utilizzando un apposito file per le password
rsync -ruv --password-file=/PATH/TO/PWDFILE /PATH/TO/FOLDER_1/* rsync://USER@HOST:/PATH/TO/DESTINATION_1                                                                                                                                     
rsync -ruv --password-file=/PATH/TO/PWDFILE /PATH/TO/FOLDER_2/* rsync://USER@HOST:/PATH_TO_DESTINATON_2 

L’opzione vuole un path assoluto per il file e il file deve avere solo permessi per l’utente proprietario (esempio: 500)