How To Utilize Python For Basic Linux System Administration And Networking Tasks Featured Image

Cómo utilizar Python para la administración básica del sistema Linux y las tareas de red

Python es un gran lenguaje de programación para automatizar tareas de administración de sistemas en sistemas Linux. Con su amplia selección de diferentes bibliotecas, muchas de ellas se pueden usar para mejorar la eficiencia de varias tareas. Usando los ejemplos a continuación, puede ejecutar fácilmente los comandos del sistema Linux, trabajar con archivos y directorios, realizar tareas de red y automatizar procesos de autenticación en solo unos segundos.

¿Qué es Python?

Python se puede describir mejor como un lenguaje de programación de propósito general. Fue desarrollado por un científico informático holandés llamado Guido van Rossum a fines de la década de 1980 y principios de la de 1990 para ser un lenguaje de programación de tipo dinámico y sucesor del lenguaje de programación «ABC».

Hoy en día, es ampliamente considerado como uno de los lenguajes de programación más populares del mundo, con casos de uso que van desde cualquier desarrollo web hasta matemáticas complejas y cálculos científicos. También es apreciado por su elegante sintaxis y por ser relativamente fácil de aprender.

Instalación de Python en Linux

Muchas distribuciones de Linux ya tienen Python instalado por defecto. Para comprobar si su sistema tiene instalado Python 3 o no, puede ejecutar el python3 comando con el --version bandera:

Comprobación de la versión de Python3

Si Python está instalado, el comando mostrará la versión de su configuración de Python.

Para instalar Python en sistemas Ubuntu y Debian:

sudo apt update && sudo apt upgrade -y
sudo apt install python3.10

Alternativamente, Pitón también se puede descargar como archivo “.tgz” o “.xz”.

Uso del módulo «os»

Una de las mejores bibliotecas de Python para administradores de sistemas Linux es el módulo «os». Puede usarlo para la automatización de muchos tipos diferentes de tareas, como el manejo de directorios y archivos. También puede ejecutar comandos del sistema.

Como ejemplo, puede utilizar el módulo para crear un nuevo directorio:

#Import the OS module
import os
 
#Name of the new directory
dir_name = "example"
 
try:
 
#Creates the new directory
    os.mkdir(dir_name)
 
#Prints the result, if the directory was successfully created
    print(f"Directory '{dir_name}' created successfully")
 
#Prints the result, in case the directory already exists
except FileExistsError:
    print(f"Directory '{dir_name}' already exists")

Módulo Python OS Crear directorio 1

También puede eliminar un directorio usando el módulo:

#Import the OS module
import os
 
#Name of the directory to be deleted
dir_name = "example"
 
try:
 
#Deletes the directory
    os.rmdir(dir_name)
 
#Prints the result, if the directory was successfully deleted
    print(f"Directory '{dir_name}' deleted successfully")
 
#Prints the result, if the directory doesn't exist
except FileNotFoundError:
    print(f"Directory '{dir_name}' doesn't exist")

Módulo de Python OS Eliminar directorio 1

Puede cambiar el nombre de archivos y directorios:

#Import the OS module
import os
 
#Current name of the directory or file
current_name = "example"
 
new_name = "example2.0"
 
try:
 
#Renames the directory or file
    content = os.rename(current_name, new_name)
 
#Prints the contents of the directory
    print(f"Directory/File '{current_name}' was successfully renamed to '{new_name}'")
 
#Print the error message, if the directory or file doesn't exist
except FileNotFoundError:
    print(f"Directory/File '{current_name}' doesn't exist")

Directorio de cambio de nombre del módulo Python OS 1

Los archivos son fácilmente extraíbles usando el módulo:

#Import the OS module
import os
 
#Name of the file to be deleted
file_name = "example.txt"
 
try:
 
#Deletes the file
    os.remove(file_name)
 
#Prints the result, if the file was successfully deleted
    print(f"File '{file_name}' deleted successfully")
 
#Prints the result, if the file doesn't exist
except FileNotFoundError:
    print(f"File '{file_name}' doesn't exist")

Módulo Python OS Eliminar archivo 1

El directorio de trabajo actual es fácilmente imprimible:

#Import the OS module
import os
 
try:
 
#Gets the current working directory
    cwd = os.getcwd()
 
#The name of the current working directory is printed out
    print(cwd)
 
#If an error occurs, it is printed out
except:
    print("An error occurred")

