script bash per copia
script bash per copia
Avrei bisogno di realizzare uno script bash che prenda gli utenti dal file passwd di un server e li copi sul file passwd di un altro server.
Inoltre lo script dovrebbe verificare se sul file passwd esiste già quell'utente e, in questo caso, non riscriverlo.
Qualcuno ha già fatto qualcosa di simile o sa darmi una dritta?
grazie
IK
Inoltre lo script dovrebbe verificare se sul file passwd esiste già quell'utente e, in questo caso, non riscriverlo.
Qualcuno ha già fatto qualcosa di simile o sa darmi una dritta?
grazie
IK
- pieddu
- Tenace Tecnocrate

- Messaggi: 13453
- Iscrizione: sabato 11 novembre 2006, 21:46
- Desktop: Mate XFCE
- Distribuzione: Devuan Trisquel
- Sesso: Maschile
- Località: Serravalle di Chienti (Taverne)
Re: script bash per copia
rsync fa questo lavoro...
https://help.ubuntu.com/community/rsync
https://help.ubuntu.com/community/rsync
Ultima modifica di pieddu il martedì 5 maggio 2009, 19:33, modificato 1 volta in totale.
Re: script bash per copia
Sicuro che rsync copi solo la differenza del file senza sovvrascriverlo? Io sapevo che rsync tiene sincronizzate 2 cartelle copiando i file modificati da una all'altra, ma che mi aggiungesse/eliminasse le modifiche di alcune righe dentro a un file non lo sapevo.
Mi potresti dire qualè l'opzione da utilizzare?
- pieddu
- Tenace Tecnocrate

- Messaggi: 13453
- Iscrizione: sabato 11 novembre 2006, 21:46
- Desktop: Mate XFCE
- Distribuzione: Devuan Trisquel
- Sesso: Maschile
- Località: Serravalle di Chienti (Taverne)
Re: script bash per copia
Non l'avevo inteso in questi termini....
Vedi allora se "diff" può fare al tuo caso :-\
Vedi allora se "diff" può fare al tuo caso :-\
Re: script bash per copia
Sinceramente non ho capito bene quello che devi fare.wike ha scritto: Avrei bisogno di realizzare uno script bash che prenda gli utenti dal file passwd di un server e li copi sul file passwd di un altro server.
Inoltre lo script dovrebbe verificare se sul file passwd esiste già quell'utente e, in questo caso, non riscriverlo.
Qualcuno ha già fatto qualcosa di simile o sa darmi una dritta?
grazie
IK
Se devi tenere sincronizzati 2 file passwd tra due server allora ti basta sovvrascrivere il file passwd sul server secondario (tipo rsync come suggerito da pieddu).
Altrimenti con diff riesci a estrapolare le singole differenze tra i due file, questo però significa che se l'utente user1 esiste nel passwd di entrambi i server ma ha qualche info diversa (esempio la home) allora diff rileva questa differrenza.
Re: script bash per copia
Andiamo con ordine:
devo copiare SOLO gli utenti ed i gruppi da me definiti con useradde usergroup da un server ad un altro. Questa operazione la farò una volta adesso e poi solo all'inserimento di nuovi utenti o gruppi (presumiilmente 30 utenti e 7 gruppi oggi e qualche inserimento nuovo (1 o 2) all'anno). E' vero che potrei farlo a mano però se posso automatizzo il tutto.
Dato che i due server hanno servizi diversi avranno anche utenti (relativi ai servizi) diversi. Ognuno deve tenersi i suoi!!!! Per questo non posso usare nè rsync nè diff ;-)
In pratica devo tenere sincronizzati solo parte dei due file
L'idea era la seguente:
1) leggo riga per riga gli utenti da passwd su srv1 (ovvero chi ha uid > 1000)
2) cerco se quel nome utente è presente su passwd su srv2
a) se presente skip
b) se manca lo aggiungo
Qualcuno sa dirmi come farlo tramite script bash??? Se poi essite un'altro sistema + semplice meglio.
IK
devo copiare SOLO gli utenti ed i gruppi da me definiti con useradde usergroup da un server ad un altro. Questa operazione la farò una volta adesso e poi solo all'inserimento di nuovi utenti o gruppi (presumiilmente 30 utenti e 7 gruppi oggi e qualche inserimento nuovo (1 o 2) all'anno). E' vero che potrei farlo a mano però se posso automatizzo il tutto.
Dato che i due server hanno servizi diversi avranno anche utenti (relativi ai servizi) diversi. Ognuno deve tenersi i suoi!!!! Per questo non posso usare nè rsync nè diff ;-)
In pratica devo tenere sincronizzati solo parte dei due file
L'idea era la seguente:
1) leggo riga per riga gli utenti da passwd su srv1 (ovvero chi ha uid > 1000)
2) cerco se quel nome utente è presente su passwd su srv2
a) se presente skip
b) se manca lo aggiungo
Qualcuno sa dirmi come farlo tramite script bash??? Se poi essite un'altro sistema + semplice meglio.
IK
Re: script bash per copia
A parte il fatto che oltre al passwd dovresti sincronizzare anche lo shadow per le password, non è più semplice fare uno script che ti crea l'utente sul primo server poi attraverso rsh te lo crea anche sul secondario?
Altrimenti altra soluzione, che in questo caso è ancora più comoda, è cambiare sistema di autenticazione e passare a LDAP come db utenti
Altrimenti altra soluzione, che in questo caso è ancora più comoda, è cambiare sistema di autenticazione e passare a LDAP come db utenti
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti