Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:jroboplc:setup_rsync [2024/02/22 13:35] denis [Вариант 1 (рекомендуемый)] |
doc:jroboplc:setup_rsync [2024/03/26 15:38] (текущий) denis [Вариант 1 (рекомендуемый)] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Резервирование файлов ПЛК через rsync ====== | + | ====== Резервирование файлов rsync ====== |
+ | man rsync [[https://linux.die.net/man/1/rsync|en]] [[http://www.opennet.ru/man.shtml?category=1&russian=0&topic=rsync|ru]] | ||
===== Вариант 1 (рекомендуемый) ===== | ===== Вариант 1 (рекомендуемый) ===== | ||
* Установить rsync на ПЛК:<code bash> | * Установить rsync на ПЛК:<code bash> | ||
- | sudo apt install rsync</code>или установить вручную https://packages.ubuntu.com/jammy/rsync:<code bash> | + | sudo apt install rsync</code>или установить вручную (выбрать нужную версию ubuntu) https://packages.ubuntu.com/jammy/rsync:<code bash> |
sudo dpkg -i rsync_3.2.7-0ubuntu0.22.04.2_amd64.deb</code> | sudo dpkg -i rsync_3.2.7-0ubuntu0.22.04.2_amd64.deb</code> | ||
- | * Запустить сервис:<code> | + | * Запустить сервис:<code bash> |
+ | sudo touch /etc/rsyncd.conf | ||
sudo systemctl start rsync | sudo systemctl start rsync | ||
sudo systemctl enable rsync</code> | sudo systemctl enable rsync</code> | ||
* Установить клиента на Windows https://www.itefix.net/cwrsync-client в папку:<code> | * Установить клиента на Windows https://www.itefix.net/cwrsync-client в папку:<code> | ||
- | c:/cwrsync</code> | + | d:\asutp\cwrsync</code> |
- | * Создать ключи (все по умолчанию):<code> | + | * Создать ключи (все по умолчанию):<code batch> |
- | c:/cwrsync/bin/ssh-keygen.exe</code> | + | d:\asutp\cwrsync\bin\ssh-keygen.exe</code> |
- | * Скопировать содержимое файла:<code> | + | * Скопировать содержимое файла:<code batch> |
- | c:/users/user/.ssh/id_ed25519.pub</code>Добавить в файл на ПЛК:<code> | + | c:\users\user\.ssh\id_ed25519.pub</code>Добавить в файл на ПЛК:<code bash> |
mcedit /home/jrobo/.ssh/authorized_keys</code> | mcedit /home/jrobo/.ssh/authorized_keys</code> | ||
- | * Проверить работу ssh:<code> | + | * Проверить работу ssh (должно логиниться без пароля):<code batch> |
- | c:/cwrsync/bin/ssh jrobo@192.168.2.210</code> | + | d:\asutp\cwrsync\bin\ssh jrobo@192.168.2.210</code>Если будут жалобы типа ''"permissions are too open..."'', через проводник поправить разрешения файлу ''c:/users/user/.ssh/id_ed25519'' ([[https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open|src]]):<code> |
- | * Добавить в конец файла ''c:\cwrsync\cwrsync.cmd'':<code batch> | + | * Свойства / Безопасность / Дополнительно |
+ | * Оставить полный доступ только текущему пользователю и удалить разрешения всем остальным | ||
+ | * Отключить наследование</code> | ||
+ | * Добавить в конец файла ''d:\asutp\cwrsync\cwrsync.cmd'':<code batch> | ||
SET params=-avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --delete --progress | SET params=-avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --delete --progress | ||
rem Далее прописать, что нужно синхоронизировать, например: | rem Далее прописать, что нужно синхоронизировать, например: | ||
- | rsync %params% jrobo@192.168.2.210:/data/jrobo-plc /cygdrive/c/bckp | + | 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/c/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/c/bckp | + | rsync %params% jrobo@192.168.2.210:/data/projects /cygdrive/d/asutp/bckp |
rem Каталог назначения должен быть создан заранее! | rem Каталог назначения должен быть создан заранее! | ||
</code> | </code> | ||
- | * Создать задачу:<code> | + | * Создать задачу ([[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks|src]]):<code batch> |
- | schtasks /create /sc hourly /mo 1 /tn rsync-jrobo /tr c:\cwrsync\cwrsync.cmd | + | schtasks /create /sc hourly /mo 1 /ru "SYSTEM" /tn rsync-jrobo /tr d:\asutp\cwrsync\cwrsync.cmd |
+ | </code> | ||
+ | * Удалить задачу:<code> | ||
+ | schtasks /delete /tn rsync-jrobo | ||
</code> | </code> | ||