Рубрики
Старье

Plesk — собираем все бэкапы на один сервер

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

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

Прежде всего создадим пользователя на backup.com, который будет выполнять процесс резервного копирования, например, backup:
adduser backup
passwd backup

После этого необходимо создать 2048-битный dsa ssh ключ, с помощью которого пользователь backup с сервера backup.com будет заходить на остальные сервера за резервными копиями:
ssh-keygen -b 2048 -C 'Backup' -f .ssh/identity -t dsa
Теперь у нас будет 2 файла — приватный .ssh/identity, который будет сохранен только у пользователя backup, и публичный .ssh/identity.pub, содержимое которого необходимо добавить на остальные сервера в файл .ssh/authorized_keys.
Затем создаем у пользователя backup файл .ssh/config со следующим содержимым:
Protocol 2,1
Host *
User root
Compression yes
ConnectionAttempts 10
KeepAlive no
CheckHostIP no
VerifyHostKeyDNS no
IdentityFile /home/backup/.ssh/identity

после чего необходимо выставить на него права доступа 600 (chmod 600 .ssh/config), и теперь пользователь backup с сервера backup.com может зайти на другие сервера по ssh без ввода пароля как root.

Первая часть готова, теперь необходимо сделать скрипт, который бы автоматизировал процесс. Создадим список серверов в файле list, каждое имя хоста в отдельной строке:
server1.com
server2.com
и т.д.
Затем при помощи следующего скрипта будем обходить список, создавая для каждого сервера отдельную директорию и помещая туда backup, нарезанный кусками на 1G — так их будет удобнее потом забрать по ftp:

#!/bin/sh
cd ~
for i in `cat list`; do
echo $i backup begin
[ -d $i ] || mkdir $i
cd $i
ssh $i '/usr/local/psa/bin/psadump -f - --nostop' | split -b1000m -d - $i.
cd ..
echo $i backup end
done

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *