Respuestas:
Puede pasarle al ssh
cliente un comando para ejecutar en lugar de iniciar un shell agregándolo al comando ssh.
ssh username@domain.com 'rm /some/where/some_file.war'
No tiene que ir cd
a una ubicación para eliminar algo siempre que especifique la ruta completa, por lo que ese es otro paso que puede omitir.
La siguiente pregunta es la autenticación. Si solo ejecuta eso, se le pedirá una contraseña. Si no desea ingresar esto de manera interactiva, debe configurar la autenticación de clave pública.
-f
a la rm
ejecución de llamadas remotas?
rm
, sin duda deberían transmitirse a la persona que llama a menos que el usuario sepa qué esperar y por qué están anulando algo. Muchos errores y depuración frustrante más adelante se pueden evitar utilizando solo las opciones que necesita en un senario determinado.
-f
opción rm
es abreviatura --force
y tiene un efecto sobre si se detectan errores para archivos no existentes o argumentos falsos. Por lo general, los comandos que se ejecutan sobre shells no interactivos por defecto son menos interactivos de todos modos, pero no lo es o si recibe un mensaje interactivo, lo que debería hacer sería corregir la configuración directamente relacionada con eso. Si está presente scripting que no debería tener ese problema de todos modos, y si usted está en un shell interactivo (donde se tiene la posibilidad de errores tipográficos catastróficos) se debe utilizar -I
en --interactive=never
configurar el comportamiento deseado.
Si desea eliminar el archivo remoto con el uso de sudo, debe ejecutar algo como esto:
ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)
Detalles .
El comando ssh tiene un parámetro de comando (último parámetro en el comando) que puede usar para ejecutar comandos remotos.
Configure las teclas sin contraseña y luego agregue el comando como parte del comando ssh. Ver: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/