remote

Выполнение команд и обмен файлами с удалёнными устройствами с сервера

Зачем нужна

Команда даёт администратору низкоуровневый CLI-канал к устройствам напрямую с сервера, не открывая графическую сессию: скачать логи (logs), скопировать файл на устройство (put) или с устройства (get), выполнить произвольную команду (exec). По сути это «sudo по сети» через инфраструктуру RuDesktop — без SSH и предварительной настройки

Типичные случаи применения:

  • logs — массовый сбор клиентских логов с проблемного устройства для разбора инцидента, вместе с info.txt об оборудовании

  • put — точечная доставка файла на устройство (патч, скрипт, конфиг), когда не хочется создавать отдельную политику

  • get — забрать файл с устройства (конфиг, дамп, отчёт) для анализа на сервере

  • exec — выполнить разовую команду на конкретном устройстве из скрипта администратора без создания политики «Выполнить команду»

Важно

Команда требует мастер-пароль устройства — он берётся из БД, либо передаётся через --password. Без мастер-пароля устройство не пустит сервер и команда завершится ошибкой

Синтаксис

rude remote --id [ID_устройства] [--password password] [--loglevel level] logs [--source path] [--target path]
rude remote --id [ID_устройства] [--password password] [--loglevel level] put [путь/на_сервере] [путь/на_устройстве]
rude remote --id [ID_устройства] [--password password] [--loglevel level] get [путь/на_устройстве] [путь/на_сервере]
rude remote --id [ID_устройства] [--password password] [--loglevel level] exec [команда]

Параметры

Параметр

Описание

--id

Идентификатор устройства (server_id) — обязательный

--password

Пароль для подключения. Если не указан, используется мастер-пароль устройства из БД

--loglevel

Уровень логирования библиотеки соединения: error (по умолчанию), warning, info, debug

logs

Сбор логов клиента RuDesktop с устройства (по умолчанию в /tmp/<peer_id>/)

--source

Путь на устройстве (для подкоманды logs); если задан, скачивается только указанный файл или папка

--target

Локальный путь для сохранения логов (для подкоманды logs); по умолчанию /tmp/<peer_id>/

put [src] [dst]

Копирование файла с сервера на удалённое устройство

get [src] [dst]

Копирование файла с удалённого устройства на сервер

exec [команда]

Выполнение команды на удалённом устройстве

Примечание

Если параметр --password не указан — команда использует мастер-пароль устройства, сохранённый в БД. Если у устройства нет мастер-пароля, команда завершится ошибкой Please specify password

Пример

  1. Чтобы скачать логи с удалённого устройства на сервер, введите следующее:

    rude remote --id 123456789 logs
    

    После выполнения команды логи (root и пользовательские) будут загружены на сервер. Для каждой ОС используются разные пути:

    • WindowsC:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RuDesktop и C:\Users\<username>\AppData\Roaming\RuDesktop

    • Linux/root/.local/share/logs/RuDesktop и /home/<username>/.local/share/logs/RuDesktop

    • macOS/private/var/root/Library/Logs/RuDesktop

    По умолчанию логи сохраняются в /tmp/<peer_id>/. Рядом создаётся файл info.txt с основной информацией об устройстве и его ресурсах

    Чтобы загрузить логи в конкретный каталог, используйте флаг --target:

    rude remote --id 123456789 logs --target /var/log/peer_logs
    

    Чтобы скачать только указанный файл или папку с устройства, используйте флаг --source:

    rude remote --id 123456789 logs --source "C:\\Path\\To\\file.log" --target /tmp/peer.log
    
  2. Чтобы скопировать файл с сервера на удалённое устройство, введите следующее:

    rude remote --id 123456789 put /tmp/1.txt /home/user/1.txt
    

    После выполнения команды файл будет скопирован с сервера на удалённое устройство

  3. Чтобы скопировать файл с удалённого устройства на сервер, введите следующее:

    rude remote --id 123456789 get /home/user/1.txt /tmp/1.txt
    

    После выполнения команды файл будет скопирован с удалённого устройства на сервер

  4. Чтобы выполнить команду на удалённом устройстве, введите следующее:

    rude remote --id 123456798 exec mkdir /home/user/test
    

    После выполнения команды папка будет создана на удалённом устройстве по указанному пути