1
0
Fork 0
scripts-admin-quickndirty-p.../cleanup-tmp-uploads.sh

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