Python — отличный язык программирования для автоматизации задач системного администрирования в системах Linux. Благодаря широкому выбору различных библиотек многие из них можно использовать для повышения эффективности различных задач. Используя приведенные ниже примеры, вы сможете легко запускать системные команды Linux, работать с файлами и каталогами, выполнять сетевые задачи и автоматизировать процессы аутентификации всего за несколько секунд.
Читайте также: Как красиво распечатать файл JSON на Python
Что такое Python?
Python лучше всего можно охарактеризовать как язык программирования общего назначения. Он был разработан голландским ученым-компьютерщиком Гвидо ван Россумом в конце 1980-х и начале 1990-х годов как динамически типизированный язык программирования и преемник языка программирования ABC.
Сегодня он считается одним из самых популярных языков программирования в мире, и его варианты использования варьируют
Contents
Что такое Python?
ожных математических и научных расчетов. Его также ценят за элегантный синтаксис и относительно легкость изучения.Читайте также: Объяснение диапазона Python(): что это такое и как его использовать
Установка Python в Linux
Во многих дистрибутивах Linux уже установлен Python по умолчанию. Чтобы проверить, установлен ли в вашей системе Python 3, вы можете запустить команду python3
с флагом --version
:
python3 --version
Если установлен Python, команда отобразит версию вашей конфигурации Python.
До установить Python в системах Ubuntu и Debian :
sudo apt update && sudo apt upgrade -y sudo apt install python3.10
Кроме того, Питон можно загрузить как файл «.tgz» или «.xz».
Также читайте: Установка Python в Linuxи объяснение
Использование модуля «os»
Одной из лучших библиотек Python для системных администраторов Linux является модуль «os». Вы можете использовать его для автоматизации множества различных задач, таких как работа с каталогами и файлами. Он также может запускать системные команды.
В качестве примера вы можете использовать модуль для создания нового каталога:
#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")
Читайте также: Как запустить скрипт Python на Mac
Удалить каталог также можно с помощью модуля:
#Import the OS module import os #NaИспользование модуля «os»
/span> 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")
Вы можете переименовывать файлы и каталоги:
#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")
Читайте также: 10 полезных каналов YouTube, которые научат программировать
Файлы легко удаляются с помощью модуля:
#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")
Текущий рабочий каталог легко распечатать:
#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")
Содержимое каталога, например файлы и подкаталоги, можно легко проверить:
#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")
Используйте модуль, чтобы распечатать текущего пользователя:
#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")
Также запускайте команды оболочки Linux с помощью модуля:
#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")
Читайте также: 10 полезных острот Python, которые вы должны знать
Выполнение сетевых задач с помощью модуля «сокет»
В Python есть модуль, предназначенный для выполнения различных сетевых задач и создания сложных сетевых утилит, таких как сканеры портов и серверы видеоигр. Неудивительно, что модуль «socket» также можно использовать для выполнения обычных и основных сетевых задач в вашей системе.
Вы можете, например, проверить IP-адрес и имя хоста вашей системы:
#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")
Читайте также: Как включить Wake-on-LAN в Ubuntu
Вы также можете использовать модуль для проверки IP-адреса веб-сайта:
#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")
Читайте также: Как показать все активные SSH-соединения в Linux
Использование Paramiko для входа на SSH-сервер и выполнения команд
Если вы хотите автоматизировать процесс входа в систему Настройка SSH-сервера и выполне
Выполнение сетевых задач с помощью модуля «сокет»
айно полезна.Сначала загрузите библиотеку с помощью менеджера пакетов Python pip3
:
pip3 install paramiko
Используйте модуль для входа на SSH-сервер и выполнения команд:
#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")
Примечание. Если у вас возникнут проблемы с сетью, Трассировка поможет вам с диагностикой.
Часто задаваемые вопросы
1. Нужен ли мне Python 3 для использования этих модулей и библиотек?
Хотя большинство этих библиотек и модулей работают с Python 2, существует разница в синтаксисе, и эти фрагменты кода не запускаются. С некоторыми изменениями вы можете адаптировать их для работы на Python 2. Однако Python 2 устарел, поэтому вам следует использовать Python 3.
2. Нужно ли устанавливать модули «os» и «socket»?
В целом нет. Большинство установок Python поставляются с этими модулями прямо из коробки.
3. Могу ли я использовать Paramiko для входа в системы, отличные от Unix?
По словам разработчика Paramiko, в настоящее время библиотеку нельзя использовать для входа в системы, отличные от Unix, через SSH.