
FS_SHELL 함수 블록은 원격 시스템에서 하나 이상의 명령어를 인터랙티브 쉘에서 실행합니다.
주의: 시스템 명령어는 원격 시스템을 위협하거나 손상시킬 수 있습니다. 또한 기존 파일이 경고 없이 덮어쓸 수 있습니다.
파일 시스템은 FS_INIT를 사용하여 먼저 초기화되어야 합니다. 모든 작업은 각 저장 매체별로 비동기적으로 수행됩니다.
양의 에지에서 지정된 명령어가 실행됩니다.
저장 매체에서 어떤 파일들에 접근할지를 정의합니다. 장치는 프로젝트별로 사용되며, 프로젝트 외부 저장 컨텍스트 메뉴에서 관리할 수 있습니다.
저장 매체에 있는 디렉토리의 경로를 지정합니다. 이 경로는 UTF-8 형식의 Unix 파일 경로와 같습니다(지원되는 경우). 경로는 다음과 같이 표시됩니다:
폴더/하위 폴더
경로 사용은 선택 사항입니다. 경로가 설정된 경우, 해당 디렉토리로 전환하는 것이 성공해야 합니다. 그렇지 않으면 실행할 명령어가 실행되지 않습니다.
실행되어야 할 모든 명령어를 정의합니다. 모든 명령어는 줄 끝으로 종료되어야 합니다. 예를 들어: "ls\n". 줄 끝이 사용되지 않으면 명령어가 실행되지 않을 것입니다. 명령어는 서버의 피드백 후 줄별로 실행됩니다.
모든 명령어를 실행한 후에는 "exit\n"을 보내 연결을 즉시 종료하고 값을 반환해야 합니다. 그 후 추가 명령어를 보내면 안 됩니다. 그렇지 않으면 ERROR 출력이 TRUE로 설정됩니다.
참고: 연결이 예상치 않게 종료되고 명령어가 전송되지 않은 경우, ERROR 출력이 TRUE로 설정됩니다.
콘솔 유형(Pseudo-Terminal)을 정의합니다. 일부 장치에서는 이 매개변수가 필수적입니다. 예: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" 등. 값이 정의되지 않으면 "vanilla"가 사용됩니다.
"exec" 값은 SSH 명령어를 통해 운영 체제에서 요청을 실행합니다. 따라서 더 현대적인 방법을 사용합니다. 그러나 이 방법은 약간 비효율적입니다. ENV 입력은 연결 전에 설정되므로 무시될 수 있습니다. SIZE 입력은 이 방법에서 무시됩니다.
추가 SSH 매개변수가 전달되어야 하는 경우, "exec" 다음에 각각 새로운 줄에 추가할 수 있습니다. 매개변수는 대소문자를 구분하며 다음과 같이 지정됩니다. 이 예제는 오래된 장치에서 RSA 알고리즘을 활성화합니다.
exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa
다음 매개변수가 사용할 수 있습니다:
| exec을 위한 SSH 매개변수 | 예시 값 |
|---|---|
| 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 (영어)
활성 환경 변수를 정의합니다. 여러 변수를 지정하려면 각 줄에 하나씩 정의할 수 있습니다. 예:
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
터미널의 크기를 정의합니다. 기본적으로 문자로 지정되지만 픽셀로도 정의할 수 있습니다. 예를 들어: "80x25" 또는 "640x480px". 값이 정의되지 않으면 "80x25"가 사용됩니다.
T# 형식의 명령어별 데이터 수신 타임아웃을 정의합니다. 타임아웃이 정의되지 않으면 T#150ms가 사용됩니다. 이 값이 너무 낮으면 데이터 출력 중 여러 명령어가 실행될 것입니다.
모든 명령어를 실행하기 위한 타임아웃을 T# 형식으로 설정합니다. 이 타임아웃이 도달되면 연결이 종료되고 값이 반환됩니다. ERROR가 TRUE로 설정됩니다. 타임아웃은 연결 설정 및 인증 후 평가됩니다. PTY 입력이 "exec"으로 설정된 경우, 실행 시간이 전체 기간에 대해 평가됩니다. 타임아웃이 정의되지 않으면 T#300s가 사용됩니다.
출력은 성공 시 다음 작업을 수행하기 위해 펄스를 반환합니다. 펄스는 작업이 종료될 때 발생하며, 오류가 발생한 경우에도 발생합니다.
명령어 실행 시 반환 값을 반환합니다. 값은 나중에 사용할 수 있도록 저장됩니다.
참고: 콘솔이 출력을 형식화하므로 제어 문자 또는 이진 데이터가 포함될 수 있습니다.
명령어 실행 시 오류 발생 시 반환 값을 반환합니다. SSH에서는 STDERR라고도 합니다. 값은 나중에 사용할 수 있도록 저장됩니다.
참고: 콘솔이 출력을 형식화하므로 제어 문자 또는 이진 데이터가 포함될 수 있습니다.
오류 발생 시 오류 메시지가 포함된 텍스트를 반환합니다. 이는 FALSE이며, 오류가 발생하지 않은 경우입니다. 상태는 나중에 사용할 수 있도록 저장됩니다.
가능한 원인: