Скрипт пред установки на ОС для создании системы очистки логов при загрузке
Go to file
2025-02-06 16:18:42 +00:00
README.md Обновить README.md 2025-02-06 16:18:42 +00:00
setup_cleanlogs.sh Добавить setup_cleanlogs.sh 2025-02-06 16:17:38 +00:00

🚀 Скрипт автоматической очистки логов в Linux

Этот скрипт настраивает автоматическую очистку всех логов в системе при каждом запуске. Он создаёт systemd-сервис, который выполняет очистку логов сразу после загрузки системы.

📌 Что делает скрипт?

  • Очищает историю команд Bash (~/.bash_history).
  • Очищает системные журналы (journalctl).
  • Очищает логи SSH (/var/log/auth.log, /var/log/secure).
  • Очищает все файлы логов в /var/log/.
  • Очищает файлы входов пользователей (wtmp, btmp).
  • Добавляет сервис в systemd, который запускает очистку при каждом старте системы.

🛠 Установка и запуск

1 Скачать и подготовить скрипт

Скачай или создай файл setup_cleanlogs.sh и вставь в него код:

#!/bin/bash

# Путь к файлу systemd-сервиса
SERVICE_FILE="/etc/systemd/system/cleanlogs.service"

# Создание systemd-сервиса для очистки логов
echo "[Unit]
Description=Очистка логов при старте
After=sysinit.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'history -c && > ~/.bash_history && journalctl --flush --rotate && journalctl --vacuum-time=1s && find /var/log -type f -exec truncate -s 0 {} \; && rm -rf /var/log/journal/* && truncate -s 0 /var/log/wtmp /var/log/btmp'
RemainAfterExit=true

[Install]
WantedBy=multi-user.target" > $SERVICE_FILE

# Перезагрузка конфигурации systemd
systemctl daemon-reload

# Включение сервиса при старте системы
systemctl enable cleanlogs.service

# Сообщение об успешной установке
echo "✅ Сервис очистки логов установлен! Он будет запускаться при старте системы."
echo "📌 Проверка статуса: sudo systemctl status cleanlogs.service"
echo "❌ Отключение сервиса: sudo systemctl disable cleanlogs.service"

2 Сделать скрипт исполняемым

chmod +x setup_cleanlogs.sh

3 Запустить установку

sudo ./setup_cleanlogs.sh

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


🎯 Команды для управления сервисом

🔍 Проверить статус сервиса

sudo systemctl status cleanlogs.service

🚀 Запустить очистку вручную

sudo systemctl start cleanlogs.service

Отключить автоматическую очистку

sudo systemctl disable cleanlogs.service

🗑 Полностью удалить сервис очистки

sudo rm -f /etc/systemd/system/cleanlogs.service
sudo systemctl daemon-reload

⚠️ Важно!

  • Этот скрипт удаляет всю историю команд и системные логи. Будь осторожен!
  • Если после очистки понадобятся старые логи, их восстановить будет невозможно.

🚀 Готово! Теперь система будет автоматически очищать логи при каждом старте.