Это старая версия документа.
Содержание
Резервирование файлов rsync
Вариант 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 в папку:
c:/cwrsync
- Создать ключи (все по умолчанию):
c:/cwrsync/bin/ssh-keygen.exe
- Скопировать содержимое файла:
c:/users/user/.ssh/id_ed25519.pub
Добавить в файл на ПЛК:
mcedit /home/jrobo/.ssh/authorized_keys
- Проверить работу ssh (должно логиниться без пароля):
c:/cwrsync/bin/ssh jrobo@192.168.2.210
Если будут жалобы типа
«permissions are too open…»
, через проводник поправить разрешения файлуc:/users/user/.ssh/id_ed25519
(src):* Свойства / Безопасность / Дополнительно * Оставить полный доступ только текущему пользователю и удалить разрешения всем остальным * Отключить наследование
- Добавить в конец файла
c:\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
Вариант 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
- Запустить
taskschd.msc
- Выбрать дереве
Библиотека планировщика заданий
- В главном меню
Действие / Создать папку
-promauto
. Выбрать созданную папку. - Правый клик
Создать простую задачу
- Имя
jroboplc_backup
- Ежедневно / Повторять каждый 1 день
- Запустить программу
d:\asutp\utils\jrbackup\jroboplc_backup_start.bat
, Рабочая папкаd:\asutp\utils\jrbackup
- Открыть свойства созданной задачи
- Триггеры, двойной клик по триггеру, установить
Повторять задачу каждые 1 ч
- Параметры, установить
Немедленно запускать задачу…