Архив рубрики: Linux

Наработки и статьи по работе с Linux

MySQL временное отключение триггеров

К сожалению «штатной» возможности на данный момент нет. Можно только сделать «финт ушами», и в триггер добавить проверку на необходимость срабатываний. Например вот так:

	IF @LB_DISABLE_TRIGGERS IS NULL OR @LB_DISABLE_TRIGGERS = 0 THEN
		SELECT `vg_id` INTO l_vg_id FROM `usbox_services` WHERE `serv_id` = OLD.`serv_id`;
		CALL CHARGE_IMPL(l_vg_id, OLD.`agrm_id`, OLD.`period`, OLD.`c_date`, -OLD.`amount`);
	END IF;

А в нужный момент, выполнять:

set @LB_DISABLE_TRIGGERS=1;

Не запускается PAC на Ubuntu 17.10

После обновления с 16.4 до 17.10, PAC перестал запускаться — сегфолт при запуске. Рецепт исправления нагуглил такой:

apt install libglib2.0-dev libpango1.0-dev libvte-dev libvte-2.91-dev dh-make-perl libgtk2.0-dev
cpan -i ExtUtils::Depends
cpan -i ExtUtils::PkgConfig
dh-make-perl --cpan Gnome2::Vte --build
dpkg -i libgnome2-vte-perl_0.11-1_amd64.deb libgnome2-vte-perl-dbgsym_0.11-1_amd64.ddeb
find /opt/pac/ -name "Vte.so*" -exec rm {} +

Одно НО!  PAC теперь нормально открывается только из консоли.

Синхронизация папок удаленных серверов с локальной машиной посредством ansible

Задача: есть кучка серверов, на которых нужно поддерживать в актуальном состоянии все скрипты.

Решение: используем ansible

1) Создаем файл конфигурации ansible.cfg

[defaults]
hostfile = /home/pavel/ansible/inventory/inventory
sudo_user = root
user=pavel
remote_user = root
control_path_dir = /home/pavel/.ansible/cp
log_path = /home/pavel/logs/ansible.log

, куда занесем некоторые основные значения, чтобы каждый раз не вставлять в параметры

2) Сделаем доступ по ssh без ввода пароля

3) Создадим файл inventory

[cdvol]
13.27.142.21 ansible_ssh_user=pavel
21.147.18.11 ansible_ssh_user=pavel

, где создали группу и перечислили хосты этой группы

4) Создадим playbooks

---
- hosts: cdvol
  tasks:
  - name: remove folder
    shell: "rm -R -r -f /home/pavel/cd_service"  
  - name: create folder
    shell: "mkdir /home/pavel/cd_service"
  - name: sync
    synchronize: src=/home/pavel/ansible/files/ dest=/home/pavel/cd_service/ mode=push

5) Ну и запустим наши потуги:

ansible-playbook -i /home/pavel/ansible/inventory/inventory /home/pavel/ansible/playbooks/start_update.yml

Настройка Ubuntu Server для отправки почты (не почтовый сервер)

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

echo test | sendmail -v vasya@mail.ru

,ножно его сначала слегка настроить. Проще всего, используя ssmtp

sudo apt-get install ssmtp

Затем редактируем файл /etc/ssmtp/ssmtp.conf

hostname=xn--90acbu5aj5f.xn--p1ai
root=weryfgy@wdwedwe.ru
www=weryfgy@wdwedwe.ru
mailhub=mail.ifeirh.ru
rewriteDomain=wdwedwe.ru
AuthUser=weryfgy@wdwedwe.ru
AuthPass=weuhdfi

Одно Но! Вам нужно для этого иметь почту где-то, где нет обязательной авторизации по SSL/TLS.