GNUAwk
решение:
awk -v RS='[<>]' '/\n\n/{ sub(/^[^\n]+\n/, ""); print $0 RT }' file
RS='[<>]'
-считать <
и >
разделителями записей /\n\n/
-если текущая запись содержит 2 разрыва строки :sub(/^[^\n]+\n/, "")
-удалить все до 1-й новой строки (включительно)print $0 RT
-распечатать текущую запись, за которой следует RT
(, т.е.>
)RT
-терминатор записи. Gawk
устанавливает RT
на входной текст, который соответствует символу или регулярному выражению, указанному RS
. Выход:
<empty line>
don't delete this>
Проверить, синхронизирована ли хронология с командами
Вы можете использовать специальные команды chrony для проверки состояния ntp. Если вы хотите просмотреть информацию о текущем ntp-сервере, используйте
chronyc tracking
Для отображения всех серверов ntp
chronyc sources
Для получения дополнительной информации см. :fedora -проверить, синхронизирована ли хронология
Комбинация с анзиблом
Ансибл-модуля нет, но есть другой способ.
У вас все еще должна быть утилита ntpstat, которая также работает для хрони. Коды возврата дают информацию о статусе ntp. 0 для синхронизированных часов, 1 для несинхронизированных и 2, если состояние часов не определено. См. справочную страницу
.Вы можете убедиться, что
ntpstat
echo $?
Если вы используете командный модуль ansible для запуска ntpstat, он по умолчанию завершается ошибкой, если код возврата команды не равен 0. Так что в этом случае мы можем использовать это в своих интересах. Создайте простой плейбук, который запускает команду ntpstat.
- name: Check if chrony is synchronized
command: ntpstat
Запустите playbook для нужной группы хостов. Все хосты, которые выходят из строя, не имеют синхронизированного ntp.
Чтобы пойти дальше, вы можете скопировать глобальную конфигурацию chrony (chrony.conf )на все хосты и перезапустить службу chronyd с помощью ansible, если код возврата не равен 0.
- name: Check if chrony is synchronized
command: ntpstat
register: ntpstat_rc
ignore_errors: true
- name: Copy chrony configuration
copy:
src: <global chrony.conf on your ansible server>
dest: /etc/chrony.conf
backup: yes
when: ntpstat_rc.rc != 0
- name: Restart chrony service
systemd:
name: chronyd
state: restarted
when: ntpstat_rc.rc != 0
Надеюсь, это поможет.
Удачи