Резервирование файлов rsync

man rsync en ru

Вариант 1 (рекомендуемый)

  • Установить rsync на ПЛК:
    sudo apt install rsync

    или установить вручную (выбрать нужную версию ubuntu) https://packages.ubuntu.com/jammy/rsync:

    sudo dpkg -i rsync_3.2.7-0ubuntu0.22.04.2_amd64.deb
  • Запустить сервис:
    sudo touch /etc/rsyncd.conf
    sudo systemctl start rsync
    sudo systemctl enable rsync
  • Установить клиента на Windows https://www.itefix.net/cwrsync-client в папку:
    d:\asutp\cwrsync
  • Создать ключи (все по умолчанию):
    d:\asutp\cwrsync\bin\ssh-keygen.exe
  • Скопировать содержимое файла:
    c:\users\user\.ssh\id_ed25519.pub

    Добавить в файл на ПЛК:

    mcedit /home/jrobo/.ssh/authorized_keys
  • Проверить работу ssh (должно логиниться без пароля):
    d:\asutp\cwrsync\bin\ssh jrobo@192.168.2.210

    Если будут жалобы типа «permissions are too open…», через проводник поправить разрешения файлу c:/users/user/.ssh/id_ed25519 (src):

    * Свойства / Безопасность / Дополнительно
    * Оставить полный доступ только текущему пользователю и удалить разрешения всем остальным
    * Отключить наследование
  • Добавить в конец файла d:\asutp\cwrsync\cwrsync.cmd:
    SET params=-avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --delete --progress
    
    rem Далее прописать, что нужно синхоронизировать, например:
    rsync %params% jrobo@192.168.2.210:/data/jrobo-plc /cygdrive/d/asutp/bckp
    rsync %params% jrobo@192.168.2.210:/data/jrobo-rcp /cygdrive/d/asutp/bckp
    rsync %params% jrobo@192.168.2.210:/data/projects  /cygdrive/d/asutp/bckp
    
    rem Каталог назначения должен быть создан заранее!
  • Создать задачу (src):
    schtasks /create /sc hourly /mo 1 /ru "SYSTEM" /tn rsync-jrobo /tr d:\asutp\cwrsync\cwrsync.cmd
  • Удалить задачу:
    schtasks /delete /tn rsync-jrobo

Вариант 2 (устаревший)

Windows-клиент забирает файлы у linux-сервера при помощи rsync по ssh. Все действия выполняются на стороне windows-клиента под пользователем user.

cygwin

Скачать и распаковать в C:\ - cygwin32, cygwin64.

Или развернуть с нуля cygwin:

  • Root Install Directory: c:\cygwin
  • Local Package Directory: c:\cygwin_dist
  • Select Packages:
    • net/rsync
    • net/openssh
    • utils/mc
    • utils/dos2unix

ssh

C:\cygwin\Cygwin.bat 

Далее в терминале:

ssh-keygen -f ~/.ssh/id_rsa -q -P ""
ssh-copy-id -i ~/.ssh/id_rsa jrobo@<remote_ip>
ssh jrobo@<remote_ip>
exit
exit

rsync

Создать три файла в d:\asutp\utils\jrbackup.

backup_jroboplc_start.bat:

start /min backup_jroboplc.bat

backup_jroboplc.bat:

PATH=C:\cygwin\bin;%PATH%
dos2unix backup_jroboplc.sh
bash backup_jroboplc.sh
exit

backup_jroboplc.sh:

remote_host=192.168.2.210
remote_user=jrobo
remote_dir=/data/jroboplc/
backup_dir=/cygdrive/d/asutp/jroboplc_backup
mkdir -p ${backup_dir}
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --delete --progress ${remote_user}@${remote_host}:${remote_dir} ${backup_dir}

scheduler

  1. Запустить taskschd.msc
  2. Выбрать дереве Библиотека планировщика заданий
  3. В главном меню Действие / Создать папку - promauto. Выбрать созданную папку.
  4. Правый клик Создать простую задачу
    • Имя jroboplc_backup
    • Ежедневно / Повторять каждый 1 день
    • Запустить программу d:\asutp\utils\jrbackup\jroboplc_backup_start.bat, Рабочая папка d:\asutp\utils\jrbackup
  5. Открыть свойства созданной задачи
    • Триггеры, двойной клик по триггеру, установить Повторять задачу каждые 1 ч
    • Параметры, установить Немедленно запускать задачу…
doc/jroboplc/setup_rsync.txt · Последние изменения: 2024/03/26 15:38 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0