Обновление системы после рестарта
На АРМ (или сервере) создать сервис
[Unit]
Description=Update system
After=rc-local.service network-online.target
Before=getty.target
Before=systemd-user-sessions.service
[Service]
StandardOutput=tty
Type=oneshot
ExecStart=/usr/local/bin/update.sh
[Install]
WantedBy=multi-user.target
Выполнить обновление сервисов и добавить новый сервис в автозагрузку
systemctl daemon-reload
systemctl enable update.service
Для автоматического обновления, создать скрипт скрипт /usr/local/bin/update.sh
#!/bin/bash
clear
# вносим в /etc/apt/sources.list используемые репозитории (для примера - репозиторий server, работающий по протоколу ftp):
echo "deb ftp://server/repo/smolensk/disk smolensk main contrib non-free" > /etc/apt/sources.list
echo "deb ftp://server/repo/smolensk/update smolensk main contrib non-free" >> /etc/apt/sources.list
echo "Updating system, please wait..."
echo "Do not turn off your computer!"
apt-get update &> /dev/null
apt-get -y dist-upgrade &> /dev/null
apt-get -y install -f &> /dev/null
rm -f /etc/systemd/system/multi-user.target.wants/update.service
systemctl daemon-reload
rm -f /usr/local/bin/update.sh
reboot
Сделать файл исполняемым
chmod +x /usr/local/bin/update.sh
4 февраля 2022 г.
Обновление AstraLinux 1.6 после рестарта
Запуск Firefox в отличном от 0 уровне безопасности в AstraLinux 1.6.
Описание задачи:
В нулевой сессии пользователя запустить web-браузер firefox под уровнем отличным от нулевого.
Для решения будем использовать механизм sumac.
22 апреля 2021 г.
Сломались qcow2 диски qemu,kvm corrupted или все очень плохо прям
Доброго дня мне самому. В продолжении описание ситуации и восстановление
4 декабря 2020 г.
27 октября 2020 г.
Как достать файл из образа CloneZilla
Я дебил, но чтобы в этом убедиться, нужно было посмотреть содержимое образа
30 июля 2020 г.
Горячий резерв ALD
27 июля 2020 г.
Восстановить удаленный файл в Linux
Для начала посмотрим вывод программы
lsof
:$ lsof | grep myfile less 4158 root 4r REG 3,65 114383 1276722 /home/myfile (deleted)
myfile
— имя удаленного файла. Если видите такую строку, значит можно восстановить удаленный файл.Нас интересуют данные, которые я выделил жирным шрифтом. На основе их формируем команду ниже. Результат выполнения команды должен быть следующим:
ls -l /proc/4158/fd/4 lr-x------ 1 root root 64 Oct 11 17:17 /proc/4158/fd/4 -> /home/yfile (deleted)
Для восстановления файла осталось просто его скопировать:
cp /proc/4158/fd/4 /home/myfile_
20 июля 2020 г.
14 апреля 2020 г.
Cron каждые n-секунд, но лучше systemd
Cron для этих целей не шибко подходит, поэтому использовал systemd.
Детали под катом
27 января 2020 г.
Однонаправленный шлюз на iptables
C eth0 на eth1
gw
eth0 - х.х.х.х
eth1 - х.х.х.х
Правила на gw
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 DROP
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWART -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
17 января 2020 г.
17 апреля 2019 г.
15 апреля 2019 г.
Простенькая репликация postgres
Два сервера под управлением Astra Linux 1.5 с postgres 9.2 на борту
Настроена боевая база на мастере.
srv - master - 192.168.10.1
srv2 - slave - 192.168.10.2
Нужно:
1. Репликация
2. Балансировка
Делаем.
Первым шагом настраиваем реплику
На мастере:
В файле pg_hba.conf добавляем запись
host replication postgres 192.168.10.2/32 trust
В файле postgresql.conf:
max_wal_senders = 1 # количество подключаемых резервных серверов
max_keep_segments = 256 # Количество хранимых сегментов. Необходимо подобрать такое количество, чтобы резервных сервер успевал все забирать. Я влепил 256 (макс), чтобы за сутки wal не затирались
wal_level = hot_standby # hot_standby добавляет информацию, необходимую для запуска только для чтения запросов на резервный сервер
checkpoint_segments = 16 # Можно увеличить количество сегментов в wal-логе
На слейве
Создаем директорию, куда будет литься реплика
mkdir -p /DATA/main/
Добавляем локали ru_RU.UTF-8, en_US.UTF-8, для чего необходимо раскоментировать их в файле /etc/locale.gen. и выполнить команду:
locale-gen
Проверяем наличие в системе нужной локали
locale -a
Сносим старый кластер:
pg_dropcluster 9.2 main --stop
Создаем новый кластер с нужной локалью:
pg_createcluster --locale=ru_RU.UTF-8 -d /DATA/main 9.2 main
Удаляем оттуда все
rm -r /DATA/main/*
Запускаем pg_basebackup
pg_basebackup --host=192.168.10.1 --port=5432 --username=postgres -D "/DATA/main/"
После выполнения меняем владельца файлов даты
chown -R postgres /DaTA/main/
Стартуем кластер на слейве.
Если не стартуется в файле psotgresql.conf, на слейве, поменять
log_destination = 'stderr' на log_destination = 'syslog'
и искать ошибку в syslog
14 марта 2019 г.
Добавление локального принтера
Инструкция чисто, чтоб до автоматизма довести.
Добавляем пользователю группы lp и lpadmin, удаляем файл /etc/cups/client.conf. Рестартуем cups
12 марта 2019 г.
Astra Linux 1.5 и монтирование нулевого каталога в ALD
...монтирование нулевого каталога...ошибка...ну ты горегорюшко
Еще надо проверить, если монтируются каталоги по cifs, права на домашний каталог на сервере домашних каталогов, существование нулевого каталога.
3 марта 2019 г.
Ввод пароля пользователя в скрипте при подключении через SSH
Необходимо было написать скрипт, в котором нужно было подключаться к куче машин по ssh. Соответственно, на каждой fingerprint надо подтвердить и пароль пользователя ввести и наткнулся я на такое решение.
1. Устанавливаем, если не установлен, пакет expect.
sudo apt-get install expect
2. Создаем в каталоге файл /usr/bin/exp
sudo touch /usr/bin/exp
3. Помещаем туда следующие строки
#!/usr/bin/expect
set timeout 20
set cmd [lrange $argv 1 end]
set password [lindex $argv 0]
eval spawn $cmd
expect "passphrase for key"
send "$password\r";
interact
4. Теперь надо сделать этот файлик исполняемым
sudo chmod +x /usr/bin/exp
5. Вуаля и пример использования
exp <пароль> ssh -oStrictHostKeyChecking=no user@host.example.com
P.S.
Можно было бы сделать при помощи пакета sshpass, но вот у меня есть expect и нету sshpass. Так что вот так
Если есть возможность, не делайте такой велосипед, а делайте вот так
sudo apt-get install sshpass
sshpass -p <password> ssh user@host.example.com
4 декабря 2018 г.
Rtnetlink или как я на горячую настройки поменял
Порою, при смене настроек сети (/etc/network/interfaces) вовсе не поднимается сеть и при рестарте службы networking можно увидеть такое сообщение
RTNETLINK answers: File exists Failed to bring up eth1. done.
Это, скорее всего, маршрутизация сбоит.
Глянем этой командой маршруты
ip route
где
Находим там неподъемный интерфейс и смело удаляем запись командой
ip route delete 192.168.1.0/24 (айпи для примера)
и перезапустить networking :
/etc/init.d/networking restart
Ну и конечно убедиться, что руки не кривые и конфиг без ошибок.
Еще, как выяснилось опытным путем, система критична в порядку поднятия интерфейсов, поэтому надо поднимать сначала eth0 потом все остальные по порядку.
В Astra Linux 1.5 Special Edition Smolensk
Я до кучи удалил файл /etc/udev/rules.d/70-persistance-net.rules (пишу по памяти, могу ошибаться в слове persistance). И ребутнул систему. Хотя с сервером такое не пройдёт. Будте внимательны, делайте бекапы.
13 февраля 2018 г.
X11 через SSH или боюсь простудиться в серверной
Пригодилось сегодня на работе, когда доступа в серверную нет, а работать надо.
6 февраля 2018 г.
Как сменить пароль админа и отключить LDAP в zabbix
Если все, как вам кажется, в порядке, но доступа нет делаем следующее: