39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# === Настройки ===
|
|
# Папки для очистки
|
|
DIRS_TO_CLEAN=(
|
|
"/tmp"
|
|
"/var/tmp"
|
|
# Добавьте папки, если нужно, например /home/username/.cache
|
|
)
|
|
|
|
# Сколько дней хранить файлы (старше будут удаляться)
|
|
DAYS=7
|
|
|
|
# Куда писать лог
|
|
LOG_FILE="/var/log/cleanup-temp.log"
|
|
|
|
# Указать почту для оповещений (оставьте пустым "" если не нужно)
|
|
ALERT_EMAIL=""
|
|
|
|
# === Основная логика ===
|
|
|
|
echo "[$(date)] Старт очистки временных файлов (старше $DAYS дн.)" | tee -a "$LOG_FILE"
|
|
|
|
for DIR in "${DIRS_TO_CLEAN[@]}"; do
|
|
if [[ -d "$DIR" ]]; then
|
|
echo "[$(date)] Очищаю: $DIR" | tee -a "$LOG_FILE"
|
|
# Удалить файлы и каталоги старше DAYS дней
|
|
find "$DIR" -mindepth 1 -mtime +$DAYS -print -exec rm -rf {} \; | tee -a "$LOG_FILE"
|
|
else
|
|
echo "[$(date)] WARN: Нет папки $DIR" | tee -a "$LOG_FILE"
|
|
fi
|
|
done
|
|
|
|
echo "[$(date)] Очистка завершена." | tee -a "$LOG_FILE"
|
|
|
|
# === Оповещение (по e-mail) ===
|
|
if [[ -n "$ALERT_EMAIL" ]]; then
|
|
mail -s "Очистка /tmp завершена: $(date)" "$ALERT_EMAIL" < "$LOG_FILE"
|
|
fi |