REDOS: обновление с 7.3 до 8.0

RedOS 8 собран на другой архитектуре, поэтому так просто обновиться не получится. А еще жадная техподдержка просит действующую лицензию на техподдержку, для получения скрипта для обновления с 7 на 8. Однако в Яндекс найдется всё (с):

#!/usr/bin/sh
# Обновляем пакеты 
dnf upgrade --refresh 
# Заменяем версию 
sudo sed -i 's/7\.3/8.0/g' /etc/yum.repos.d/* 
rm -f /etc/yum.repos.d/RedOS-kernels6.repo 
# Обновляем систему 
dnf system-upgrade download --allowerasing 
# Удаляем неиспользуемые пакеты 
dnf autoremove 
dnf system-upgrade reboot 

После перезагрузки продолжить:

#!/usr/bin/sh
rm -f /etc/yum.repos.d/*.rpmnew 
dnf upgrade --refresh

Далее у меня вылезло несколько сломанных пакетов, которые фиксил следующим образом:

  1. В папке /etc/httpd/conf.d создалось несколько «лишних» файлов конфигураций, которые система туда поместила туда во время обновления и которые мешали работе моих файлов. Их просто удалил.
  2. Перестал запускаться mc, с ошибкой: /usr/bin/mc: symbol lookup error: /usr/bin/mc: undefined symbol: g_string_free_and_steal. Лечится: dnf install glib2 —best —allowerasing затем dnf update
  3. dnf update стал ругаться на ключи GPG. Решение: в /etc/yum.repos.d в фалах проставить gpgcheck=0
  4. PHP по умолчанию откатился к 8.1.34 (уязвимый). Решение: снова собрать всё из исходников с патчем

Кроме того, появился ряд сломанных пакетов. Лечил:

dnf remove qt5-qtlocation
dnf remove qt5-qtbase
dnf update perl-libs --best --allowerasing
dnf update
dnf install libicui18n*
dnf update

После чего всё вроде начинает работать без ошибок. Ну или с ошибками, но не явными. В случае нахождения оных, пост будет дополнятся.

Подсчет количества открытий страницы в минуту

Задача: вывести счетчик посещений определенной web страницы в минуту.

Решение: простой способ «в лоб» — парсить логи apache

#!/bin/bash
cat /var/log/httpd/access_log | grep $(date --date '-1 min' '+%R') | grep invoice -c >/var/www/html/cnt.txt

Пакетное сжатие файлов JPG

Задача: сжать файлы формата JPG во всех встречающихся папках.

Решение: воспользуемся утилитой jpegoptim совместно с find:

find . -name "*.jpg" | xargs jpegoptim -f -m 70

Открытие URL ссылки на 1с в Linux

Задача: необходимо чтобы при нажатии на URL вида: e1c://server/srv-1c/basename#e1cib/data/%D… автоматически открывалась 1С с открытым документом.

Решение: Linux открывает подобные ссылки в почте и прочих местах через утилиту xdg-open, которая в свою очередь открывает такие ссылки в т.ч. согласно ярлычкам *.desktop находящимся в  ~/.local/share/applications/. Следовательно достаточно разместить там файл с содержимым:

[Desktop Entry]
Exec=/opt/1cv8/common/1cestart /url %U
Name=1C:Enterprise x64
GenericName=1C:Enterprise x64
Terminal=false
TryExec=/opt/1cv8/common/1cestart
Type=Application
MimeType=x-scheme-handler/e1c
NoDisplay=true

И далее перечитать кэш связей протокола:

update-desktop-database ~/.local/share/applications

Подпись при помощи ЭЦП файла из консоли Linux

Посмотреть сертификаты:

/opt/cprocsp/bin/amd64/certmgr -list

Подписать файл:

/opt/cprocsp/bin/amd64/cryptcp -signf t.log -dn "L=ВОЛОГДА ГОРОД"

Ключ -signf означает, что будет создан файл с подписью t.log.sig

в параметре -dn нужно перечислить критерии поиска первого подходящего сертификата в хранилище. Критерии смотрим в строке «Субьект» в списке сертификатов

1 2 3 … 11