Pagina 1 di 1

script bash per copia

Inviato: martedì 5 maggio 2009, 18:29
da wike
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

Re: script bash per copia

Inviato: martedì 5 maggio 2009, 19:28
da pieddu
rsync fa questo lavoro...
https://help.ubuntu.com/community/rsync

Re: script bash per copia

Inviato: mercoledì 6 maggio 2009, 10:55
da lucap78
pieddu ha scritto: rsync fa questo lavoro...
https://help.ubuntu.com/community/rsync

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?

Re: script bash per copia

Inviato: mercoledì 6 maggio 2009, 11:03
da pieddu
Non l'avevo inteso in questi termini....
Vedi allora se "diff" può fare al tuo caso  :-\

Re: script bash per copia

Inviato: mercoledì 6 maggio 2009, 11:09
da lucap78
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
Sinceramente non ho capito bene quello che devi fare.

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

Inviato: mercoledì 6 maggio 2009, 11:17
da pieddu
Spero che tutto questo traffico passi in un tunnel ssh.....

Re: script bash per copia

Inviato: mercoledì 6 maggio 2009, 13:53
da wike
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

Re: script bash per copia

Inviato: mercoledì 6 maggio 2009, 14:48
da lucap78
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