ГлавнаяОперационные системыLinuxКак использовать Python для базового системного администрирования Linux и сетевых задач

Как использовать Python для базового системного администрирования Linux и сетевых задач

Python — отличный язык программирования для автоматизации задач системного администрирования в системах Linux. Благодаря широкому выбору различных библиотек многие из них можно использовать для повышения эффективности различных задач. Используя приведенные ниже примеры, вы сможете легко запускать системные команды Linux, работать с файлами и каталогами, выполнять сетевые задачи и автоматизировать процессы аутентификации всего за несколько секунд.

Читайте также: Как красиво распечатать файл JSON на Python

Что такое Python?

Python лучше всего можно охарактеризовать как язык программирования общего назначения. Он был разработан голландским ученым-компьютерщиком Гвидо ван Россумом в конце 1980-х и начале 1990-х годов как динамически типизированный язык программирования и преемник языка программирования ABC.

Сегодня он считается одним из самых популярных языков программирования в мире, и его варианты использования варьируют

Что такое Python?

ожных математических и научных расчетов. Его также ценят за элегантный синтаксис и относительно легкость изучения.

Читайте также: Объяснение диапазона Python(): что это такое и как его использовать

Установка Python в Linux

Во многих дистрибутивах Linux уже установлен Python по умолчанию. Чтобы проверить, установлен ли в вашей системе Python 3, вы можете запустить команду python3с флагом --version:

python3 --version
Проверка версии Python3

Если установлен 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 Создать каталог 1

Читайте также: Как запустить скрипт 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")
Модуль Python OS Удалить каталог 1

Вы можете переименовывать файлы и каталоги:

#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")
Каталог переименования модуля ОС Python 1

Читайте также: 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")
Модуль Python Os Удалить файл 1

Текущий рабочий каталог легко распечатать:

#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")
Модуль ОС Python Печать текущего рабочего каталога 1

Содержимое каталога, например файлы и подкаталоги, можно легко проверить:

#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")
Модуль ОС Python. Проверка содержания 1<

Используйте модуль, чтобы распечатать текущего пользователя:

#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")
Модуль Python Os Запустите команду оболочки

Читайте также: 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
Установка Python Paramiko Pip3

Используйте модуль для входа на 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.

Использование Paramiko для входа на SSH-сервер и выполнения команд

Часто задаваемые вопросы

1. Нужен ли мне Python 3 для использования этих модулей и библиотек?

2. Нужно ли устанавливать модули «os» и «socket»?

3. Могу ли я использовать Paramiko для входа в системы, отличные от Unix?

ПОХОЖИЕ СТАТЬИ

Популярные записи