Я должен реализовать запасное решение (систему аутентификации) для внешнего приложения. Поэтому я должен держать папку auth моего основного сервера аутентификации синхронизированной с моими резервными серверами. Папка содержит несколько файлов .php, .bin и некоторые другие. К сожалению, я понятия не имею, как мне следует (например, ежечасно) синхронизировать эти папки с резервными серверами.
Все серверы используют CPanel / WHM, может быть, есть решение для этого или как я могу сохранить их синхронизированными в противном случае? Я подумал о скрипте .php, который входит в систему через FTP и синхронизирует их. Тогда я бы поставил cronjob для этого сценария .php. Но я даже не знаю, возможно ли это. Если основной сервер находится в автономном режиме, это, конечно, не должно негативно повлиять на мои резервные серверы.
Как / могу я это осознать?
Предложение Леонеля Атенсио о rsync великолепно.
Вот сценарий оболочки rsync, который я использую. Он находится в папке с именем /publish
в моем проекте. Суть содержит файл rs_exclude.txt, упомянутый сценарием оболочки.
# 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
Отредактируйте свой 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.
Я предлагаю вам использовать RSYNC, если вы не участвуете в плане общего хостинга.
Rsync, что означает «удаленная синхронизация», является удаленным и локальным файлом.
инструмент синхронизации. Он использует алгоритм, который минимизирует количество
данных, скопированных путем перемещения только тех частей файлов, которые изменились.
http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/
Чтобы это работало, вам нужно иметь доступ к SFTP-порту на вашем сервере и, конечно же, к терминалу Linux !.