1
0
Fork 0

adding cleanup-tmp-uploads.sh

This commit is contained in:
Chl 2020-01-09 01:18:28 +01:00
parent 169bd2913d
commit 56cd085df0
1 changed files with 44 additions and 0 deletions

44
cleanup-tmp-uploads.sh Executable file
View File

@ -0,0 +1,44 @@
#!/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 -mindepth 1 -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 -mindepth 1 -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 -mindepth 1 -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 -mindepth 1 -type d -mmin +60 -empty -delete
fi
done
# Argument/Répertoire suivant
shift
done