🔁 Автоматическая передача файлов между серверами через rsync и SSH

1) Подготовка SSH-ключа

ssh-keygen -t ed25519 -C "rsync-sync" -f ~/.ssh/rsync_sync
ssh-copy-id -i ~/.ssh/rsync_sync.pub user@remote-host

2) Тест синхронизации

rsync -avz --delete \
  -e "ssh -i ~/.ssh/rsync_sync" \
  /data/source/ user@remote-host:/data/backup/

3) Скрипт автоматизации

#!/usr/bin/env bash
set -euo pipefail

SRC_DIR="/data/source/"
DST_HOST="user@remote-host"
DST_DIR="/data/backup/"
SSH_KEY="$HOME/.ssh/rsync_sync"

rsync -az --delete --stats \
  -e "ssh -i ${SSH_KEY} -o StrictHostKeyChecking=accept-new" \
  "${SRC_DIR}" "${DST_HOST}:${DST_DIR}"

Сохраните как /usr/local/bin/rsync-sync.sh и сделайте исполняемым:

sudo chmod +x /usr/local/bin/rsync-sync.sh

4) Запуск по расписанию (cron)

crontab -e
*/15 * * * * /usr/local/bin/rsync-sync.sh >> /var/log/rsync-sync.log 2>&1