ee /etc/csh.cshrc
set prompt = "%{^[[40;32;1m%}`whoami`@%m:%{^[[40;33;1m%}%~ %#%{^[[40;0;0m% } "
====== Rsync ======
192.168.0.1 = master
192.168.0.2 = slave1
192.168.0.3 = slave2
====== 192.168.0.1 = master ======
Завдання – синхронізація файлів віртуальних хостів.
Використовуватимемо 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
====== 192.168.0.3 = slave1 ======
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
У моєму прикладі синхронізація виконується щогодини.
[[https://wiki.enchtex.info/tools/console/rsync?do=source]]