Tengo problemas para ejecutar un script para enviar por ssh a un servidor remoto. Si simplemente hago ssh desde la línea de comando, no tengo problemas para llegar al servidor, pero cuando ejecuto un script para hacer esto aparece el error "Nombre o servicio desconocido". Agregué la dirección IP y el nombre de host a /etc/hosts y eso no ayudó.
Mi guión es simplemente:
#!/bin/bash
ssh username@hostname
¿Estoy haciendo algo mal? Obviamente no necesito un script solo para esto, pero agregaré comandos para ejecutar una vez que esto funcione.
Respuesta1
El problema del script es que al copiar un archivo de otro sistema como Windows, agrega una nueva línea \n
y un retorno de carro \r\n
. Para obtener más información sobre los cambios de línea, consultenueva líneaentrada en wikipedia.
Para demostrar el problema, he subido un breve fragmento.aquíque explica cómo resolver el problema.
En resumen: utilizartrpara eliminar esos extraños finales de línea
tr -d \\r <yourscript>newscript && mv newscript yourscript
Luego ejecute el script nuevamente.
O como sugirió artm.
Mientras estás en vim
el editor, usa
:set ff=unix
(fes corto paraformato de archivo) y guarde el archivo por shift+zz
.