rsync在哪里保存完整和不完整数据传输的日志文件?

22

我希望能够获取所有目标设备的IP,这些目标设备使用rsync传输数据时,无法完成(或无法启动)数据传输,因为这些设备没有连接到互联网或在数据传输过程中断开连接...


我的实际问题场景是:

rsync -t Desktop/sony.pdf home@a.b.c.d: ssh: connect to host a.b.c.d port 22: No route to host

我想要所有未能完成数据传输的IP地址列表...

所有IP地址的列表类似于'a.b.c.d'

4个回答

32

你可以通过手册中的文档来指定日志文件的位置:

--log-file=FILE         覆盖“日志文件”设置

你测试过哪个Linux分布版?我收到了 -> rsync:--log-file=/root/.rsyncd.log:未知选项 - Juampa
1
该功能是在rsync 2.6.9版本(2006年11月6日)中添加的。您可以在以下网址查看更改日志:http://rsync.samba.org/ftp/rsync/src/rsync-2.6.9-NEWS。由于这个变化非常古老,我认为大多数更新的发行版都会有这个功能。我使用的是基于2009年免费版本发布的Mandriva企业服务器。 - kbulgrien
请记得使用双破折号 --log-file。 - Remo Harsono

8

通常情况下,日志信息通过syslog守护程序发送,当rsync以守护进程模式运行时

如果你想在使用rsync通过ssh传输文件时记录日志,你需要在命令行中加上该选项:

rsync --rsync-path='/usr/bin/rsync --log-file=$HOME/.rsyncd.log' -t Desktop/sony.pdf home@a.b.c.d:

用于将日志保存在目标主机上或

rsync --log-file=$HOME/.rsyncd.log -t Desktop/sony.pdf home@a.b.c.d:

用于在源主机上保存日志。


7

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

sudo grep -ir rsync /var/log

实际上,您也可以使用grep /,但这可能有点过度。


3
我使用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

感谢您的回答。但是我在/var/log中没有名为deamon.log的文件!! - user1709815

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接