LINUX.ORG.RU
ФорумAdmin

rsh-client и ключ -t

 rsh


0

1

Привет. В одном биллинге на freebsd снимается статистика с ipcad через rsh в формате :

rsh -t 5 -n 127.0.0.1 ...
rsh -t 20 -n 127.0.0.1 ...

Но на линуксе ключ t не принимается. Что определяет этот ключ и возможно ли поддержка на линукс чтобы не править код биллинга?



Последнее исправление: fet4 (всего исправлений: 3)

Судя по этому https://www.freebsd.org/cgi/man.cgi?query=rsh&sektion=1 timeout, но не просто на время выполнения команды, а на отсутствие обмена данными.

Вместо rsh под Линуксом есть pdsh, там есть таймаут, но не совсем такой. Поэтому нужно по окружающему коду понять, от чего именно этот таймаут — от отсутствия коннекта или от зависания команды, насколько «объёмные» команды вызываются через rsh и могут ли они выполняться дольше 5 секунд.

mky ★★★★★
()
Ответ на: комментарий от mky

Вот где оно используется


#!/usr/bin/perl
package kernel::collectors::ipcad;
use strict;

sub new
{
    my $collector = shift;
    $SIG{'INT'} = sub { threads->exit() };

    my $rsh = $collector->{rsh};
    my $res;
    my $cmd1 = "$rsh -t 5 -n $collector->{addr} 'cle ip acco' 2>/dev/null";
    my $cmd2 = "$rsh -t 20 -n $collector->{addr} 'sh ip acco che' 2>/dev/null";

    while( 1 )
    {
        while( $collector->{step} != 1 )
        {
            select(undef,undef,undef,0.1);
        }

        {
            $res = `$cmd1`;
            $res = `$cmd1` if ! $res;
            $res or last;
            $res = `$cmd2`;
            $res = `$cmd2` if ! $res;
        }
        $collector->{result} = $res;
        $collector->{step} = 2;
    }
}

1;

fet4
() автор топика
Ответ на: комментарий от fet4

″clear ip accounting″ короткая команда, там можно попробовать вместо ″rsh -t 5″ вызывать ″pdsh -t 5 -u 5″.

А вот сколько может выполнятся ″show ip accounting checkpoint″ не знаю.

mky ★★★★★
()
Ответ на: комментарий от mky
~# pdsh -t 20 127.0.0.1 sh ip acco che
pdsh@: no remote hosts specified

Еще что-то надо для pdsh?

 cat /etc/ipcad.conf
rsh enable at 127.0.0.1;

А не получиться с Freebsd скомпилить тот клиент?

fet4
() автор топика
Ответ на: комментарий от fet4

'cle ip acco' = clear ip accounting 'sh ip acco che' = show ip accounting checkpoint

Это команды ipcad. Первая в случае успеха выдает строку 'IP accounting cleared'. Вторая может выдать приличный объем данных (зависит от интервала опроса ipcad - т. е. сколько накопилось с прошлого опроса).

Когда rsh не может подключиться к хосту ($collector->{addr}), она вылетает по таймауту T > минуты с сообщением: «Operation timed out». Если бы автор кода не поставил везде -t < T, то это сообщение было бы интерпретировано скриптом как вывод удаленной команды ('cle ip acco', 'sh ip acco che'), что не есть правильно. Думаю, так.

rubic
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.