Автоматический Bash-скрипт для оптимизации систем Ubuntu и Fedora

Рассмотрим как написать универсальный Bash-скрипт, который выполняет оптимизацию системы как для Ubuntu/Debian, так и для Fedora/RedHat. Скрипт автоматически определяет дистрибутив и использует соответствующие команды для очистки системы, обновления пакетов и перезагрузки служб.

Основные задачи скрипта:

  1. Определение используемого дистрибутива Linux.
  2. Очистка системы от ненужных файлов (кэш, временные файлы).
  3. Обновление всех установленных пакетов.
  4. Проверка доступного дискового пространства.
  5. Перезагрузка веб-сервера (например, Apache или Nginx).

Bash-скрипт для оптимизации систем Ubuntu и Fedora


#!/bin/bash

# Определяем дистрибутив Linux
get_distro() {
    if [ -f /etc/os-release ]; then
        . /etc/os-release
        DISTRO=$ID
    else
        echo "Невозможно определить дистрибутив."
        exit 1
    fi
}

# Функция для очистки системы
clean_system() {
    echo "Очистка системы..."
    if [[ "$DISTRO" == "ubuntu" || "$DISTRO" == "debian" ]]; then
        sudo apt-get clean
        sudo apt-get autoremove -y
        sudo apt-get autoclean
    elif [[ "$DISTRO" == "fedora" || "$DISTRO" == "rhel" ]]; then
        sudo dnf clean all
        sudo dnf autoremove -y
    else
        echo "Неизвестный дистрибутив."
        exit 1
    fi
    echo "Очистка завершена."
}

# Функция для обновления системы
update_system() {
    echo "Обновление системы..."
    if [[ "$DISTRO" == "ubuntu" || "$DISTRO" == "debian" ]]; then
        sudo apt-get update && sudo apt-get upgrade -y
    elif [[ "$DISTRO" == "fedora" || "$DISTRO" == "rhel" ]]; then
        sudo dnf update -y
    else
        echo "Неизвестный дистрибутив."
        exit 1
    fi
    echo "Система успешно обновлена."
}

# Функция для проверки дискового пространства
check_disk_space() {
    echo "Проверка доступного дискового пространства..."
    df -h | grep '^/dev/'
}

# Функция для перезагрузки веб-сервера
restart_services() {
    echo "Перезапуск веб-сервера..."
    if [[ "$DISTRO" == "ubuntu" || "$DISTRO" == "debian" ]]; then
        sudo systemctl restart apache2
    elif [[ "$DISTRO" == "fedora" || "$DISTRO" == "rhel" ]]; then
        sudo systemctl restart httpd
    else
        echo "Неизвестный дистрибутив."
        exit 1
    fi
    echo "Веб-сервер перезагружен."
}

# Основная логика
get_distro
echo "Дистрибутив: $DISTRO"
clean_system
update_system
check_disk_space
restart_services
echo "Оптимизация системы завершена!"

Как это работает:

Определение дистрибутива: Используя файл /etc/os-release, скрипт определяет, какая ОС запущена (Ubuntu/Debian или Fedora/RedHat).

Очистка системы: В зависимости от дистрибутива используются соответствующие команды для удаления кэша и ненужных пакетов.

Обновление системы: Команды обновления зависят от используемой ОС — apt-get для Ubuntu/Debian и dnf для Fedora/RedHat.

Перезагрузка веб-сервера: В Ubuntu используется Apache, а в Fedora — httpd (версия Apache для RedHat).

Как использовать этот скрипт:

  1. Сохраните скрипт в файл: Создайте файл, например, optimize.sh, и вставьте туда приведённый код.
  2. Сделайте скрипт исполняемым: chmod +x optimize.sh
  3. Запустите скрипт: ./optimize.sh Скрипт выполнит задачи по оптимизации и отобразит результат.

Заключение

Этот скрипт — универсальный инструмент для автоматической оптимизации систем на базе Ubuntu/Debian и Fedora/RedHat. Он автоматически определяет дистрибутив и применяет соответствующие команды для очистки, обновления и перезагрузки служб.