Это старая версия документа.



Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/handler.php on line 1458

Warning: Declaration of syntax_plugin_tablecalc::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 41

Warning: Declaration of syntax_plugin_tablecalc::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 72

Warning: Declaration of syntax_plugin_offline::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 60

Warning: Declaration of syntax_plugin_offline::render($format, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 67

Warning: preg_match(): Compilation failed: invalid range in character class at offset 3416 in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

====== Резервирование файлов ПЛК через rsync ====== ===== Вариант 1 (рекомендуемый) ===== * Установить rsync на ПЛК:<code bash> sudo apt install rsync</code>или установить вручную https://packages.ubuntu.com/jammy/rsync:<code bash> sudo dpkg -i rsync_3.2.7-0ubuntu0.22.04.2_amd64.deb</code> * Запустить сервис:<code bash> sudo touch /etc/rsyncd.conf sudo systemctl start rsync sudo systemctl enable rsync</code> * Установить клиента на Windows https://www.itefix.net/cwrsync-client в папку:<code> c:/cwrsync</code> * Создать ключи (все по умолчанию):<code batch> c:/cwrsync/bin/ssh-keygen.exe</code> * Скопировать содержимое файла:<code batch> c:/users/user/.ssh/id_ed25519.pub</code>Добавить в файл на ПЛК:<code bash> mcedit /home/jrobo/.ssh/authorized_keys</code> * Проверить работу ssh:<code batch> c:/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> * Свойства / Безопасность / Дополнительно * Оставить полный доступ только текущему пользователю и удалить разрешения всем остальным * Отключить наследование</code> * Добавить в конец файла ''c:\cwrsync\cwrsync.cmd'':<code batch> 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/c/bckp rsync %params% jrobo@192.168.2.210:/data/jrobo-rcp /cygdrive/c/bckp rsync %params% jrobo@192.168.2.210:/data/projects /cygdrive/c/bckp rem Каталог назначения должен быть создан заранее! </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 </code> ===== Вариант 2 (устаревший) ===== Windows-клиент забирает файлы у linux-сервера при помощи rsync по ssh. Все действия выполняются на стороне windows-клиента под пользователем ''user''. ==== cygwin ==== Скачать и распаковать в ''C:\'' - [[http://prom-auto.ru/download/dist/cygwin32.rar|cygwin32]], [[http://prom-auto.ru/download/dist/cygwin64.rar|cygwin64]]. Или развернуть с нуля [[https://cygwin.com/install.html|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'': <code batch> start /min backup_jroboplc.bat </code> ''backup_jroboplc.bat'': <code batch> PATH=C:\cygwin\bin;%PATH% dos2unix backup_jroboplc.sh bash backup_jroboplc.sh exit </code> ''backup_jroboplc.sh'': <code bash> 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} </code> ==== scheduler ==== - Запустить ''taskschd.msc'' - Выбрать дереве ''Библиотека планировщика заданий'' - В главном меню ''Действие / Создать папку'' - ''promauto''. Выбрать созданную папку. - Правый клик ''Создать простую задачу'' * Имя ''jroboplc_backup'' * Ежедневно / Повторять каждый 1 день * Запустить программу ''d:\asutp\utils\jrbackup\jroboplc_backup_start.bat'', Рабочая папка ''d:\asutp\utils\jrbackup'' - Открыть свойства созданной задачи * Триггеры, двойной клик по триггеру, установить ''Повторять задачу каждые 1 ч'' * Параметры, установить ''Немедленно запускать задачу...''

doc/jroboplc/setup_rsync.1708603873.txt.gz · Последние изменения: 2024/02/22 15:11 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0