44 lines
1.5 KiB
Bash
Executable file
44 lines
1.5 KiB
Bash
Executable file
#!/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
|