Linux: Instalar powershell en Debian 11
Hoy quiero enseñaros como instalar Powershell sobre un linux Debian 11, como ejecutar scripts y como programarlos.
Cuando te manejas en cierta tecnología de scripting, y ves la implementación del script clara, llevarlo a otra tecnología puede hacer más pesado su desarrollo. Así que por qué no integrar diferentes tecnologías, para poder sacar el mejor partido a todos tus conocimientos.
Eso me pasa a mí, me gusta Linux, y me manejo mejor con Powershell que con Bash. Así que, me gustaba la idea de unir ambas tecnologías, para no tener que montar un Windows para lanzar scripts de Powershell.
En este artículo, como ya hemos comentado, vamos a implementar powershell en un Debian 11. Cogeré uno de los scripts de powershell que tengo a mano y haré un pequeño testeo que funciona. Y para finalizar, programaremos ese script powershell en el crontab, de forma que se ejecute periódicamente.
Vamos a ello…
Instalación Powershell en Linux
Para instalar powershell, los amigos de Microsoft, han creado un repositorio para las diferentes versiones de linux más importantes:
El proceso para la instalación, si manejáis linux, no difiere de otras herramientas de terceros, que no aparecen en los repos oficiales. Agregamos a nuestro sistema el repo de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Descargamos las llaves GPG del repositorio de Microsoft wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb # Las registramos sudo dpkg -i packages-microsoft-prod.deb # Actualizamos nuestros paquetes para verlos al querer instalarlos sudo apt-get update # Instalamos PowerShell sudo apt-get install -y powershell # Y para acceder a la consola de PowerShell lanzamos el siguiente comando pwsh |
Con esto ya tendríamos a acceso a una consola sobre powershell en linux:
1 2 3 4 5 6 7 8 |
root@debian:~# pwsh PowerShell 7.2.0 Copyright (c) Microsoft Corporation. https://aka.ms/powershell Type 'help' to get help. PS /root> |
Ejecutar script powershell sobre linux
Ahora vamos a hacer un ejemplo muy simple para testear que funciona. Utilizamos un comando básico:
Lo llevamos a un PS1 de la siguiente forma:
1 2 3 |
PS /root> nano prueba.ps1 PS /root> cat ./prueba.ps1 Get-ChildItem -Path /root/ |
Y lo ejecutamos:
Con esto ya vemos que funciona…
Programar script powershell en tarea linux (crontab)
Ahora vamos a realizar algo que usaremos normalmente, una programación del script que hemos creado. En Windows vas al task manager y lo generas, en linux, usaremos el crontab.
Editamos crontab con:
1 2 3 4 5 6 7 8 9 |
## Editar crontab nano /etc/crontab ó crontab -e ## Agregamos línea POWERSHELL PROGRAMACION 0 0 1 * * pwsh -File "/root/prueba.ps1" |
Se ejecutará el primer día de cada mes:
Comprobar que el servicio de CRON está habilitado y que se ejecutará en el arranque:
1 2 3 4 5 6 7 8 9 |
systemctl status cron systemctl start cron systemctl enable cron o root@debian:~# ps ax | grep cron 484 ? Ss 0:00 /usr/sbin/cron -f 1562 pts/0 S+ 0:00 grep cron |
Podéis testear el funcionamiento de crontab dejando una salida a la prueba:
1 2 |
## POWERSHELL PROGRAMACION * * * * * pwsh -File "/root/prueba.ps1" > /root/prueba.txt 2>&1 |
Podéis ver los errores en:
1 2 3 4 5 |
/var/log/cron ó /var/log/messages |
En nuestro caso, si funciona, se generará un TXT:
1 2 3 4 5 6 7 8 9 10 11 12 |
root@debian:~# ls packages-microsoft-prod.deb prueba.ps1 prueba.txt script-ippublica.ps1 root@debian:~# cat prueba.txt Directory: /root UnixMode User Group LastWriteTime Size -------- ---- ----- ------------- ---- -rw-r--r-- root root 18/7/2019 02:18 3124 -rw-r--r-- root root 14/11/2021 11:50 27 -rw-r--r-- root root 14/11/2021 12:12 339 -rw-r--r-- root root 14/11/2021 11:44 3023 |
¿Fácil no? Espero que os parezca interesante…
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?