Сдвиг дат не работает должным образом

Я только что исправил это на одном из своих тестовых серверов.

Ответ в службе поддержки Redhat.https://access.redhat.com/solutions/317083

Вот краткое изложение:

Необходимо убедиться, что файл /etc/pki/rpm -gpg/RPM -GPG -KEY -redhat -релиз содержит неповрежденный публичный ключ, который использовался для проверки подписи RPM-пакетов Red Hat. rpm -V redhat -выпуск -server -6Server можно использовать для проверки целостности ключевого файла. Если это показывает, что файл был изменен, либо

Неповрежденная версия файла (, т.е.из другой системы RHEL )следует скопировать в это место Или пакет RPM redhat -выпуск -сервер -6Server необходимо переустановить, развернув свежую версию файла /etc/pki/rpm -gpg/RPM -GPG -KEY -выпуск redhat -. Поскольку на данный момент RHEL не может проверить подпись пакета redhat -выпуска -сервера -6Server, эту проверку необходимо отключить с помощью параметров командной строки.

Убедившись, что установлен правильный файл /etc/pki/rpm -gpg/RPM -GPG -KEY -redhat -релиз, следует использовать следующую команду, чтобы сделать RPM знает ключ:

rpm --import /etc/pki/rpm -gpg/RPM -GPG -KEY -redhat -выпуск

Этот шаг решит проблему.

В качестве следующего шага следует выяснить, почему выпуск /etc/pki/rpm -gpg/RPM -GPG -KEY -redhat -был изменен в первую очередь, т.е. процедуры развертывания нужно модифицировать.

Основная причина

YUM/RPM в системе в настоящее время не доверяет ключу, который использовался для подписи пакета RPM, который будет установлен.

Кстати Попробуйте исправить ключи yum вместо установки с помощью rpm. Если вы устанавливаете с помощью RPM, он не будет обрабатывать зависимости, и yum может сломать вашу установку webmin при более поздних обновлениях yum. (если yum удаляет некоторые зависимости, необходимые вебмину)

Надеюсь, это поможет!

2
03.11.2021, 06:34
2 ответа

Расчеты производятся по местному времени, и на вас влияет переход на летнее время 27 марта.

Чтобы вместо этого выполнять расчеты по времени UTC (Временные метки Unix указаны не по местному времени ), используя недавний выпуск GNU awk, убедитесь, что вы передаете дополнительный 1в качестве последнего аргумента вmktime():

t = mktime(sprintf("%4d %.2d %.2d 00 00 00",
        substr($1,2,4),
        substr($1,6,2),
        substr($1,8,2)), 1);

Это расширение GNU awk, доступное в версии GNU awk4.2.0+.

В качестве альтернативы вы можете вместо этого не использовать время около полуночи (UTC )в качестве исходного времени суток:

t = mktime(sprintf("%4d %.2d %.2d 12 00 00",
        substr($1,2,4),
        substr($1,6,2),
        substr($1,8,2)));

Это заставит его работать в старых реализациях GNU awkи в любых других awk, которые имеют требуемые функции.

Еще один вариант — запустить скрипт с измененным местным часовым поясом.:

TZ=UTC awk -f script.awk inputfile

Это устанавливает для переменной среды TZзначение UTCдля выполнения сценария awk, который изменяет часовой пояс, используемый mktime()и связанными функциями.

11
03.11.2021, 06:54

Использование Raku (, ранее известного как Perl _6)

raku -pe 's/^ D <( (\d**4)(\d**2)(\d**2) )> \, /{ "$0-$1-$2".Date.earlier(:7days).Str.subst("-", :g); }/;'

Образец ввода (пустые строки удалены):

D20220327,S2927,977,1
D20220328,S2927,977,1
D20220329,S2927,977,1
D20220330,S2927,977,1
D20220331,S2927,977,1
D20220401,S2927,977,1
D20220402,S2927,977,1
D20220403,S2927,977,1
D20220404,S2927,977,1

Пример вывода:

D20220320,S2927,977,1
D20220321,S2927,977,1
D20220322,S2927,977,1
D20220323,S2927,977,1
D20220324,S2927,977,1
D20220325,S2927,977,1
D20220326,S2927,977,1
D20220327,S2927,977,1
D20220328,S2927,977,1

Вкратце, используются построчные (флаги автопечати)-peРаку в сочетании со знакомым оператором s///. Цифры захватываются в переменные соответствия $0, $1и $2со скобками, а маркеры захвата <( … )>используются для удаления всех других элементов совпадения.

Вместо этого Raku выполняет код внутри блока { … }. Захваты $0, $1и $2обозначаются соответствующими тире (-), и эта строка распознается как объект Date, для которого может быть вызван метод earlier(:7days). [Примечание :некоторые пользователи могут счесть написание earlier(days => 7)более знакомым синтаксисом --в любой форме]. Как только объект Dateпереводится на 7 дней назад, егоStr-ingified и substиспользуются для удаления тире(-)в возврате.

https://docs.raku.org/routine/Date
https://docs.raku.org/routine/Dateish
https://raku.org

1
03.11.2021, 07:47

Теги

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