6 заметок с тегом

ubuntu

Бекап VestaCP в облако на примере Google Drive (Ubuntu 16.04)

Эта инструкция написана для меня, но воспользоваться ей может любой, нужны базовые знания консоли linux, минут 30 на настройку.

Для начала нам необходимо установить Rclone:
Заходим под рутом

sudo su

Скачиваем и устанавливаем Rclone

curl https://rclone.org/install.sh | sudo bash

Запускаем настройку Rclone

rclone config

Создаем новый профиль Rclone

No remotes found — make a new one
n) New remote
s) Set configuration password
q) Quit config

n/s/q> n

Задаем имя (тут вы можете назвать как угодно)

name> gdrive

Выбираем сервис.
У меня гуглдиск оказался под номером 13, возможно в дальнейшем номер изменится.

13 / Google Drive
\ «drive»

Storage> 13

Тут нам необходимо получить авторизацию у google.
Переходим по ссылке и авторизуемся под своим аккаунтом: https://code.google.com/apis/console/

Создаем проект и даем ему имя → Заходим в проект → Заходим в библиотеки → Ищем Google Drive API → Включаем → Переходим в Учетные данные → Настроить окно запроса доступа → Заходим в Учетные данные → Создаем Идентификатор клиента OAuthДругие типы → Получаем ключи:
Идентификатор клиента и Секретный код клиента, они нам и нужны.

Скринкаст:

Продолжаем настройку Rclone
Вводим Идентификатор клиента

client_id> Ваш идентификатор клиента (Client ID)

Вводим Секретный код клиента

client_secret> Ваш код клиента (Secret code)

далее выбираем

Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default («„).
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ „drive“
2 / Read-only access to file metadata and file contents.
\ „drive.readonly“
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ „drive.file“
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ „drive.appfolder“
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ „drive.metadata.readonly“

scope> 1

Далее настройка упрощается, нажимаем Enter

ID of the root folder
Leave blank normally.

Fill in to access «Computers» folders (see docs), or for rclone to use
a non root folder as its starting point.

Note that if this is blank, the first time rclone runs it will fill it
in with the ID of the root folder.

Enter a string value. Press Enter for the default («„).

root_folder_id>

Еще раз нажимаем Enter

Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default («„).

service_account_file>

Далее

Edit advanced config? (y/n)
y) Yes
n) No (default)

y/n> n

Далее

Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No

y/n> n

Переходим по этой ссылке в браузере и копируем ваш верификационный код

Please go to the following link: https://accounts.google.com/o/oauth2/auth?.....
Log in and authorize rclone for access

Enter verification code> Ваш код

Далее
Configure this as a team drive?
y) Yes
n) No (default)

y/n> n

И в завершении настройки получаете такое сообщение:

——————————
[gdrive]
type = drive
client_id = Ваш идентификатор клиента (Client ID)
client_secret = Ваш код клиента (Secret code)
scope = drive
token = {«access_token»:» ¯\_(ツ)_/¯ «,«expiry»:«2020-05-07T20:49:03.221799741+03:00»}
——————————
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote

Проверяем настройки и вводим y

y/e/d> y

Дальше программа показывает нам созданный профиль и спрашивает что делать дальше

Current remotes:

Name Type

==== ====

gdrive drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config

Выходим

e/n/d/r/c/s/q> q

Rclone установлен и настроен

Пробуем скопировать содержимое папки на свой сервер (критично к регистру)

rclone copy /backup/ gdrive:Backup/Myserver/ -P

Если всё копируется, то будем настраивать синхронизацию по времени.
Т. к. веста не умеет от рута запускать скрипты, настроим крон сами:

sudo nano /etc/crontab

И в конце файла добавляем следующий код (выполняется каждый день в 4 часа):

0 4 * * * root rclone sync /backup/ gdrive:Backup/Myserver/

P.s. Настройка Cron.

 Нет комментариев    14   29 дн   backup   google drive   ubuntu   vesta   vestacp

Миграция VestaCP

Всё под рутом:

Чтобы не было ошибки:

command not found

Нужно обновить пусть, он сбрасывается при каждом logout:

export PATH=$PATH:/usr/local/vesta/bin

Далее:

