Можно также сделать это с менеджером Архива, если Вы предпочитаете GUI. Посмотрите под, 'Сохраняют-> Другие Опции-> Разделение в объемы'.
Интересная проблема, Не уверенная, я когда-либо пытался сделать это. Но я имею, замечают метку времени, о которой Вы говорите, и я всегда полагал, что это секунды начиная с начальной загрузки.
В моем системном журнале я имею на своем сервере, я имею:
Jan 10 19:58:55 wdgitial kernel: [ 0.000000] Initializing cgroup subsys cpuset
Jan 10 19:58:55 wdgitial kernel: [ 0.000000] Initializing cgroup subsys cpu
Jan 10 19:58:55 wdgitial kernel: [ 0.000000] Linux version 2.6.32-21-server (buildd@yellow) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 (Ubuntu 2.6.32-21.32-server 2.6.32.11+drm33.2)
Jan 10 19:58:55 wdgitial kernel: [ 0.000000] Command line: root=/dev/xvda1 ro quiet splash
Я предположил бы, что это довольно последовательно среди большей части дистрибутива Linux, поскольку это - ядро, выкладывающее, это - материал.
И здесь у меня есть дата наряду с меткой времени.
Можно дать этому попытку:
Во-первых, получите метку времени dmesg файла (мое предположение, это будет временем dmesg 0). Вы будете использовать
ls -l --time-style=+%s
/var/log$ ls -l --time-style=+%s dmesg
-rw-r----- 1 root adm 56181 1294941018 dmesg
Можно преобразовать секунды в человекочитаемую дату с
perl -e 'print scalar localtime(1294941018)'
Таким образом для наблюдения читаемого времени события добавьте в секунды от события в dmesg. Если dmesg событие составляло 55,290387 секунд в, добавьте 55 или 55.290387:
perl -e 'print scalar localtime(1294953978 + 55)'
Другой способ преобразовать секунды с эпохальными корнями в читаемое время состоит в том, чтобы использовать дату-d, как предложено. Если Вы говорите 'дате' представлять время, предоставленное-d, можно указать, что время, которое будет преобразовано, находится в seconds-since-the-epoch при помощи.
date -d "@1294953978"
Это дает Вам что-то как "четверг Jan 13 15:26:18 CST 2011", как произведено.
date +%sраспечатает текущее время в формате секунд начиная с эпохи.
Я не могу помнить, как сделать математику оболочки, таким образом, я обычно использую метод жемчуга как выше.:)
date -d @$((1294953978 + 55))
, по крайней мере, под ударом. Однако некоторые метки времени ядра скашиваются, означая, что времена, произведенные этим методом, были бы ранее, чем их соответствующие метки времени в /var/log/syslog
. Похоже, что это происходит в результате, приостанавливают к RAM события, по-видимому, в дополнение к спящему режиму и возможно некоторому другому материалу, потому что время ядра не увеличивает в течение тех периодов. Посмотрите обновление вопроса для большего количества информации
– intuited
14.01.2011, 07:28
Самый легкий способ отобразить число от dmesg до даты использует date
программа.
date -d "-50595 seconds"
Эта команда отображает дату в течение текущего времени минус 50 595 секунд.
От man date
:
-d, --date=STRING
display time described by STRING, not `now'
Число равняется вовремя приводимому в действие, не, время протекло со времени начальной загрузки.
Быстрый, грязный, работы.
$ dmesg | grep 3w | perl /root/print_time_offset.pl
Содержание того сценария:
$ cat /root/print_time_offset.pl
#!/usr/bin/perl
$uptime = `cat /proc/uptime | awk '{print $1}';`;
$boot = time() - $uptime;
chomp $boot;
while (<STDIN>) {
if ($_ =~ /^\[([\s\d\.]+)\]/) {
$time_offset = $1;
}
$real_time = sprintf scalar localtime($boot + $time_offset);
$_ =~ s/\[[\s\d\.]+\]/\[$real_time\]/;
print $_;
}
Демонстрационный вывод следующие:
[Mon Feb 21 23:06:33 2011] 3ware 9000 Storage Controller device driver for Linux v2.26.02.012.
[Mon Feb 21 23:06:33 2011] 3w-9xxx 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[Mon Feb 21 23:06:33 2011] 3w-9xxx 0000:03:00.0: setting latency timer to 64
[Mon Feb 21 23:06:33 2011] scsi4 : 3ware 9000 Storage Controller
[Mon Feb 21 23:06:33 2011] 3w-9xxx: scsi4: Found a 3ware 9000 Storage Controller at 0xfbcde000, IRQ: 16.
[Mon Feb 21 23:06:34 2011] 3w-9xxx: scsi4: Firmware FE9X 4.08.00.006, BIOS BE9X 4.08.00.001, Ports: 4.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Mon Feb 21 23:06:35 2011] 3w-9xxx: scsi4: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
[Sat Feb 26 02:01:01 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Feb 26 02:01:01 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
[Sat Feb 26 16:49:13 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=1.
[Sat Feb 26 17:07:19 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=0.
[Sat Mar 5 02:00:16 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Mar 5 02:00:16 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
[Sat Mar 5 18:48:57 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=1.
[Sat Mar 5 19:05:17 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x002B): Verify completed:unit=0, subunit=0.
[Sat Mar 12 02:00:30 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=1.
[Sat Mar 12 02:00:30 2011] 3w-9xxx: scsi4: AEN: INFO (0x04:0x0029): Verify started:unit=0, subunit=0.
Так как Вы отметили, что скос времени, изменяющийся во время, приостанавливает/возобновляет, я отмечу, что это документируется по крайней мере в одно место. dmesg (1) страница справочника говорит:
Источник времени, используемый для журналов, не обновляется после системы ПРИОСТАНАВЛИВАЮТ/ВОЗОБНОВЛЯЮТ.
Я не мог найти способ заставить ядро сохранить эти метки времени в синхронизации со стенным временем.