Bloque de funciones FS_SHELL

El bloque de funciones FS_SHELL ejecuta uno o varios comandos remotos en una shell interactiva.

Atención: Los comandos del sistema pueden poner en peligro o dañar el sistema remoto. Además, los archivos existentes pueden ser sobrescritos sin advertencia.

El sistema de archivos debe haber sido inicializado previamente mediante FS_INIT. Todas las operaciones se realizan de manera asíncrona por cada medio de almacenamiento configurado.

Entrada RUN

Al recibir un flanco positivo, se ejecuta el comando especificado.

Entrada DEV

Define el dispositivo desde el cual se accederá a los archivos. El dispositivo se utiliza por proyecto y puede ser gestionado en el menú contextual bajo Proyecto Almacenamiento externo.

Entrada PATH

Especifica la ruta al directorio en el medio de almacenamiento. La ruta corresponde a una ruta de archivo Unix en formato UTF-8, si este es soportado. La ruta se representa de la siguiente manera:

Carpeta/Subcarpeta

El uso de una ruta es opcional. Si se ha establecido, el cambio a este directorio debe ser exitoso; de lo contrario, el comando a ejecutar no se llevará a cabo.

Entrada CMD

Define todos los comandos que deben ser ejecutados. Todos los comandos deben estar terminados por un fin de línea. Por ejemplo: "ls\n". Si no se usa un fin de línea, es probable que el comando no se ejecute. Los comandos se ejecutan línea por línea después de la respuesta del servidor.

Después de ejecutar todos los comandos, debe enviarse un "exit\n" al final para cerrar la conexión inmediatamente y devolver los valores. Después de esto, no debe enviarse ningún otro comando, ya que de lo contrario la salida ERROR se establecerá en TRUE.

Nota: Si la conexión se cierra inesperadamente y un comando no ha sido enviado, la salida ERROR se establecerá en TRUE.

Entrada PTY

Define el tipo de consola (Pseudo-Terminal). Para algunos dispositivos, este parámetro es obligatorio. Ejemplos: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" etc. Si no se define ningún valor, se utiliza "vanilla".

El valor "exec" ejecuta la solicitud a través del comando SSH del sistema operativo. Por lo tanto, se utilizan métodos más modernos. Sin embargo, este método es algo menos eficiente. La entrada ENV se establece antes de la conexión, por lo que puede ser ignorada. La entrada SIZE se ignora con este método.

Si es necesario pasar parámetros adicionales de SSH, estos pueden añadirse en una nueva línea después de "exec". Los parámetros son sensibles a mayúsculas y minúsculas y se especifican como en el siguiente ejemplo. Este ejemplo activa el algoritmo RSA para dispositivos más antiguos.

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

A continuación, se muestran los parámetros disponibles:

Parámetros SSH para exec Valor de ejemplo
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Nota: Para más detalles, consulte la documentación externa: https://linux.die.net/man/5/ssh_config (Inglés)

Entrada ENV

Define las variables de entorno activas. Para especificar múltiples variables, se puede definir una por línea. Ejemplo:

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

Entrada SIZE

Define el tamaño de la terminal. Por defecto, se especifica en caracteres, pero también puede definirse en píxeles. Por ejemplo: "80x25" o "640x480px". Si no se define ningún valor, se utiliza "80x25".

Entrada RECV_PT

Define un tiempo de espera para recibir datos por comando en el formato T#. Si no se define ningún tiempo de espera, se utiliza T#150ms. Si este valor no es lo suficientemente alto, es probable que varios comandos se ejecuten durante la salida de datos.

Entrada TIMEOUT

Establece un tiempo de espera en el formato T# para la ejecución de todos los comandos. Una vez alcanzado, se cierra la conexión y se devuelve el valor. En este caso, ERROR se establece en TRUE. El tiempo de espera se evalúa después del establecimiento de la conexión y la autenticación. Si la entrada PTY se ha establecido en "exec", el tiempo de ejecución se evalúa para todo el período. Si no se define ningún tiempo de espera, se utiliza T#300s.

Salida DONE

La salida devuelve un impulso en caso de éxito para realizar la siguiente operación. El impulso ocurre al finalizar el proceso, incluso si ha ocurrido un error.

Salida RETURN

Devuelve la salida del comando cuando se ejecuta correctamente. El valor se almacena para su uso posterior.

Nota: Tenga en cuenta que la consola formatea la salida. Por lo tanto, puede contener caracteres de control o datos binarios.

Salida RETERR

Devuelve la salida del comando cuando se ejecuta con error. En SSH también conocido como STDERR. El valor se almacena para su uso posterior.

Nota: Tenga en cuenta que la consola formatea la salida. Por lo tanto, puede contener caracteres de control o datos binarios.

Salida ERROR

En caso de error, devuelve un texto con un mensaje de error. Este es FALSE si no ha ocurrido ningún error. El estado se almacena para su uso posterior.

Posibles causas:

  • El servicio del medio de almacenamiento no se ha iniciado.
  • El almacenamiento no se ha inicializado.
  • Las credenciales de inicio de sesión son inválidas.
  • No se pudo alcanzar el servidor remoto.
  • El medio de almacenamiento no existe.
  • La ruta especificada es inválida.
  • No se puede escribir en el medio de almacenamiento.
  • No hay espacio disponible en el almacenamiento o el almacenamiento está protegido contra escritura.
  • La conexión se cerró inesperadamente antes de que todos los comandos pudieran ser enviados.
  • Se alcanzó el tiempo de espera definido.

Ver También