Вопрос : как прочитать архив /var/adm/wtmp HP-UX

Hi,
я имею сценарий Perl который работы отлично на солярисе 10 но ем выставка doesnot любой выход когда я побегу она на серверах HP-UX 11… Мне нужно знать распаковываю командование для того чтобы получить значения от архива wtmp HP?

class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
># " class= " id= " codeSnippet651843
>», «$FILE» или умрите «не smogл написать к архиву: $! »;
раскройте WTMP, «/var/adm/wtmp» или умрите «неспособное для того чтобы раскрыть wtmp: $! \ n»;
мо ($record, %prev);
   printf (ВНЕ «%7s %8s %-5s %-4s %-5s %s %s %s %s %s %s %s %-s \ n», «ХОЗЯИН», «ДАТА», «OS», «ПОТРЕБИТЕЛЬ», «ПОРТ», «НЕДЕЛЯ», «МЕСЯЦ», «ДЕНЬ», «СТАРТ»,» - «, «КОНЕЦ», 'DURATIO
IP N', «");
ОСНОВА:
пока (прочитано (WTMP, $record, $recordsize)) {
    # 0 $ut_user
    # 1 $ut_id
    # 2 $ut_line
    # 3 $ut_pid
    # 4 $ut_type
    # 5 $ut_e_termination
    # 6 $ut_e_exit
    # 7 $tv_sec
    # 8 $tv_usec
    # 9 $ut_session
    # 10 $ut_syslen
    # 11 $ut_host
    мои @vals = распаковывают ($template, $record);
    # оденьте в все conditionals эта линия для того чтобы сделать изменяющ их более легким
    следующая ОСНОВА если (>= time-86400 $vals [0] и $vals [7] и =~ /bsp/ $vals [0]);
# затем ОСНОВА если ($vals [0] и =~ /bsp/ $vals [0]);
    если ($vals [11]), то {# имя пользователя
        если (=~ m $vals [2] {^ftp} и существует $prev {$vals [0]} {$vals [2]}) {, то
            # это будет ftp и уже существует поэтому будет реально logout
            мое @stm = (localtime $prev {$vals [0]} {$vals [2]} [7]) [6.4.3.2.1];
# $stm [0] = (qw (Sun понедельник Tue Wed Fri Sat))[$stm [0]];
# $stm [1] = (qw (январь февраль Mar апрель May июнь июль август сентябрь октябрь ноябрь декабрь))[$stm [1]];
            мое @etm = (localtime $vals [7]) [2.1];
            мо $dmin = int (($vals [7] - $prev {$vals [0]} {$vals [2]} [7]) /60); # получите минуту
            мо $dhr = int ($dmin/60); # получите часы
            $dmin - = $dhr*60;

         printf (ВНЕ «%7s, %8s, %5s, %-4s, %-5s, %s, %s, %02d, %02d: %02d, -, %02d: %02d, (%02d: %02d), %-s \ n», $HOST, $DATE, $OS, $vals [0], «ftp», @stm, @etm, $dhr, $dmin,
 $prev {$vals [0]} {$vals [2]} [11]);
            delete $prev {$vals [0]} {$vals [2]};
        } еще {
            # error-checking
            если (существует $prev {$vals [0]} {$vals [2]}) {, то
            # предупредите «будет уже вход имени пользователя для $vals [0] на $vals [2] - переписывающ»;
            }
            $prev {$vals [0]} {$vals [2]} = [@vals];
        }
    } еще {# assuming logout/мертво proc
        # error-checking
        если (не существует $prev {$vals [0]} {$vals [2]}) {, то
# предупредите «не smogл найти вход имени пользователя для $vals [0] на $vals [2] - прыгающ»;
            следующая ОСНОВА;
        }
        мое @stm = (localtime $prev {$vals [0]} {$vals [2]} [7]) [6.4.3.2.1];
# $stm [0] = (qw (Sun понедельник Tue Wed Thu Fri Sat))[$stm [0]];
# $stm [1] = (qw (январь февраль Mar апрель May июнь июль август сентябрь октябрь ноябрь декабрь))[$stm [1]];
        мое @etm = (localtime $vals [7]) [2.1];
        мо $dmin = int (($vals [7] - $prev {$vals [0]} {$vals [2]} [7]) /60); # получите минуту
        мо $dhr = int ($dmin/60); # получите часы
        $dmin - = $dhr*60;
       printf (ВНЕ «%7s, %8s, %5s, %-4s, %-5s, %s, %s, %02d, %02d: %02d, -, %02d: %02d, (%02d: %02d), %-s \ n», $HOST, $DATE, $OS, $vals [0], $vals [2], @stm, @etm, $dhr, $dmin,
$prev {$vals [0]} {$vals [2]} [11]);
        delete $prev {$vals [0]} {$vals [2]};
    }
}
близкое WTMP;
class=

Ответ : как прочитать архив /var/adm/wtmp HP-UX

Ah.  Я вижу проблему.  Измените линию 8 для того чтобы быть:

мо $script = basename $0;
мо $TMPFILE = «. $script.last»;

и добавьте это после линии 2:

используйте предупреждения;  # только обязательно но всегда хорошо идеи
архив пользы:: Basename;
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us