Базовое администрирование Linux через Python 

Базовое администрирование Linux через Python 

Python позволяет управлять Linux-системой: контролировать соединения, копировать и удалять информацию, отслеживать загрузку CPU, памяти и диска, подключаться к другим компьютерам по SSH, отправлять HTTP-запросы и выполнять прочие системные операции напрямую через терминал.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

popup12

Подготовка среды

Открываем терминал.

Для Ubuntu: нажмите Ctrl+Alt+T.

В других дистрибутивах ищем приложение «Терминал» через поиск.

Проверяем, есть ли Python в системе. В терминале вводим:

python3 --version

Если отображается Python 3.x.x — значит, всё в порядке.

Если появляется ошибка, устанавливаем Python и pip:

sudo apt update
sudo apt install python3 python3-pip

Снова проверим:

python3 --version

Все скрипты будем хранить в одной папке, например ~/python_scripts.

Для её создания в терминале вводим:

mkdir -p ~/python_scripts
cd ~/python_scripts

Если папка уже есть:

cd ~/python_scripts

Теперь все файлы будут храниться здесь.

Установка библиотек

В терминале вводим:

pip3 install psutil paramiko schedule requests

Библиотеки Python нужны для работы с Linux и сетью:

  • psutil показывает загрузку процессора (CPU), памяти и диска;
  • paramiko позволяет подключаться к другим устройствам по SSH (безопасный удалённый доступ) и выполнять команды;
  • schedule запускает процессы по расписанию автоматически, без ручного запуска;
  • requests делает запросы к сайтам и интернет-сервисам, контролирует их доступность, скачивает данные.

Управление подключениями

Добавим пользователя.

В терминале переходим в домашний каталог:

cd ~

Создаём скрипт:

nano add_user.py

Вставляем код:

import subprocess

def add_user(username):
    subprocess.run(['sudo', 'useradd', username])
    print(f"Пользователь {username} добавлен.")

add_user('noviy_user')  ― замените на имя нового пользователя.

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).

Запускаем скрипт:

python3 add_user.py

Появится сообщение о создании пользователя.

Удалим пользователя.

Остаёмся в домашней папке или переходим в неё:

cd ~

Создаём скрипт:

nano remove_user.py

Вставляем код:

import subprocess

def remove_user(username):

    subprocess.run(['sudo', 'userdel', username])
    print(f"Пользователь {username} удален.")

remove_user('noviy_user')

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).

Запускаем скрипт:

python3 remove_user.py

Работа с файлами и папками

Для копирования файлов переходим в папку с ними:

cd ~/Documents  ― замените на свою папку.

Задаём:

nano copy_file.py

Вставляем:

import shutil

def copy_file(src, dst):
    shutil.copy(src, dst)
    print(f"Файл {src} скопирован в {dst}")

copy_file('source.txt', 'destination.txt')  # замените на свои файлы

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).

Проверяем, что файл source.txt существует:

ls

Запускаем:

python3 copy_file.py

Появится сообщение о копировании файла.

Настроим процесс удаления данных.

Находимся в папке с выбранными для этого файлами.

Создаём скрипт:

nano delete_file.py

Вставляем код:

import os

def delete_file(filename):
    os.remove(filename)
    print(f"Файл {filename} удален.")

delete_file('destination.txt')  ― замените на имя файла.

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).

Проверяем текущий каталог:

  • pwd (покажет путь),
  • ls  (покажет файлы).

Запуск:

python3 delete_file.py

Мониторинг среды

Проверяем загрузки CPU, памяти и диска.

Остаёмся в рабочем каталоге:

cd ~

Задаём:

nano system_info.py

Вставьте:

import psutil

def system_info():
    print(f"Процессор: {psutil.cpu_percent()}% загружен")
    print(f"Память: {psutil.virtual_memory().percent}% занята")
    print(f"Диск: {psutil.disk_usage('/').percent}% занят")

system_info()

Сохраните (Ctrl+O, Enter) и выходим (Ctrl+X).

Запустите:

python3 system_info.py

Появится информация о загрузке CPU, памяти и диска в процентах.

Список запущенных процессов

Создаём Python-файл. В терминале введём:

nano list_processes.py

Откроется редактор nano (чёрный экран). Вставляем код:

import psutil

def list_processes():
    for proc in psutil.process_iter(['pid', 'name']):
        print(f"PID: {proc.info['pid']}, Имя: {proc.info['name']}")

list_processes()

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).

Запускаем в той же папке (~/python_scripts):

python3 list_processes.py

Появится список всех запущенных процессов.

Действия в сети

Для проверки доступности другого устройства (ping через Python) в рабочей папке в терминале введём:

cd ~/python_scripts

Далее:

nano ping_test.py

Затем:

import subprocess

def ping(host):
    result = subprocess.run(['ping', '-c', '4', host], capture_output=True, text=True)
    print(result.stdout)

ping('8.8.8.8')  # замените на IP или домен

Сохраняем и выходим:

Ctrl+O, Enter → Ctrl+X

Запускаем:

python3 ping_test.py

На экране появится информация, есть ли связь с указанным компьютером, время отклика и потерю пакетов.

Подключение к другому серверу по SSH 

В рабочей папке:

cd ~/python_scripts

Создаём файл:

nano ssh_connect.py

Вставляем:

import paramiko

def ssh_connect(host, username, password):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(host, username=username, password=password)
    stdin, stdout, stderr = client.exec_command('uptime')
    print(stdout.read().decode())
    client.close()

ssh_connect('192.168.1.10', 'user', 'password')  # замените на свои данные

Дальше: 

Ctrl+O, Enter → Ctrl+X

Затем:

python3 ssh_connect.py

видим информацию о времени работы удалённого сервера.

Автозапуск по времени

Рабочая папка:

cd ~/python_scripts

Пишем скрипт:

nano scheduled_task.py

Копируем код:

import schedule
import time

def job():
    print("Задача выполнена!")

(Запуск задачи каждый день в 3:00)
schedule.every().day.at("03:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(60)

Ctrl+O, Enter → Ctrl+X. И дальше:

python3 scheduled_task.py

Теперь каждый день в заданное время будет появляться сообщение о статусе действий.

Резервные копии

Рабочая папка:

cd ~/python_scripts

Создаём файл:

nano backup_folder.py

Вставляем:

import shutil

shutil.copytree('/home/user/data', '/home/user/backup/data')
print("Копирование завершено")

Как обычно: Ctrl+O, Enter → Ctrl+X. 

И ― python3 backup_folder.py

Папка data будет скопирована в backup.

Управление правами доступа 

Рабочая папка:

cd ~/python_scripts

Создаём файл:

nano change_permissions.py

Вставляем код:

import os

os.chmod('file.txt', 0o755)
print("Права доступа изменены")

Завершаем: 

Ctrl+O, Enter → Ctrl+X

Включаем:

sudo python3 change_permissions.py

Владелец может читать, писать и запускать файл; остальные пользователи могут только читать и запускать (права 755).

Заключение

Python открывает широкий спектр возможностей для администрирования Linux-систем. С его помощью можно автоматизировать повседневные задачи — от создания пользователей и управления файлами до мониторинга ресурсов и подключения к удалённым серверам по SSH. Простые скрипты экономят время, снижают риск ошибок и позволяют сосредоточиться на действительно важных процессах.

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

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях