#!/bin/sh # Explications : # Ce script sert à nettoyer des uploads temporaires. Par ex: # /var/www/html/tmp/suppr-1j-ss-lect/toto/tata.txt # En lançant "ce-script.sh /var/www/html/tmp" régulièrement, # toute l'arborescence suppr-1j-ss-lect/toto/tata.txt (dont # le premier répertoire) sera supprimée si tata.txt n'a pas été # consulté pendant ~24h. # Arrêt à la première erreur non-gérée set -e while [ "$#" -ge 1 ]; do # Suppression N jours sans modification for i in "$1"/suppr-*j-ss-modif; do DUREE="$( echo "$i" | sed -n 's/.*suppr-\([0-9]\+\)j-ss-modif/\1/p' )" # Sans répertoire de ce type, DUREE sera vide if [ -n "$DUREE" ]; then # suppression des vieux fichiers find "$i" -xdev -not -type d -mtime "+$DUREE" -delete # suppression des répertoires vides # (on ajoute -mmin +60 pour éviter une race condition avec une création en cours) find "$i" -xdev -type d -mmin +60 -empty -delete fi done # Suppression N jours sans lecture for i in "$1"/suppr-*j-ss-lect; do DUREE="$( echo "$i" | sed -n 's/.*suppr-\([0-9]\+\)j-ss-lect/\1/p' )" # Sans répertoire de ce type, DUREE sera vide if [ -n "$DUREE" ]; then # suppression des vieux fichiers find "$i" -xdev -not -type d -atime "+$DUREE" -delete # suppression des répertoires vides # (on ajoute -mmin +60 pour éviter une race condition avec une création en cours) find "$i" -xdev -type d -mmin +60 -empty -delete fi done # Argument/Répertoire suivant shift done