2012-10-24 23 views
14

我想所有的目标设备,其中使用rsync我的数据传输可能是不完整的(或者甚至开始)为这些设备没有连接到互联网或在数据传输断开了的IP地址...rsync在哪里保存完整和不完整数据传输的日志文件?


我的实际问题的方案是:

rsync的-t桌面/ sony.pdf家@ ABCD: 的ssh:连接到主机ABCD 22端口:没有到主机的路由

,我想名单所有这些IP地址在数据传输无法complted ...

像“ABCD”的所有IP列表

回答

2

我做在Perl作业(命令行):

# 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 

这可能会产生这样的输出:

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

感谢您的回答。但我没有在/ var/log里面的deamon.log文件! – user1709815

26

你可以说出日志文件(每个男人页文档):

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

+1比我的回答好。 –

+0

你测试过哪些Linux发行版?我得到 - > rsync:--log-file =/root/.rsyncd.log:未知选项 – Proverbio

+1

该功能在rsync版本2.6.9(2006年11月6日)中添加。您可以在http://rsync.samba.org/ftp/rsync/src/rsync-2.6.9-NEWS看到更改日志。由于更改太旧,我认为大多数分发都是最新的会有这个功能。我使用了基于2009版免费版的Mandriva Enterprise Server。 – kbulgrien

1

在系统日志中搜索rsync的证据。例如:

 
sudo grep -ir rsync /var/log 

对于这个问题,你可以grep /虽然这是矫枉过正。

3

当rsync在守护进程模式中运行时,日志信息通常通过syslog守护进程发送,

如果你想使用rsync通过ssh时登录成才,你必须把在命令行选项:

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

保存在目标主机日志或

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

在保存日志源主机。