на реплике создаем пользователя
sudo adduser replic
готовим папку
sudo mkdir -p /db/replic/in sudo chown -R replic:replic /db/replic/in sudo chmod 755 /db/replic /db/replic/in
Потом проверь от имени пользователя:
sudo -u replic sh -c 'touch /db/replic/in/test && rm /db/replic/in/test && echo ok'
• Шаг 2: на сервере-источнике, где лежит /db/replic/journal_archive и где будет крутиться rsyncupload, создай SSH-ключ для отправки на реплику.
sudo mkdir -p /root/.ssh sudo chmod 700 /root/.ssh sudo ssh-keygen -t ed25519 -f /root/.ssh/id_rsa -N ''
Шаг 3 тогда такой: с parkserver выполни, подставив адрес реплики:
ssh-copy-id -i /root/.ssh/id_rsa.pub replic@АДРЕС_РЕПЛИКИ
Например, если реплика 1.6.1.10:
ssh-copy-id -i /root/.ssh/id_rsa.pub replic@1.6.1.10
он спросит пароль пользователя replic на реплике и сам положит ключ в authorized_keys. После этого сразу проверь:
ssh -i /root/.ssh/id_rsa replic@АДРЕС_РЕПЛИКИ 'echo ok'
Должно вернуть ok без пароля.
потом ставим стек rsyncupload
services:
rsyncupload:
image: ghcr.io/infoparkpro/rsyncupload:latest
container_name: rsyncupload
restart: unless-stopped
environment:
TZ: Europe/Moscow
RSYNCUPLOAD_SOURCE_DIR: /source
RSYNCUPLOAD_DEST_USER: replic
RSYNCUPLOAD_DEST_HOST: 1.6.1.10
RSYNCUPLOAD_DEST_DIR: /db/replic/in
RSYNCUPLOAD_INTERVAL_SEC: 60
RSYNCUPLOAD_SSH_KEY: /run/secrets/rsyncupload_ssh_key
RSYNCUPLOAD_KNOWN_HOSTS: /root/.ssh/known_hosts
volumes:
- /db/replic/journal_archive:/source
- /root/.ssh/known_hosts:/root/.ssh/known_hosts:ro
secrets:
- rsyncupload_ssh_key
secrets:
rsyncupload_ssh_key:
file: /root/.ssh/id_rsa