Функціональний блок FS_SHELL

Функціональний блок FS_SHELL виконує одне або кілька віддалених команд у інтерактивній оболонці.

Увага: Системні команди можуть загрожувати або пошкоджувати віддалену систему. Крім того, існуючі файли можуть бути перезаписані без попередження.

Файлову систему спочатку потрібно ініціалізувати за допомогою FS_INIT. Всі операції виконуються асинхронно для кожного створеного носія зберігання.

Вхід RUN

При позитивному фронті виконується вказана команда.

Вхід DEV

Визначає пристрій, з якого потрібно отримувати доступ до файлів. Пристрій використовується для проекту і може бути керований у контекстному меню під Проект Зовнішня пам'ять.

Вхід PATH

Вказує шлях до каталогу на носії зберігання. Шлях відповідає шляху файлу Unix у форматі UTF-8, якщо це підтримується. Шлях представлений наступним чином:

Папка/Підпапка

Використання шляху є необов'язковим. Якщо він встановлений, то перехід до цього каталогу повинен бути успішним, інакше виконувана команда не буде виконана.

Вхід CMD

Визначає всі команди, які потрібно виконувати. Всі команди повинні бути завершені кінцем рядка. Наприклад: "ls\n". Якщо не використовується кінець рядка, команда, ймовірно, не буде виконана. Команди виконуються по черзі після відповіді від сервера.

Після виконання всіх команд на кінці слід відправити "exit\n", щоб негайно завершити з'єднання та повернути значення. Після цього не слід відправляти жодної іншої команди, інакше вихід ERROR буде встановлений на TRUE.

Примітка: Якщо з'єднання неочікувано завершується і команда не була відправлена, вихід ERROR буде встановлений на TRUE.

Вхід PTY

Визначає тип консолі (псевдотермінал). Для деяких пристроїв цей параметр обов'язковий. Приклади: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" тощо. Якщо значення не визначено, використовується "vanilla".

Значення "exec" виконує запит через команду SSH операційної системи. Таким чином використовуються сучасні методи. Однак цей метод трохи менш ефективний. Вхід ENV встановлюється перед з'єднанням, тому він може бути ігнорований. Вхід SIZE ігнорується при цьому методі.

Якщо потрібно передати додаткові параметри SSH, їх можна додавати в новому рядку після "exec". Параметри чутливі до регістру і вказуються так, як у наступному прикладі. Цей приклад активує алгоритм RSA для старих пристроїв.

exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa

Наступні параметри доступні:

Параметри SSH для exec Приклад значення
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Примітка: Для отримання додаткової інформації дивіться зовнішню документацію: https://linux.die.net/man/5/ssh_config (Англійська)

Вхід ENV

Визначає активні змінні середовища. Щоб вказати кілька змінних, можна визначити кожну з них у новому рядку. Приклад:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Вхід SIZE

Визначає розмір терміналу. За замовчуванням він вказується у символах, але може бути визначений у пікселях. Наприклад: "80x25" або "640x480px". Якщо значення не визначено, використовується "80x25".

Вхід RECV_PT

Визначає тайм-аут для отримання даних на команду у форматі T#. Якщо тайм-аут не визначено, використовується T#150ms. Якщо цей значення недостатньо високе, ймовірно, що кілька команд будуть виконані під час виводу даних.

Вхід TIMEOUT

Встановлює тайм-аут у форматі T# для виконання всіх команд. Після досягнення цього з'єднання завершується і повертається значення. При цьому ERROR встановлюється на TRUE. Тайм-аут оцінюється після встановлення з'єднання та аутентифікації. Якщо вхід PTY був встановлений на "exec", то час виконання оцінюється за весь період. Якщо тайм-аут не визначено, використовується T#300s.

Вихід DONE

Вихід повертає імпульс при успішному виконанні, щоб продовжити наступну операцію. Імпульс відбувається при завершенні процесу, навіть якщо сталася помилка.

Вихід RETURN

Повертає результат команди при успішному виконанні. Значення зберігається для пізнішого використання.

Примітка: Зверніть увагу, що консоль формата виводу. Таким чином, можуть бути присутніми керування або двійкові дані.

Вихід RETERR

Повертає результат команди при помилковому виконанні. При SSH також називається STDERR. Значення зберігається для пізнішого використання.

Примітка: Зверніть увагу, що консоль формата виводу. Таким чином, можуть бути присутніми керування або двійкові дані.

Вихід ERROR

Повертає текст з повідомленням про помилку у випадку помилки. Він FALSE, якщо помилка не сталася. Стан зберігається для пізнішого використання.

Можливі причини:

  • Служба носія зберігання не була запущена.
  • Пам'ять не була ініціалізована.
  • Дані для входу недійсні.
  • Віддалений сервер недоступний.
  • Носій зберігання не існує.
  • Вказаний шлях недійсний.
  • Немає доступу для запису на носій зберігання.
  • На носії зберігання немає місця або він захищений від запису.
  • З'єднання було неочікувано завершено, перш ніж всі команди могли бути відправлені.
  • Досягнуто визначений тайм-аут.

Дивіться також