Подтвердить что ты не робот

Где rsync сохраняет файл журнала для полной и неполной передачи данных?

Я хочу получить IP-адреса всех целевых устройств, где моя передача данных с использованием rsync не может быть завершена (или даже запущена), поскольку эти устройства не подключены к Интернету или не отключены во время передачи данных...


Мой фактический проблемный сценарий:

rsync -t Desktop/sony.pdf [email protected]: ssh: подключиться к хосту порт a.b.c.d 22: нет маршрута для хоста

и мне нужен список всех таких IP-адресов, где передача данных не может быть решена...

список всех IP-адресов, таких как "a.b.c.d"

4b9b3361

Ответ 1

Я выполняю задание в 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

Ответ 2

Вы можете указать, где находится файл журнала (в документации по странице):

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

Ответ 3

Информация о журналах нормально отправляется через демона syslog, , когда rsync запускается в режиме демона.

Если вы хотите входить в журнал при использовании rsync over 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]:

для сохранения журналов в исходном хосте.

Ответ 4

Поиск доказательств rsync в системных журналах. Например:

sudo grep -ir rsync /var/log

В этом случае вы могли бы grep/хотя это перебор.