Python est un excellent langage de programmation pour automatiser les tâches d’administration système sur les systèmes Linux. Avec sa large sélection de bibliothèques différentes, beaucoup d’entre elles peuvent être utilisées pour améliorer l’efficacité de diverses tâches. À l’aide des exemples ci-dessous, vous pouvez facilement exécuter des commandes système Linux, travailler avec des fichiers et des répertoires, effectuer des tâches de mise en réseau et automatiser les processus d’authentification en quelques secondes seulement.
Qu’est-ce que Python ?
Python peut être décrit comme un langage de programmation à usage général. Il a été développé par un informaticien néerlandais nommé Guido van Rossum à la fin des années 1980 et au début des années 1990 pour être un langage de programmation typé dynamiquement et succéder au langage de programmation « ABC ».
Aujourd’hui, il est largement considéré comme l’un des langages de programmation les plus populaires au monde, avec des cas d’utilisation allant de tout ce qui concerne le développement Web aux mathématiques complexes et aux calculs scientifiques. Il est également apprécié pour sa syntaxe élégante et sa facilité d’apprentissage.
Installer Python sur Linux
De nombreuses distributions Linux ont déjà Python installé par défaut. Pour vérifier si Python 3 est installé ou non sur votre système, vous pouvez exécuter le python3
commande avec le --version
drapeau:
Si Python est installé, la commande affichera la version de votre configuration Python.
Pour installer Python sur les systèmes Ubuntu et Debian :
sudo apt update && sudo apt upgrade -y sudo apt install python3.10
Alternativement, Python peut également être téléchargé sous forme de fichier « .tgz » ou « .xz ».
Utilisation du module « os »
L’une des meilleures bibliothèques Python pour les administrateurs système Linux est le module « os ». Vous pouvez l’utiliser pour l’automatisation de nombreux types de tâches, telles que la gestion des répertoires et des fichiers. Il peut également exécuter des commandes système.
Par exemple, vous pouvez utiliser le module pour créer un nouveau répertoire :
#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")
Vous pouvez également supprimer un répertoire à l’aide du module :
#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")
Vous pouvez renommer des fichiers et des répertoires :
#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")
Les fichiers sont facilement amovibles à l’aide du module :
#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")
Le répertoire de travail courant est facilement imprimable :
#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")
Le contenu d’un répertoire, comme les fichiers et les sous-répertoires, peut être vérifié facilement :
#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")
Utilisez le module pour imprimer l’utilisateur actuel :
#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")
Exécutez également les commandes du shell Linux à l’aide du module :
#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")
Exécution de tâches de mise en réseau à l’aide du module « socket »
Python a un module conçu pour effectuer différentes tâches de mise en réseau et créer des utilitaires complexes liés à la mise en réseau, tels que des scanners de ports et des serveurs de jeux vidéo. Il n’est pas surprenant que le module « socket » puisse également être utilisé pour effectuer des tâches de mise en réseau courantes et de base sur votre système.
Vous pouvez, par exemple, vérifier l’adresse IP et le nom d’hôte de votre système :
#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")
Vous pouvez également utiliser le module pour vérifier l’adresse IP d’un site 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")
Utilisation de Paramiko pour se connecter à un serveur SSH et exécuter des commandes
Si vous souhaitez automatiser le processus de connexion à une configuration de serveur SSH et y exécuter des commandes, une bibliothèque Python « Paramiko » sera extrêmement utile.
Téléchargez d’abord la bibliothèque en utilisant Python pip3
directeur chargé d’emballage:
Utilisez le module pour vous connecter à un serveur SSH et exécutez les commandes :
#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")
Questions fréquemment posées
1. Ai-je besoin de Python 3 pour utiliser ces modules et bibliothèques ?
Bien que la plupart de ces bibliothèques et modules fonctionnent avec Python 2, il existe une différence de syntaxe et ces extraits de code ne fonctionneront pas. Avec quelques modifications, vous pouvez les adapter pour qu’ils s’exécutent dans Python 2. Cependant, Python 2 est obsolète, vous devriez donc utiliser Python 3.
2. Dois-je installer les modules « os » et « socket » ?
Généralement, non. La plupart des installations de Python sont livrées avec ces modules directement prêts à l’emploi.
3. Puis-je utiliser Paramiko pour me connecter à des systèmes non Unix ?
Selon le développeur de Paramiko, à l’heure actuelle, la bibliothèque ne peut pas être utilisée pour se connecter à des systèmes non Unix avec SSH.