2012-10-24 10 views
14

Voglio ottenere gli indirizzi IP di tutti i dispositivi di destinazione in cui il mio trasferimento dati tramite rsync non potrebbe essere completa (o anche iniziare) come questi dispositivi non sono connessi a Internet o ricevuti scollegati mentre il trasferimento dei dati ...Dove rsync mantiene il file di registro per trasferimenti di dati completi e incompleti?


mio scenario problema reale è:

rsync -t Desktop/sony.pdf casa @ abcd: ssh: collegare ad ospitare porto abcd 22: No route to host

e voglio l'elenco dei A tutti questi indirizzi IP in cui il trasferimento dei dati non poteva essere complted ...

l'elenco di tutti gli IP come 'abcd'

risposta

2

faccio il lavoro in perl (in linea di comando):

# perl -ne ' 
    ($conn{$2}->{"ip"},$conn{$2}->{"started"})=($3,$1) if 
     /^(.{15}).*rsyncd\[(\d+)\]:\sconnect.*\((\d+\.\d+\.\d+\.\d+)\)/; 
    $conn{$2}->{"closed"}=$1 if /(.{15}).*rsyncd\[(\d+)\]:\ssent\s.*\stotal/; 
    END { 
     print "Good:\n"; 
     map{ 
      printf "%s %-16s %s\n", 
       $conn{$_}->{"started"},$conn{$_}->{"ip"},$conn{$_}->{"closed"} if 
        $conn{$_}->{"closed"}; 
      } sort { $conn{$a}->{"started"} cmp $conn{$b}->{"started"} 
      } keys %conn; 
     print "Unterminated:\n"; 
     map{ 
      printf "%s %s\n",$conn{$_}->{"started"},$conn{$_}->{"ip"}; 
      } sort { $conn{$a}->{"started"} cmp $conn{$b}->{"started"} 
      } grep { ! defined $conn{$_}->{"closed"} 
      } keys %conn; 
    }' < /var/log/daemon.log 

Questo potrebbe produrre risultati come:

Good: 
Apr 28 08:12:01 127.0.0.1  Apr 28 08:15:35 
Apr 28 08:27:01 192.168.1.36  Apr 28 08:28:04 
Apr 28 08:42:01 127.0.0.1  Apr 28 08:42:13 
Apr 28 08:57:01 192.168.1.36  Apr 28 08:57:16 
Apr 28 09:12:01 127.0.0.1  Apr 28 09:12:28 
Apr 28 09:27:01 192.168.1.36  Apr 28 09:27:13 
Apr 28 09:42:01 127.0.0.1  Apr 28 09:42:09 
Apr 28 09:57:02 192.168.1.36  Apr 28 09:57:16 
Apr 28 10:12:01 127.0.0.1  Apr 28 10:12:32 
Apr 28 10:27:01 192.168.1.36  Apr 28 10:27:12 
Apr 28 10:42:01 127.0.0.1  Apr 28 10:42:14 
Apr 28 10:57:01 192.168.1.36  Apr 28 10:57:13 
Apr 28 11:27:01 192.168.1.36  Apr 28 11:28:01 
Apr 28 11:42:01 127.0.0.1  Apr 28 11:44:32 
Apr 28 11:57:02 192.168.1.36  Apr 28 11:58:43 
Apr 28 12:12:01 127.0.0.1  Apr 28 12:12:27 
Apr 28 12:27:01 192.168.1.36  Apr 28 12:28:48 
Apr 28 12:42:01 127.0.0.1  Apr 28 12:42:13 
Apr 28 12:57:01 192.168.1.36  Apr 28 12:57:56 
Unterminated: 
Apr 28 11:12:01 127.0.0.1 
+0

Grazie per la risposta. ma non ho alcun file all'interno come deamon.log all'interno di/var/log !! – user1709815

26

Si può dire dove il file di registro è (per la documentazione man page):

 
--log-file=FILE   override the "log file" setting 
+4

+1 Meglio della mia risposta. –

+0

Quale distribuzione Linux hai testato? Ottengo -> rsync: --log-file =/root/.rsyncd.log: opzione sconosciuta – Proverbio

+1

La funzione è stata aggiunta in rsync versione 2.6.9 (6 nov 2006). Puoi vedere il registro delle modifiche su: http://rsync.samba.org/ftp/rsync/src/rsync-2.6.9-NEWS Dato che il cambiamento è così antico, penso che la maggior parte delle distribuzioni siano aggiornate avrebbe questa caratteristica Ho usato Mandriva Enterprise Server che si basa su una versione 2009 della loro versione gratuita. – kbulgrien

1

Ricerca di prove di rsync nei registri di sistema. Ad esempio:

Se è per questo, si potrebbe grep/anche se è eccessivo.

3

Le informazioni sui registri vengono inviate normalmente tramite il daemon syslog, quando rsync viene eseguito in modalità daemon.

Se si desidera accedere someting quando si utilizza rsync su SSH, bisogna mettere opzione nella riga di comando:

rsync --rsync-path='/usr/bin/rsync --log-file=$HOME/.rsyncd.log' -t Desktop/sony.pdf [email protected]: 

per salvare i log in host di destinazione o

rsync --log-file=$HOME/.rsyncd.log -t Desktop/sony.pdf [email protected]: 

per il salvataggio dei log in host di origine.

Problemi correlati