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

-
Software
- RustDesk la alternativa a TeamViewer y AnyDesk para Windows, Linux y Mac
- Rustdesk [Escritorio remoto]: una alternativa de TeamViewer y AnyDesk para Linux
- Joomla 6, ¿Qué hay para ti?
- Suiza ahora exige que todo el software gubernamental sea de código abierto
- ¿Qué significa la IA de código abierto, de todos modos?
- La importancia de los diseñadores para conseguir un photocall personalizado impactante
- Disponible ONLYOFFICE Docs 8.0: formularios PDF, RTL, Buscar, asistente de gráficos, plugins actualizada y más
- 14 mejores sistemas operativos para Internet de las cosas (IoT)
- Cómo instalar Odoo 15 en CentOS 8 y 9 / AlmaLinux 8 y 9
- ONLYOFFICE lanza la versión 7.4 de su suite ofimática, con nuevas funciones y mejoras en la experiencia del usuario
- Cómo crear un servicio Systemd en Linux
- Los programas no libres son una amenaza para la libertad de todos - Richard Stallman
- Cómo crear formularios rellenables con roles de usuario en ONLYOFFICE Docs
- Alternativas a gratuitas a Adobe Photoshop, InDesign e Illustrator
- Convertir Aplicaciones Web en Apps de Escritorio con WebCatalog
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...)