Синхронизация папок между двумя серверами

Я должен реализовать запасное решение (систему аутентификации) для внешнего приложения. Поэтому я должен держать папку auth моего основного сервера аутентификации синхронизированной с моими резервными серверами. Папка содержит несколько файлов .php, .bin и некоторые другие. К сожалению, я понятия не имею, как мне следует (например, ежечасно) синхронизировать эти папки с резервными серверами.

Все серверы используют CPanel / WHM, может быть, есть решение для этого или как я могу сохранить их синхронизированными в противном случае? Я подумал о скрипте .php, который входит в систему через FTP и синхронизирует их. Тогда я бы поставил cronjob для этого сценария .php. Но я даже не знаю, возможно ли это. Если основной сервер находится в автономном режиме, это, конечно, не должно негативно повлиять на мои резервные серверы.

Как / могу я это осознать?

1

Решение

Предложение Леонеля Атенсио о rsync великолепно.

Вот сценарий оболочки rsync, который я использую. Он находится в папке с именем /publish в моем проекте. Суть содержит файл rs_exclude.txt, упомянутый сценарием оболочки.

rsync.sh

# reverse the comments on the next two lines to do a dry run
#dryrun=--dry-run
dryrun=

c=--compress
exclude=--exclude-from=rs_exclude.txt
pg="--no-p --no-g"
#delete is dangerous - use caution.  I deleted 15 years worth of digital photos using rsync with delete turned on.
# reverse the comments on the next two lines to enable deleting
#delete=--delete
delete=

rsync_options=-Pav
rsync_local_path=../
[email protected]
rsync_server_path="/home/www.example.com"
# choose one.
#rsync $rsync_options $dryrun $delete $exclude $c $pg $rsync_local_path $rsync_server_string:$rsync_server_path

#how to specify an alternate port
#rsync -e "ssh -p 2220" $dryrun $delete $exclude $c $pg $rsync_local_path $rsync_server_string:$rsync_server_path

https://gist.github.com/treehousetim/2a7871f87fa53007f17e

работает через хрон

Cron
Источник

Отредактируйте свой crontab.

# crontab -e

Записи Crontab — по одной на строку. Символом комментария является символ фунта (#). Используйте следующий синтаксис для вашей записи cron.

В этих примерах предполагается, что вы поместили свой скрипт rsync.sh в ~/rsync
Эти примеры также создадут файлы журнала вывода rsync.

Каждую минуту

* * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log

Каждые 5 минут

*/5 * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log

Сохраните ваш crontab и выйдите из редактора. Вы должны увидеть сообщение, подтверждающее ваше добавление в crontab.

1

Другие решения

Я предлагаю вам использовать RSYNC, если вы не участвуете в плане общего хостинга.

Rsync, что означает «удаленная синхронизация», является удаленным и локальным файлом.
инструмент синхронизации. Он использует алгоритм, который минимизирует количество
данных, скопированных путем перемещения только тех частей файлов, которые изменились.

http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

Чтобы это работало, вам нужно иметь доступ к SFTP-порту на вашем сервере и, конечно же, к терминалу Linux !.

3

По вопросам рекламы [email protected]