v-backup-users
ls /backup
admin.2018-04-11_13-07-02.tar  exampleuser.2018-04-11_13-07-02.tar

Копируем на новый сервер:

scp /backup/* root@panel.example.com:/backup/

На новом сервере:

v-restore-user admin admin.2018-04-11_13-07-02.tar
 Нет комментариев    5   1 мес   ubuntu   vesta   vestacp

Ubuntu при закрытой крышке ноутбука

У меня домашний сервер VestaPC на базе ноутбука samsung n150 plus хрен знает какого года, стоит на столе, ну и крышка закрыта. Для работы с закрытой крышкой нашел такое решение:

sudo nano /etc/systemd/logind.conf

Найти:

#HandleLidSwitch=suspend

Заменить:

HandleLidSwitch=ignore
sudo service systemd-logind stop
sudo service systemd-logind start
sudo reboot
 Нет комментариев    7   1 мес   ubuntu

Переименования пользователя Ubuntu

Создаём нового пользователя:

sudo useradd -m backupuser

Даём ему пароль:

sudo passwd backupuser

Добавляем ему sudo:

usermod -a -G sudo backupuser

Заходим под другим пользователем и в терминале пошагово выполняем следующие операции:
Получаем рутовую консоль:

sudo -i

или

sudo su

Убиваем все оставшиеся процессы пользователя, которого хотим переименовать:

killall -u old

Смотрим ID пользователя и его группы:

id old

Меняем имя пользователя:

usermod -l new old

Меняем его группу:

groupmod -n new old

Перемещаем домашний каталог:

usermod -d /home/new -m new

Сверяем ID с теми, которые получены ранее:

id new
 11   2016   linux   password   ubuntu   настройка

Настройка отправки email уведомлений в zabbix 2.4

Введение

Поле установки сервер мониторинга Zabbix не настроен на отправку уведомлений о сработавших триггерах. Более того, штатный функционал по отправке оповещений на email не умеет авторизовываться на почтовом сервере. То есть вы сможете использовать эту возможность только если у вас есть свой собственный почтовый сервер, на котором вы разрешите заббиксу отправлять уведомления без авторизации.

Использовать в такой ситуации публичные сервера не получится. Это неудобно и не практично. Мне зачастую не хочется возиться с настройкой почтового сервера, гораздо удобнее и быстрее воспользоваться готовым. Этим мы и займемся далее — научим zabbix отправлять email уведомления с авторизацией на smtp сервере.

Настройка ssmtp для авторизации на почтовом сервере

Для отправки уведомлений на почту с помощью smtp авторизации нам понадобится почтовый клиент ssmtp. Установим его:

sudo apt-get install -y ssmtp

Теперь нужно настроить почтовый клиент на отправку писем через указанную учетную запись. Для этого открываем файл /etc/ssmtp/ssmtp.conf и приводим его к следующему виду для отправки через почтовый сервер Яндекса:

sudo mcedit ssmtp.conf
root=zabbix@zeroxzed.ru
mailhub=smtp.yandex.ru:465
AuthUser=zabbix@zeroxzed.ru
AuthPass=password
AuthMethod=LOGIN
FromLineOverride=YES
UseTLS=YES
RewriteDomain=zeroxzed.ru
Hostname=zeroxzed.ru
Debug=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

В данном примере я использую почтовый домен zeroxzed.ru, он у меня прикреплен к Яндексу и обслуживается им. Если у вас обычный почтовый ящик, используйте адрес вида mailbox@yandex.ru.

Если вы хотите использовать учетную запись gmail то настройки ssmtp должны быть следующие:

root=mailbox@gmail.com
mailhub=smtp.gmail.com:587
RewriteDomain=gmail.com
AuthUser=mailbox
AuthPass=parolchik
Hostname=gmail.com
UseSTARTTLS=YES
AuthMethod=LOGIN
FromLineOverride=YES
UseTLS=YES
Debug=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

И редактируем там же файл revaliases, добавляя одну строку для яндекса:

root:zabbix@zeroxzed.ru:smtp.yandex.ru:465

И для gmail:

root:mailbox@gmail.com:smtp.gmail.com:587

Теперь проверим работу почтового клиента. Отправляем через консоль тестовое письмо:

echo «test_message» | ssmtp -v zeroxzed@gmail.com

[<-] 220 smtp3m.mail.yandex.net ESMTP
[->] EHLO zeroxzed.ru
[<-] 250 ENHANCEDSTATUSCODES
[->] AUTH LOGIN
[<-] 334 VXNlcb5hbDU6
[->] emFiYml4QEplcm94tmVkLnJ1
[<-] 334 UGFzR3dvc2Q6
[<-] 235 2.7.0 Authentication successful.
[->] MAIL FROM:
[<-] 250 2.1.0  ok
[->] RCPT TO:
[<-] 250 2.1.5  recipient ok
[->] DATA
[<-] 354 Enter mail, end with "." on a line by itself
[->] Received: by zeroxzed.ru (sSMTP sendmail emulation); Thu, 05 Nov 2015 18:32:18 +0300
[->] From: «root» 
[->] Date: Thu, 05 Nov 2015 18:32:18 +0300
[->] test_message
[->]
[->] .
[<-] 250 2.0.0 Ok: queued on smtp3m.mail.yandex.net as 1446737539-AXVW9QixF9-WJAWKNV9
[->] QUIT
[<-] 221 2.0.0 Closing connection.

Когда писал статью, не думал, что мне будут приходить на почту тестовые письма. Но долгое время не мог понять, что за сообщения с текстом test_message периодически прилетают в почту. Теперь понял, что это копипастом с этой статьи люди мне шлют тестовые письма. Не забывайте менять адрес получателя, мне ваши тестовые письма ни к чему :)

Все в порядке, письмо улетело. Если что, логи работы почтового клиента можно посмотреть в файле /var/log/maillog.

Email script для отправки оповещений

Отправлять почтовые уведомления из zabbix будем с помощью скрипта. Первым делом выясним, где наш заббикс хранит скрипты для оповещений. Для этого открываем файл конфигурации и ищем там строку AlertScriptsPath:

cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
AlertScriptsPath=/usr/lib/zabbix/alertscripts

Идем в указанную папку и создаем там скрипт отправки уведомлений на почту:

mcedit /usr/lib/zabbix/alertscripts/mail.sh
#!/bin/sh
export smtpemailfrom=zabbix@zeroxzed.ru
echo «To: $1» > /tmp/mymailinput
echo «Subject: $2» >> /tmp/mymailinput
echo «Content-Type: text/plain; charset=»utf-8»» >> /tmp/mymailinput
echo «From: \«Zabbix Zeroxzed\«<$smtpemailfrom>» >> /tmp/mymailinput
echo «» >> /tmp/mymailinput
echo «$3» >> /tmp/mymailinput
/usr/sbin/ssmtp $1 -F $smtpemailfrom < /tmp/mymailinput

Не забудьте указать свой почтовый адрес и поле отправителя From. Сохраняем скрипт и делаем его исполняемым:

chmod 0777 mail.sh

Настройка в Zabbix отправки уведомлений


Теперь идем в web интерфейс zabbix и настраиваем отправку оповещений на почту с smtp авторизацией. Для этого переходим в раздел Administration -> Media types и нажимаем на ссылку Email:

Заполняем необходимые параметры как на картинке:

Name Email
Type Script
Script name mail.sh

Сохраняем настройки, нажав Update. Дальше идем в раздел Administration -> Users. Меняем отображение с групп на пользователей:

Нажимаем на пользователя Admin и переходим на вкладку Media, там жмем на add. Откроется окно добавления источника оповещений. Заполняем как на картинке:

Нажимаем Update. Затем в разделе Media пользователя Admin еще раз жмем Update для применения настроек:

Теперь последний штрих, который лично я частенько забываю сделать, а потом долго разбираюсь, почему zabbix не отправляет оповещения на почту. Идем в раздел Configuration -> Actions и в единственной строке Report problems to Zabbix administrators жмем на Disabled в столбце статус, чтобы он стал Enabled:

Теперь все готово. Надо ждать срабатывания тригера и проверять почту. После срабатывания тригера и отправки заббиксом письма, в системном почтовом логе /var/log/maillog должны появиться записи об этом.

Отсюда: http://serveradmin.ru/nastroyka-email-opoveshheniy-v-zabbix/

 44   2016   email   linux   mail   ubuntu   yandex   zabbix
 2   2016   ubuntu