Como mi pregunta original era sobre un binario ssh, y hay una respuesta para eso, aceptaré esa respuesta. Sin embargo, hay otra manera de hacer lo que quería hacer, más o menos, que podría ser interesante para alguien algún día.
Tasker + ConnectBot se puede utilizar para ejecutar comandos remotos arbitrarios (o locales, supongo, pero Locale Execute es mejor para eso) en un horario.
Paso 1: Configurar la conexión en ConnectBot.
- Puedes tener conexiones duplicadas en ConnectBot siempre que tengan diferentes alias. Tienes que cambiar el nombre de una de ellas primero (lejos de user@host) para poder crear la segunda. Pulsa prolongadamente y selecciona "Editar host" para realizar estos cambios.
- Probablemente quieras configurar una clave ssh sin contraseña para poder utilizarla en la automatización.
- Una vez que la conexión funcione realmente, puedes utilizar la "Automatización posterior al inicio de sesión" para añadir los comandos remotos que quieras ejecutar. Asegúrate de que hay una línea en blanco al final para que se envíe enter después de tu último comando. Usa enter o ; para separar los comandos. Sugiero usar algo como "echo hello" como prueba hasta que estés seguro de que las cosas funcionan, y "exit" al final si no quieres dejar la conexión abierta.
- Pruebe esto de forma aislada.
Paso 2: Crear una tarea Tasker para llamar a connectbot.
- Cree una nueva tarea en Tasker.
- Añadir una acción. Desde Misc, seleccione "Action Intent"
- Los campos son:
- Acción: Android.intent.action.VIEW
- Cat: Por defecto
- Datos: url ssh, en forma de "ssh://usuario@host/#alias" (sin las comillas). El alias, el usuario y el host aquí debe coincida con el alias que configuró en el paso 1.
- Objetivo: Actividad
- Haz clic en Probar. Connectbot debería abrirse y sus comandos deberían ejecutarse en el host remoto.
Paso 3: Utilice esta tarea en Tasker como lo haría normalmente.
0 votos
Para la scriptabilidad, tengo la intención de utilizar Tasker, ya sea directamente o a través de Locale Execute Plug-In appbrain.com/app/de.elmicha.app.LocaleExecute