Проблема с запуском сторожевого таймера systemd

Используя то, что вы уже знаете:

  • GNU дата может преобразовать метку времени в отформатированную дату, задав ей @timestamp.
  • Замена пробелов на | даст вам желаемый результат.

К этому мы добавляем

  • GNU дата может работать с файлом, конвертируя даты в одном пакете.

Для пакетного преобразования дат с помощью GNU date мы должны извлечь метки времени и добавить к ним префикс @:

$ sed 's/^\([^ ]*\).*$/@\1/' data.in
@1137921146.499
@1137921158.698
@1137921758.163
@1137921802.016

Выражение sed заменяет каждую строку на первое поле, разделенное пробелами, с префиксом @.

С bashksh93 или любой оболочкой, которая понимает подстановки процессов):

$ date -f <( sed 's/^\([^ ]*\).*$/@\1/' data.in )
Sun Jan 22 10:12:26 CET 2006
Sun Jan 22 10:12:38 CET 2006
Sun Jan 22 10:22:38 CET 2006
Sun Jan 22 10:23:22 CET 2006

Затем нам нужно взять другие поля входных данных и заменить разделители:

$ cut -d ' ' -f 2- data.in | tr ' ' '|'
180900|61.153.158.197|1409
181622|61.153.158.197|1409
180026|221.226.124.114|1374
179485|121.13.128.132|1409

Затем мы вставляем эти две вещи вместе с | в качестве разделителя:

$ paste -d '|' <( date -f <( sed 's/^\([^ ]*\).*$/@\1/' data.in ) ) <( cut -d ' ' -f 2- data.in | tr ' ' '|' )
Sun Jan 22 10:12:26 CET 2006|180900|61.153.158.197|1409
Sun Jan 22 10:12:38 CET 2006|181622|61.153.158.197|1409
Sun Jan 22 10:22:38 CET 2006|180026|221.226.124.114|1374
Sun Jan 22 10:23:22 CET 2006|179485|121.13.128.132|1409
0
20.02.2017, 09:24
2 ответа

Это известная ошибка Debian. Интеграция пакета сторожевого таймера Debian в systemd прошла несколько этапов, сильно варьирующихся. Как вы обнаружили, сторожевой таймер, выпущенный как Debian 8, на самом деле не работал. Это не было обнаружено при предварительном тестировании.

Ошибка была исправлена ​​в пакете версии 5.15-1, наряду с другим исправлением, исправляющим ошибочный синтаксис служебной единицы (также видимый в вашей служебной единице). Эта версия недоступна в бэкпортах Debian 8, хотя было сделано два запроса (и, по-видимому, проигнорировано), чтобы она была.

Дополнительная литература

3
28.01.2020, 02:19

Для armbian вы можете установить обновленный пакет вручную:

wget http://ftp.debian.org/debian/pool/main/w/watchdog/watchdog_5.15-2_armhf.deb
dpkg -i watchdog_5.15-2_armhf.deb
systemctl enable watchdog
1
28.01.2020, 02:19

Теги

Похожие вопросы