2013-07-31 12 views
5

Sto cercando di fare un backup rsync da DreamHost a un altro host, ecco il comando mi piacerebbe usare:In bash, come inserisco una password per un comando di background process?

nohup rsync -e "/ usr/bin/ssh" --bwlimit = 2000 -av [email protected]: remote_directory local_directory &

Mi piacerebbe che il processo continuasse a funzionare in background e anche quando mi disconnetto. Il problema è che non so come inserire la password quando si tratta di un processo in background. Come faccio a fare questo?

+4

Perché non usi una chiave? –

risposta

8

Di solito questo non è richiesto per nessuna password. Invece, si consideri la configurazione di SSH per utilizzare una chiave pubblica. Ci sono diverse risorse online (come this one from dreamhost) che possono aiutarti a farlo.

4

Vorrei usare una chiave. Se è necessario per proteggere la chiave con una password o non è possibile utilizzare una chiave per qualsiasi motivo, quindi utilizzare aspettano di passare la password:

rsync_auto.sh:

#/bin/bash 

expect <<<EOF 
spawn nohup rsync -e "/usr/bin/ssh" --bwlimit=2000 -av [email protected]:remote_directory 
expect "password:" 
send "your_password\r" 
expect eof 
EOF 

!!! Assicurarsi che nessuno tranne che si può accedere al file !!!: modo

chmod 500 rsync_auto.sh 

un po 'più elaborata potrebbe essere quella di memorizzare la password in un'applicazione portachiavi, come gnome-keyring, invece di memorizzare in un file normale. Ho trovato questo article se sei interessato.

+1

E rendersi conto che chiunque può leggere questo file può leggere la password. – Paul

+0

@Paul sì è vero. Ma chiunque possa leggere il file può usare anche la chiave. Semplicemente assicurati che il file sia leggibile solo dal proprietario – hek2mgl

+0

concordato, almeno il client ssh ti dirà quando il tuo file di chiavi è, per esempio, leggibile da un mondo e blocca di usarlo. – Paul

Problemi correlati