Rechercher dans la communauté
Affichage des résultats pour les étiquettes 'purge'.
1 résultat trouvé
-
Bonjour à tous, J'utilise un NAS synology pour du pur backup de mon infrastructure (plusieurs autres NAS avec divers "shared folders"). Pour effectuer ces backups journaliers en mode block-level, j'utilise des scripts Rsync configurés dans task scheduler. Jusque là tout va bien. Mais je voudrais que le volume1 de ce NAS de backup se purge automatiquement en effaçant les plus vieux folders dans chacun de ses shared folders (de destination des backups, donc) lorsque le quota atteint/dépasse 90% d'occupation. J'ai créé une nouvelle task juste pour ça, mais ça ne semble pas fonctionner. Quelqu'un sait-il me dire ce qui coince ici? Voici le script en question : #!/bin/bash # ----------------------------------------------------------------------------- # DELETE older folders à 90% d'occupation du serveur # ----------------------------------------------------------------------------- # Set variables BACKUP_DIR="/volume1" # Path to the backup directory THRESHOLD=90 # Disk usage percentage threshold (90%) REMOVE_AMOUNT=10 # The number of oldest directories to delete at a time # Get current disk usage percentage for the volume where BACKUP_DIR is located USAGE=$(df "$BACKUP_DIR" | awk 'NR==2 {print $5}' | sed 's/%//') # Check if disk usage exceeds the threshold if [ "$USAGE" -ge "$THRESHOLD" ]; then echo "Disk usage is at $USAGE%, exceeding the $THRESHOLD% threshold." # Find the oldest directories/files in the backup folder and delete them while [ "$USAGE" -ge "$THRESHOLD" ]; do # Find and delete the oldest directories/files OLDEST_FILES=$(find "$BACKUP_DIR" -mindepth 2 -maxdepth 2 -type d ! -path "$BACKUP_DIR/mnt*" ! -path "$BACKUP_DIR/home*" ! -path "$BACKUP_DIR/homes*" -exec stat -c "%Y %n" {} \; | sort -n | awk '{print $2}' | head -n $REMOVE_AMOUNT) # Delete the oldest files if [ -n "$OLDEST_FILES" ]; then echo "Deleting oldest directories: $OLDEST_FILES" echo "$OLDEST_FILES" | xargs rm -rf else echo "No more directories to delete." break fi # Update disk usage after deletion USAGE=$(df "$BACKUP_DIR" | awk 'NR==2 {print $5}' | sed 's/%//') done else echo "Disk usage is at $USAGE%, below the $THRESHOLD% threshold." fi
- 3 réponses
-
- synology
- task scheduler
-
(et 3 en plus)
Étiqueté avec :