ee /etc/csh.cshrc
set prompt = "%{^[[40;32;1m%}`whoami`@%m:%{^[[40;33;1m%}%~ %#%{^[[40;0;0m% } "
192.168.0.1 = master 192.168.0.2 = slave1 192.168.0.3 = slave2
Завдання – синхронізація файлів віртуальних хостів. Використовуватимемо rsync у зв'язці з ssh.
pkg install rsync
Для цього на першому сервері (з якого зливатимемо бекапи) правимо вайл конфіга sshd
ee /etc/ssh/sshd_config
і в кінець додамо:
Match Host 192.168.1.*,172.0.0.1/27 PermitRootLogin yes # without-password PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys HostbasedAuthentication не PermitEmptyPasswords no
цим кодом, дозволяємо вхід під рутом тільки для описаних хостів у перевірці (можна вказати як хост так і мережу, розділяти комою без пробілів)
перед перезапуском сервісу sshd, обов'язково перевіряємо конфіг на помилки командою “sshd -t”, і якщо висновок порожній, значить помилок немає і можна перезапустити сервіс sshd:
service sshd restart
перевіряємо доступ по ssh з дозволених та інших хостів, і якщо пускає тільки з дозволених, значить все ок.
mkdir /root/.ssh chmod 0700 /root/.ssh touch /root/.ssh/authorized_keys chmod 0644 /root/.ssh/authorized_keys
pkg install rsync
mkdir /root/.ssh chmod 0700 /root/.ssh
ssh-keygen -t rsa -b 4096 -P "" -f /root/.ssh/root-key cat /root/.ssh/root-key.pub
вміст файлу /root/.ssh/root-key.pub потрібно записати у файл /root/.ssh/authorized_keys на сервері якого буде коннектиться (192.168.0.1 = master)
Далі на другому сервері створюємо, наприклад, /root/scripts/ файл, назвемо його sync.sh:
/usr/local/bin/rsync -e 'ssh -l root -i /root/.ssh/root-key' --progress -lzuogthvr --compress-level=9 --delete-after root@192.168.0.1: /opt/vhosts/sitename.ru/ /opt/vhosts/sitename.ru/ >> /root/logs/sync.sitename
sitename.ru - ім'я віртуального хоста
Дозволимо запуск:
chmod +x /root/scripts/sync.sh
Пропишемо в /etc/crontab:
0 */1 * * * root /root/scripts/sync.sh >/dev/null 2>&1
У моєму прикладі синхронізація виконується щогодини.