Рассмотрим как написать универсальный Bash-скрипт, который выполняет оптимизацию системы как для Ubuntu/Debian, так и для Fedora/RedHat. Скрипт автоматически определяет дистрибутив и использует соответствующие команды для очистки системы, обновления пакетов и перезагрузки служб.
Основные задачи скрипта:
- Определение используемого дистрибутива Linux.
- Очистка системы от ненужных файлов (кэш, временные файлы).
- Обновление всех установленных пакетов.
- Проверка доступного дискового пространства.
- Перезагрузка веб-сервера (например, 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).
Как использовать этот скрипт:
- Сохраните скрипт в файл: Создайте файл, например,
optimize.sh
, и вставьте туда приведённый код. - Сделайте скрипт исполняемым:
chmod +x optimize.sh
- Запустите скрипт:
./optimize.sh
Скрипт выполнит задачи по оптимизации и отобразит результат.
Заключение
Этот скрипт — универсальный инструмент для автоматической оптимизации систем на базе Ubuntu/Debian и Fedora/RedHat. Он автоматически определяет дистрибутив и применяет соответствующие команды для очистки, обновления и перезагрузки служб.