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

-
Negocios
- ¿Ha comenzado el declive de los empleos de los trabajadores del conocimiento?
- Un hombre que perdió su fortuna en bitcoins en un vertedero galés estudia comprar todo el vertedero
- DeepSeek ha gastado más de 500 millones de dólares en chips Nvidia a pesar de las afirmaciones de inteligencia artificial de bajo costo, según SemiAnalysis
- JPMorgan Chase exige que todos los trabajadores regresen a la oficina cinco días a la semana
- Un estudio revela los trabajos más satisfactorios: el trabajo por cuenta propia, el trabajo de funcionario, la gestión y el servicio social
- Los conductores Autómos de Uber y Lyft pueden sindicalizarse, dicen los votantes de Massachusetts
- El gran problema de los mandatos de regreso a la oficina es su cumplimiento
- Los graduados de la Generación Z están siendo despedidos meses después de ser contratados
- Recuperando la concentración con Focus Blocks: Una guía técnica para usuarios de Linux
- La propuesta de una semana laboral de cuatro días del gobierno británico plantea problemas, afirma un profesor de economía
- Best Buy está despidiendo a más empleados debido a la caída de las ventas
- No es un 'abandono silencioso' de los teletrabajadores, solo intentan 'vacaciones silenciosas'
- ¿Podrían las IA reemplazar a los directores ejecutivos?
- Esta Web es un Tesoro de Herramientas Gratuitas para Potenciar tu Experiencia en Informática
- La fatiga por videoconferencia es real, según un estudio
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...)