Módulo Python OS Imprimir directorio de trabajo actual 1

El contenido de un directorio, como archivos y subdirectorios, se puede verificar fácilmente:

#Import the OS module
import os
 
#Name of the directory
dir_name = "example"
 
try:
 
#Gets the contents of the directory
    content = os.listdir(dir_name)
 
#Prints the contents of the directory
    print(content)
 
#Prints the error, if the directory doesn't exist
except FileNotFoundError:
    print(f"Directory '{dir_name}' doesn't exist")

Contenido de verificación del módulo Python OS 1

Utilice el módulo para imprimir el usuario actual:

#Import the OS module
import os
 
try:
 
#Gets the name of the current user
    user = os.getlogin()
 
#Prints the name of the current user
    print(user)
 
#Prints an error message, in case it occurs
except:
    print("An error occurred")

También ejecute comandos de shell de Linux usando el módulo:

#Import the OS module
import os
 
#The shell command to run
command = "sudo apt update && sudo apt upgrade -y"
 
try:
 
#Runs the system command
    result = os.system(command)
 
#Prints the result of the command
    print(result)
 
#Prints an error message, in case an error occurs
except:
    print("An error occurred")

Comando de shell de ejecución del módulo Python OS

Realización de tareas de red mediante el módulo «socket»

Python tiene un módulo que está diseñado para realizar diferentes tareas de red y crear utilidades complejas relacionadas con la red, como escáneres de puertos y servidores de videojuegos. No sorprende que el módulo «socket» también se pueda usar para realizar tareas de red básicas y comunes en su sistema.

Puede, por ejemplo, verificar la dirección IP y el nombre de host de su sistema:

#Import the socket module
import socket
 
try:
 
#Getting the hostname
    host = socket.gethostname()
 
#Getting the IP address of the host
    ip = socket.gethostbyname(host)
 
#Prints the IP address
    print(f"IP address: {ip}")
 
#Prints the hostname
    print(f"Hostname: {host}")
 
#Prints an error message, if an error occurs
except:
    print("An error occurred")

También puede usar el módulo para verificar la dirección IP de un sitio web:

#Import the socket module
import socket
 
try:
 
#Domain to be checked
    domain = "duckduckgo.com"
 
#Getting the IP address of the domain
    ip = socket.gethostbyname(domain)
 
#Prints the IP address
    print(f"IP address: {ip}")
 
#Prints an error message, if an error occurs
except:
    print("An error occurred")

Uso de Paramiko para iniciar sesión en un servidor SSH y ejecutar comandos

Si desea automatizar el proceso de inicio de sesión en la configuración de un servidor SSH y ejecutar comandos allí, una biblioteca de Python «Paramiko» será extremadamente útil.

Primero descargue la biblioteca usando Python’s pip3 gerente de empaquetación:

Instalación de Python Paramiko Pip3

Use el módulo para iniciar sesión en un servidor SSH y ejecutar comandos:

#Importing the Paramiko library
import paramiko
 
#Specifying the IP and credentials
ip = '127.0.0.1'
port = 22
user = 'example'
password = 'example'
 
command = "uname -a"
 
try:
 
#Initiating the Paramiko client
    ssh = paramiko.SSHClient()
 
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 
#Connecting to the SSH server
    ssh.connect(ip, port, user, password)
 
#Running a command on the system
    stdin, stdout, stderr = ssh.exec_command(command)
 
#Prints the result of the command
    print(stdout.read().decode())
 
#Prints an error message, in case an error occurs
except:
    print("An error occurred")

Preguntas frecuentes

1. ¿Necesito Python 3 para usar estos módulos y bibliotecas?

Si bien la mayoría de estas bibliotecas y módulos funcionan con Python 2, hay una diferencia en la sintaxis y estos fragmentos de código no se ejecutarán. Con algunos cambios, puede adaptarlos para que se ejecuten en Python 2. Sin embargo, Python 2 está desactualizado, por lo que debería usar Python 3.

2. ¿Necesito instalar los módulos “os” y “socket”?

Generalmente, no. La mayoría de las instalaciones de Python vienen con estos módulos listos para usar.

3. ¿Puedo usar Paramiko para iniciar sesión en sistemas que no sean Unix?

Según el desarrollador de Paramiko, en este momento la biblioteca no se puede usar para iniciar sesión en sistemas que no sean Unix con SSH.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas