diff --git a/server/cleanup-temp.sh b/server/cleanup-temp.sh new file mode 100644 index 0000000..5bc10b1 --- /dev/null +++ b/server/cleanup-temp.sh @@ -0,0 +1,39 @@ +#!/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 \ No newline at end of file