понедельник, 21 марта 2011 г.

Молодец и умничка или как корректно скопировать Openfire на новый сервер

Это я сегодня такой хороший :-)
А всё потому, что добил таки давно мучивший меня вопрос: "Как корректно скопировать jabber-сервер Openfire на другой компьютер (или обновить на нынешнем компьютере), и не потерять при этом настроек?"
В руководстве написано кратко, ну, для умных: "1. Остановите сервер командой stop. 2. Скопируйте установочный каталог Openfire. 3. Сделайте копию базы данных (Примечание: если вы используете встроенную базу данных, то это уже выполнено в п.2)."

И вот с этим-то я и бился. Сначала искал, где же он, этот установочный каталог? Не-ет, не C:\Program Files\Openfire! Мало того, что /usr/share/openfire, так ещё и компоненты раскиданы по разным каталогам, а в установочном только линки на них. Ну, ничего, это я понял, заодно понял, что линки обозначаются в консоли красивеньким голубым цветом, в mc они обозначаются тильдой (это вот такая: "~"). До кучи выяснил, куда писать настройки прокси, чтобы apt-get мог ходить в интернет за пакетами.

Копируется всё, кстати, одной простой командой:
cp -LRp ./openfire/ /home/%username%/arhiv/
(L - следовать линкам, R - рекурсивно, с подкаталогами, p - сохранять права на файлы и каталоги)

Как же я намаялся с этими пермишенами! Это вот которые должны сохраняться ключом -р.
Конечно, просветлённые гуру вполне могут обозвать меня идиотом, но я таскал скопированные файлы сначала к себе на комп, а потом уже со своего на целевой, на котором ставится эксперимент по "поднятию" новой копии Openfire. И в процессе переезда все права у файлов заменялись на что-то непотребное! Во-первых, у них у всех владелец смненился с openfire на мою учётку, во-вторых все файлы стали исполняемыми! А это непорядок.

Но и это, оказывается, можно победить, если предварительно затолкать всё в архив на исходном компьютере. Правда, zip-а там не нашлось, но меня и tar вполне устроил.

Значит, что мне пришлось сделать в итоге:
1. Логинимся на компьютер источник ssh username@jabber
2. Даём команду остановить наш маленький, но гордый джаббер-сервер: sudo /etc/init.d/openfire stop
3. Переходим в каталог Openfire: cd /usr/share/openfire
4. Копируем весь Открытый Огонь (яндекс перевёл, я-то чё?): cp -LRp ./openfire/ /home/username/arhiv/
5. Запускаем сервер обратно, а то народ не сможет общаться: /etc/init.d/openfire start
6. Переходим в каталог с архивом: cd /home/username/arhiv
7. Создаём архивный файл: sudo tar -cf openfire.tar ./openfire/ (sudo - потому что владельцем является openfire и простому пользователю архив создать не удастся)
8. Можно отключаться от компьютера-источника.
9. Перенести архив .tar на целевой компьютер. У меня получилось только подключиться по samba к источнику, скопировать к себе. Потом по samba же скопировать на целевой.
10. Остановить Openfire на целевом компьютере: sudo /etc/init.d/openfire stop (естественно, предварительно его надо там установить, но это почти просто)
11. Распаковать .tar архив. Мне помог Midnight Commander, но можно и в консоли, там не сложно.
12. Владелец у файлов всё-таки слетел, но это чинится одной командой: sudo chown -R openfire: openfire (выполнять в каталоге с распакованным openfire)
13. Скопировать все каталоги по местам. МС в этом вопросе рулит.
14. Запустить Openfire командой: /etc/init.d/openfire start

Всё. Правда, я на всякий случай перезагрузил целевой компьютер полностью. И получил рабочую копию своего сервера, но уже не 3.6.4, а 3.7.0, что не может не радовать.

Теперь можно и на живой сервер накатывать новую версию. Хотя, если честно, не мешало бы там обновить всё, начиная с операционной системы. А то у меня там до сих пор Ubuntu 7.04, а это 2007 год. Может, стоит попробовать?

Комментариев нет :

Отправить комментарий