LinuxParty
Muchas veces nos interesa automatizar la conexión SSH o la descarga (download) o envió (upload) de un fichero/s mediante SCP en un servidor remoto del cual no tenemos acceso directo y por tanto tenemos que indicar un login y contraseña en el momento de ejecutar la conexión.
En Unix tenemos muchas formas de automatizar estos scripts (como p.ej usando expect) pero para simplificar el uso de este proceso y que pueda ser probado también por usuarios desde Windows (que me imagino les interesara bastante), hoy voy a hablar de las utilidades PSCP y PLINK incluidas en la pagina de descarga de PUTTY.
Para ello conectate a la pagina de Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) y descargate los ficheros plink.exe y pscp.exe o en su defecto el paquete putty.zip (que ya lleva incluidas todas las utilidades).
plink.exe lo emplearemos para automatizar las conexiones ssh (ejecuciones de comandos), y pscp.exe para las conexiones scp (upload y descarga de ficheros).
Para ello copia estos ficheros a alguna ruta del path, o p.ej a C:/Windows/System32 con lo que ya podrás acceder a ellos directamente desde la consola de Windows.
En el caso de que uses Ubuntu, puedes instalar estos mismos comandos (plink y pscp, en este caso) si instalamos el paquete putty-tools:
(busca antes, apt-cache search putty, para Ubuntu / Debian)
(busca antes, yum search putty, para Fedora, etc...)
sudo apt-get install putty-tools
yum install putty-tools
Veamos como podemos usarlos para ejecutar un comando remoto o enviar ficheros pasando directamente el usuario y la password:
Ejemplo de uso de pscp:
pscp.exe -pw jose TUTORIAL.txt jose@127.0.0.1:/export/TUTORIALES/COMPARTIDO
Aqui p. ejemplo estoy subiendo el fichero TUTORIAL.txt (local) a la ruta remota /export/TUTORIALES/COMPARTIDO de la máquina 127.0.0.1 para el usuario jose y password jose.
Como veis la sintaxis es prácticamente idéntica a la de el comando scp. Si ejecutáis plink o pscp sin indicar nada, ya os muestra la ayudan en línea.
Ejemplo de uso de plink:
plink.exe -pw jose jose@127.0.0.1 ls -l
En este caso conecto a la maquina remota 127.0.0.1 como usuario jose, password jose y ejecuto el comando “ls -l”
También podemos escribir un script de comandos y ejecutarlo con el parámetro -m. Ejemplo:
plink -pw jose -m BACKUP.sh jose@127.0.0.1
Donde BACKUP.sh es el fichero que contiene la lista de todos los comandos que queremos ejecutar en remoto.
He escrito también una pequeña librería en Python de automatización donde empleo estas utilidades para ejecutar conexiones ssh o scp remotas desde scripting.
La librería vale tanto para Windows como Linux sin tocar nada pues ya detecta el Sistema operativo que se esta utilizando, unicamente requiere que plink.exe y
pscp.exe esten en el path de Windows o plink y pscp instalados en Linux.
La librería es una idea de algo más grande que estoy creando para hacer muchas más cosas: lectura de parámetros desde Excel. Ejecución de consultas sobre base de datos Oracle/MySQL/Sqlite.
Filtrado de ficheros, evaluación de resultados, etc…
En este caso dejo los ficheros: DEMO.py y WOLF.py, DEMO contiene un ejemplillo y en las capturas de pantalla podréis ver que se ejecuta correctamente tanto en Windows como en Linux.
Nota: Si usáis Windows y necesitáis un servidor SSH para vuestras pruebas locales, podéis usar MobaSSH (http://mobassh.mobatek.net/)
Wolf.py
Demo.py
Referencias: http://linux.die.net/man/1/plink | http://linux.die.net/man/1/pscp

-
Hardware
- ¿Qué son los entornos SAN y NAS y cómo distinguirlos?
- Cómo Imprimir desde la Línea de Comandos en Linux y Solucionar Problemas con Impresoras en Red
- Los 5 mejores comandos de Linux para solucionar problemas (y cómo los uso)
- 5 comandos de Linux para encontrar rápidamente la información de tu Sistema Operativo
- El controlador de gráficos NVIDIA 560 Linux adoptará completamente módulos de kernel de GPU de código abierto
- El 84% de los usuarios de PC no están dispuestos a pagar más por un hardware con soporte para IA, según una encuesta
- ¿PC con Linux o Windows 11 Copilot+? TUXEDO presenta el portátil Snapdragon X Elite ARM
- La startup finlandesa 'Flow' afirma que puede multiplicar por 100 la potencia de cualquier CPU con su chip complementario
- China lanza el buque portacontenedores eléctrico más grande del mundo
- Testar el rendimiento de discos duros en Linux
- ¿Por qué los portátiles están soldando sus RAM a la placa?
- TUXEDO Sirius 16 Gen2, el portátil de juegos Linux completamente AMD, recibe un CPU Ryzen 7 más rápido
- Clonezilla Live ahora está parcheado contra la puerta trasera XZ, con tecnología Linux 6.7
- La computadora de escritorio LXQt 2.0 se lanza en abril con un nuevo menú de aplicaciones y portado a Qt 6
- Lanzamiento del controlador de gráficos NVIDIA 550.54.14 para Linux con muchas mejoras
Comentarios
a mi me da error al ejecutarlo :
>./Demo.py
Traceback (most recent call last):
File "./Demo.py ", line 3, in
&nb sp; from Wolf import Wolf
File "/home/ant onio/Web_Linux/ t104578/sql/tmp /Wolf.py", line 19
&nb sp; def cls(self):
&nb sp; &nb sp; &nb sp; &nb sp; &nb sp; ^
SyntaxError: invalid syntax
Nunca he escrito nada en Python, desconozco su sintaxis, pero parece que eso se ha colado en el articulo....
que hay en el artículo sobran, y hay</p>  ; en Wolf.py en detrás de la función:
def cls(self):
(No lo sé, prueba a ver...)