Comment supprimer automatiquement les dossiers /tmp sous Linux ? Script bash de nettoyage automatique du journal de disque
Publié: 2014-03-13
Voici un script simple qui effectuera un nettoyage automatique du journal de disque pour n'importe quel environnement Linux. Il vous suffit de fournir le bon CRUNCHIFY_TMP_DIRS . Lorsqu'un disque n'a plus d'espace libre, toutes sortes de problèmes peuvent survenir.
Mais avant cela, ayons une compréhension de base de certaines commandes importantes.
Étape 1)
Vérifiez la commande df -H.
Utilisez la commande df
pour afficher des informations sur l'espace total et l'espace disponible sur un système de fichiers.
Le paramètre FileSystem spécifie le nom du périphérique sur lequel réside le système de fichiers, le répertoire sur lequel le système de fichiers est monté ou le nom de chemin relatif d'un système de fichiers.
Si vous ne spécifiez pas le paramètre FileSystem, la df command
affiche des informations pour tous les systèmes de fichiers actuellement montés. Si un fichier ou un répertoire est spécifié, la commande df affiche des informations sur le système de fichiers sur lequel il réside.
Sortir:
1 2 3 |
Filesystem Size Used Avail Capacity iused ifree % iused Mounted on / dev / disk0s2 499G 114G 385G 23 % 27868719 94059510 23 % / devfs 189k 189k 0B 100 % 640 0 100 % / dev |
Étape 2)
Filtrez ensuite le système de fichiers et découvrez le pourcentage d'espace
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
Sortir:
1 2 |
23 % / dev / disk0s2 100 % devfs |
Ainsi, parfois, par programme, vous souhaiterez peut-être nettoyer des fichiers de dossiers spécifiques au cas où vous manqueriez d'espace. Dans ce cas, il vous suffit d'exécuter le script ci-dessous et il se chargera de nettoyer tous les fichiers inutilisés en fonction des critères de filtre mentionnés dans le script. Il envoie également un e-mail à l'utilisateur spécifié dans le script.
Un autre doit lire:
- Comment exécuter des commandes Windows/Mac en JAVA et renvoyer le résultat texte
Terminez le script de nettoyage de disque Linux :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#!/bin/bash # Diskclean-Linux.sh - Remove unused files from /tmp directories # @author: Crunchify.com # ------------- Here are Default Configuration -------------------- # CRUNCHIFY_TMP_DIRS - List of directories to search # DEFAULT_FILE_AGE - # days ago (rounded up) that file was last accessed # DEFAULT_LINK_AGE - # days ago (rounded up) that symlink was last accessed # DEFAULT_SOCK_AGE - # days ago (rounded up) that socket was last accessed CRUNCHIFY_TMP_DIRS = "/tmp /var/tmp /usr/src/tmp /mnt/tmp" DEFAULT_FILE_AGE =+ 2 DEFAULT_LINK_AGE =+ 2 DEFAULT_SOCK_AGE =+ 2 # Make EMPTYFILES true to delete zero-length files EMPTYFILES = false #EMPTYFILES=true cd / tmp / log "cleantmp.sh[$] - Begin cleaning tmp directories" echo "" echo "delete any tmp files that are more than 2 days old" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - ctime $ DEFAULT_FILE_AGE \ - print - delete echo "" echo "delete any old tmp symlinks" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type l - a - ctime $ DEFAULT_LINK_AGE \ - print - delete echo "" if / usr / bin / $ EMPTYFILES ; then echo "delete any empty files" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - empty \ - print - delete fi echo "Delete any old Unix sockets" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type s - a - ctime $ DEFAULT_SOCK_AGE - a - size 0 \ - print - delete echo "" echo "delete any empty directories (other than lost+found)" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth - mindepth 1 \ - type d - a - empty - a ! - name 'lost+found' \ - print - delete echo "" / usr / bin / logger "cleantmp.sh[$] - Done cleaning tmp directories" # send out an email about diskcleanup action mail - s "Disk cleanup has been performed successfully." you @ email .com echo "" echo "Diskcleanup Script Successfully Executed" exit 0 |
J'espère que cela t'aides. Si vous avez des questions sur le script ci-dessus, faites-le moi savoir. Toutes les suggestions sont les bienvenues. Le script fonctionne sous Linux et Mac OS X.

Vous voulez exécuter le script ci-dessus every 3 days
? Utilisez simplement le calendrier cron ci-dessous
Un tutoriel détaillé sur Setting up CronJobs
est en cours. S'il vous plaît restez à l'écoute.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |