Чистим куки

Alex

Administrator
Команда форума
Вот **безопасная и эффективная инструкция по очистке логов** на вашем сервере Ubuntu 24.04, особенно с учётом того, что у вас сайты в `/var/www` и ранее был переполнен диск.

---

### ✅ 1. **Быстрая и безопасная очистка (сразу освобождает место)**

```bash
# Очистить основные системные логи (не удаляя файлы — чтобы не сломать rsyslog)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

# Очистить логи веб-сервера (выберите нужное)
sudo truncate -s 0 /var/log/nginx/access.log 2>/dev/null
sudo truncate -s 0 /var/log/nginx/error.log 2>/dev/null
sudo truncate -s 0 /var/log/apache2/access.log 2>/dev/null
sudo truncate -s 0 /var/log/apache2/error.log 2>/dev/null

# Удалить старые архивы логов (они уже сжаты и не нужны)
sudo rm -f /var/log/*.gz /var/log/*.[0-9] /var/log/*.old
```

> `truncate -s 0` обнуляет файл, но сохраняет его inode — сервисы (nginx, rsyslog) продолжают писать в него без перезапуска.

---

### ✅ 2. **Проверить самые большие логи (если нужно глубже)**

```bash
# Топ-10 самых больших файлов в /var/log
sudo find /var/log -type f -exec du -h {} + 2>/dev/null | sort -hr | head -10
```

Если видите огромные файлы вроде:
- `/var/log/nginx/access.log` → обнулите его (см. выше)
- `/var/log/journal/...` → используйте `journalctl`

---

### ✅ 3. **Очистка systemd journal (если используется)**

```bash
# Посмотреть размер journal
sudo journalctl --disk-usage

# Оставить только последние 3 дня
sudo journalctl --vacuum-time=3d

# ИЛИ ограничить размером (например, 200 МБ)
sudo journalctl --vacuum-size=200M
```

---

### ✅ 4. **Настроить автоматическую ротацию (чтобы не повторилось)**

Убедитесь, что `logrotate` работает:

```bash
# Проверить конфиг для nginx/apache
ls /etc/logrotate.d/
```

Если нет — создайте для Nginx (пример):

```bash
sudo nano /etc/logrotate.d/nginx-custom
```
Вставьте:
```conf
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
[ -f /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
endscript
}
```

Для Apache — аналогично, с сигналом `reload`.

---

### ✅ 5. **Проверить результат**

```bash
df -h /
du -sh /var/log
```

Вы должны увидеть:
- Свободное место на диске ↑
- `/var/log` занимает <1–2 ГБ

---

### ⚠️ Важно: не удаляйте логи через `rm`, если сервис работает!

Неправильно:
```bash
rm /var/log/nginx/access.log # ← может нарушить работу nginx!
```

Правильно:
```bash
truncate -s 0 /var/log/nginx/access.log # ← безопасно
```

---

Хотите — могу помочь:
- Написать скрипт для еженедельной очистки
- Настроить мониторинг роста логов
- Проверить, какие именно логи растут быстрее всего

Скажите, какой веб-сервер вы используете (Nginx или Apache)?
 
Назад
Сверху