Home > linux > Скрипт синхронизации баз, сайтов и конфигов

Скрипт синхронизации баз, сайтов и конфигов

November 24th, 2010

С помощью данного скрипта можно синхронизировать папки сайтов, базы MySQL и конфиги виртуал-хостов апача и nginx с одного сервера на другой. Синхронизация баз происходит без остановку мускула.

#!/bin/bash

param=" --progress -plzuogthr --compress-level=9 --delete-after"
sitesfromserver1="site1.ru site2.ru site3.ru"
basesfromserver1="basesite1 basesite2 basesite3"

### Apache vhosts - Not need "update" parametr
rsync -e "ssh -p222"  --progress -plzogthr --compress-level=9 --delete-after /etc/httpd/vhosts root@server2.domain.com:/etc/httpd

### Nginx vhosts - Not need "update" parametr
rsync -e "ssh -p222"  --progress -plzogthr --compress-level=9 --delete-after /etc/nginx/vhosts root@server2.domain.com:/etc/nginx

### Sites sync
for site in $sitesfromserver1
    do
    rsync -e "ssh -p222" $param /usr/local/www/$site root@server2.domain.com:/usr/local/www
done

### MySQL bases sync
echo "Lock bases on Server1 and Server2"
echo "FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;" | /usr/bin/mysql -u backup -pPasWord
ssh -p222 root@server2.domain.com 'echo "FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;" | /usr/bin/mysql -u backup -pPasWord'

echo "Sleep 15s"
sleep 15s

# Bases from Server1
for base in $basesfromserver1
    do
    rsync -e "ssh -p222" $param /var/lib/mysql/$base root@server2.domain.com:/var/lib/mysql
done

echo "Unlock bases"
echo "SET GLOBAL read_only = OFF; UNLOCK TABLES;" | /usr/bin/mysql -u backup -pPasWord
ssh -p222 root@server2.domain.com 'echo "SET GLOBAL read_only = OFF; UNLOCK TABLES;" | /usr/bin/mysql -u backup -pPasWord'

/etc/init.d/mysqld restart
ssh -p222 root@server2.domain.com /etc/init.d/mysqld restart

linux ,

  1. June 17th, 2011 at 19:20 | #1

    Здравствуйте. Я хочу держать рабочую копию своих сайтов на другом сервере,что бы если упадет основной сервер, просто сменить NS и работали сайты.
    Этот скрипт подойдет?

  2. admin
    June 18th, 2011 at 05:08 | #2

    Да, подойдет, только обязательно протестируйте все. Чтобы не оказалось, что основной сервер упал, а на резервный как-то криво синхронизировалось.

    ЗЫ. Ну и порт для ssh-подключения поменять если надо.

  1. No trackbacks yet.
Если вас интересуют качественные скрипты для сайта, то советую вам этот веб-ресурс. .