Назад | Перейти на главную страницу

Резервное копирование облачных сайтов Rackspace на локальный сервер

Я использую облачные сайты в стойке и не имею доступа к SSH или RSYNC на их серверах, но у меня есть доступ к SSHFS.

Я хотел бы иметь возможность сделать резервную копию моего облачного сайта на моем локальном сервере Ubuntu, на котором есть SSH, RSYNC и т. Д.

Пока я думаю, что лучший способ сделать это - смонтировать сайт на локальном сервере, используя:

sshfs username@remoteserver.com:/path-to-site/ ~/Sites_Mounted/site-name/ -o reconnect,cache=no,compression=yes,ServerAliveInterval=15

Reconnect - соединение восстановится, если оно разорвется

Cache = no - потому что нам нужны живые резервные копии, а не старые кешированные файлы

Сжатие - для минимизации использования полосы пропускания

ServerAliceInterval - поскольку SSHFS через долгое время отключается и вылетает

Затем я подумывал об использовании команды RSYNC для копирования файлов с множеством сайтов в каталог резервных копий на локальном сервере, а затем, когда следующая резервная копия должна быть через 12 часов, скопируйте / RSYNC каталог резервных копий в новый каталог резервных копий (с другим именем, т.е. 2012-01-01-sitename), затем с помощью команды RSYNC скопируйте только изменения на удаленном сервере в новый каталог резервных копий, содержащий старую / предыдущую резервную копию.

Мои вопросы: сработает ли этот подход? Если да, то какие команды мне нужно будет использовать и можно ли включить все их в один сценарий .sh, который я мог бы запустить?

Или есть более простой, более эффективный или лучший способ сделать это.

(Я думаю, что могу заархивировать весь сайт на сервере и загрузить его, но это кажется немного ресурсоемким)

Мне пришлось клонировать несколько облачных серверов, вот мой подход:

Остановите все работающие службы, если сможете. Если это не вариант, вам нужно будет создавать дампы и резервные копии базы данных отдельно (т.е. все, что использует mysql, redis, solr и т. Д.)

создать каталог в корне, т.е. / x

смонтируйте / dev / sda1 (или xvda1, или любой другой раздел вашей корневой системы) на / x (поскольку вы можете подключить одно устройство к двум разным точкам одновременно). Значение здесь в том, что вы не получите ошибок для устройства в / proc и т. д. Если вы используете lvm, моментальный снимок тоже отлично подходит для этого.

На данный момент у вас есть несколько вариантов. Если на вашем сервере достаточно места на диске, просто создайте каталог / y и выполните

tar -zcvf --exclude '/x/*' --exclude '/y/*' /y/root.tar.gz /x/

Если вы этого не сделаете, вы можете передать его другому узлу через ssh:

tar -zcvf - /x/ |ssh -i /blah.pem user@someplace.net 'cat - > /tmp/root.tar.gz'

В любом случае вы можете скачать архив.

Последний и, вероятно, самый простой, но, на мой взгляд, не идеальный вариант - это просто выполнить синхронизацию каталога / x / с вашим локальным компьютером.

Какой бы маршрут вы ни выбрали, если у вас есть большие базы данных или kruft, которые вам не нужны, вы экономите время, исключая их из процесса tar (простое копирование работающей базы данных может привести к повреждению копии базы данных).