Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment nettoyer les fichiers du disque système.
Responsable(s) et version(s) : CLI FMC/FDM 7.6.0 exécutée sur CLI FMC ou FTD
Application (ASA/FTD) et version minimale de l'application : DFT 7.6.0
Plates-formes prises en charge: Tous les périphériques FMC et FTD disposent de cette fonctionnalité.
Migration depuis : https://confluence-eng-rtp2.cisco.com/conf/display/IFT/Diskcleaner
Le nettoyeur de disque et ses scripts sont installés lors de l'installation/mise à niveau. Il ne fait pas partie des scripts de mise à niveau. Le processus diskclean.py est démarré par Process Manager au démarrage du système. Il s'exécute en tant que processus démon géré par Process Manager et s'exécute jusqu'à ce que le système soit arrêté. Le nettoyeur de disque comporte des scripts de disque qui sont appelés lorsque le pourcentage d'utilisation du volume de disque dépasse les seuils configurés. Par exemple, il existe actuellement des scripts de nettoyage de disque qui sont appelés lorsque l'utilisation du volume atteint 85 % et d'autres qui sont appelés lorsque l'utilisation du disque atteint 95 %. Si le taux de remplissage du disque atteint 95 %, il exécute les scripts de nettoyage à 95 % et s'il reste supérieur à 85 %, il exécute les scripts de nettoyage à 85 %.
Voici ce que le nettoyeur de disque est actuellement configuré pour s'exécuter sur le FMC :
- Tronque (à 0 octet) tous les fichiers supprimés (fichiers qui ont été supprimés mais sont encore ouverts par un processus en cours d'exécution). Ces fichiers peuvent être affichés avec la commande lsof +L1.
- Forcez le gestionnaire de disques à vider tous les silos.
- Supprimez tous les fichiers journaux pivotés (ceux dont l'extension est xxxxxxx.n.gz, tels que messages.1.gz)
- Forcez le gestionnaire de disques à purger au maximum tous les silos. Les silos sont ainsi drainés à 25 % de leur niveau normal de basse mer.
C'est ce que le nettoyeur de disque est actuellement configuré pour exécuter sur le FTD :
- Tronque (à 0 octet) tous les fichiers supprimés (fichiers qui ont été supprimés mais sont encore ouverts par un processus en cours d'exécution). Ces fichiers peuvent être affichés avec la commande lsof +L1.
- Forcez le gestionnaire de disques à vider tous les silos.
- Supprimez tous les fichiers journaux pivotés (ceux dont l'extension est xxxxxxx.n.gz, tels que messages.1.gz)
- Forcez le gestionnaire de disques à purger au maximum tous les silos. Les silos sont ainsi drainés à 25 % de leur niveau normal de basse mer.
NOTE: At the current time, FXOS files and logs are outside of the scope of the diskcleaner!!!
Utilisez la commande system support diskcleanshow pour afficher les scripts de nettoyage de disque disponibles à l'exécution. Les scripts affichés ici peuvent être exécutés manuellement à l'aide de la commande diskcleanrun-run pour libérer manuellement de l'espace disque. Chacun de ces scripts de nettoyage de disque est décrit dans ces diapositives avec des exemples d'invocation.
> system support diskcleaner-show
sfims-file-mgmnt-infra-delete-rotated-logs.sh
sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh
sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh
sfims-file-mgmnt-infra-truncate-deleted-files.py
Entrez la commande diskcleaner. Les méthodes existantes du gestionnaire de disques et de l'élageur de disque sont insuffisantes pour cette nouvelle tâche. Diskmanager a été conçu pour contrôler les niveaux de remplissage des disques en temps réel lors de l'ouverture et de la fermeture des fichiers. Les fichiers de configuration du gestionnaire de disques sont sélectifs, complexes et fragiles. Le processus d'élagage est conçu pour réduire l'utilisation de l'espace de fichiers pour les composants de fonctionnalité individuels sans tenir compte des niveaux de remplissage du disque système global. Le nouveau cadre de nettoyage de disque a été créé pour fournir la possibilité de supprimer des fichiers sur la base des niveaux de remplissage de disque système similaires au gestionnaire de disque avec la simplicité d'utiliser un langage de script similaire à celui du processus d'élagage de disque.
Utilisez la commande diskcleaner-run pour exécuter manuellement un script diskcleaner. La commande est la suivante :
system support diskcleaner-run
où nom de fichier est le nom du script diskcleaner à exécuter. Il peut s'agir d'un chemin complet avec un nom de répertoire et de fichier, d'un chemin relatif (à partir de /etc/sf/dc) ou du nom d'un script (tel que nommé dans /etc/sf/dc). Les fichiers globs standard sont acceptés. Le nom de fichier est soumis à des exigences de sécurité qui peuvent limiter le jeu de caractères autorisé (comme l'absence de backticks `). N'oubliez pas que le nettoyeur de disque exécute simplement des scripts à l'aveugle. Ainsi, vous pouvez créer un nouveau script qui exécute plusieurs scripts diskcleaners, puis simplement exécuter ce nouveau script (de sorte que tous les scripts diskcleaners inclus dans celui-ci soient exécutés).
Supprimez tous les fichiers journaux pivotés sur le point de montage spécifié.
> system support diskcleaner-run sfims-file-mgmnt-infra-delete-rotated-logs.sh --help
Supprimez tous les fichiers journaux pivotés sur le point de montage spécifié.
sfims-file-mgmnt-infra-delete-rotated-logs.sh [--debug] [--help] <mount point>
> system support diskcleaner-run sfims-file-mgmnt-infra-delete-rotated- logs.sh --debug /ngfw/Volume
Deleting all rotated log files on mount point '/ngfw/Volume'.
Deletion of all rotated log files on mount point '/ngfw/Volume' has
completed - 0 bytes.
Faire en sorte que le gestionnaire de disques effectue un drainage maximal sur toutes les partitions
> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh --help
Configurez le gestionnaire de disques pour qu'il procède à une purge maximale de toutes ses partitions.
sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh [--debug] [--help]
> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh
Performing a maximum drain on all disk manager partitions - current disk usage:
Partition:Silo Used Minimum Maximum
/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB
...
Performing a maximum drain on disk manager partition '/ngfw/var'.
Partition /ngfw/var has been drained.
Maximum drain on all disk manager partitions has completed - current disk usage:
Partition:Silo Used Minimum Maximum
/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB
...
>
Faites en sorte que le gestionnaire de disques exécute une purge maximale sur tous les silos
> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh --help
Faites en sorte que le gestionnaire de disques procède à une purge maximale de tous ses silos.
sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh [--debug] [--help]
> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh
Draining all disk manager silos to their low-water mark - current disk usage:
Partition:Silo Used Minimum Maximum
/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB
...
Draining all disk manager silos..
All silos have been drained.
Draining all disk manager silos to their low-water mark has completed - current disk usage:
Partition:Silo Used Minimum Maximum
/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB
>
Tronque à zéro octet tous les fichiers supprimés masqués qui sont présents en raison des handles de fichiers ouverts.
> system support diskcleaner-run sfims-file-mgmnt-infra-truncate-deleted-files.py -h
usage: sfims-file-mgmnt-infra-truncate-deleted-files.py [-h] [--debug]
[ignored]
Truncate all deleted (zombie) files to zero-length.
positional arguments:
ignored
optional arguments:
-h, --help show this help message and exit
--debug If specified, the script will output lots of debug information.
> system support diskcleaner-run sfims-file-mgmnt-infra-truncate-deleted-files.py
Truncating all deleted (zombie) files.
Deleted file '/run/nscd/dbGG9F8K' is on the deleted files exclude list - NOT truncating.
All deleted (zombie) files have been truncated - total size = 0 bytes.
>
Utilisez la commande pmtool pour arrêter et démarrer le nettoyeur de disque.
> pmtool disablebyid diskcleaner
>
> pmtool status
...
diskcleaner (normal) - User Disabled
...
> pmtool enablebyid diskcleaner
>
> pmtool status
...
diskcleaner (normal) – Running 17086
...
Ce script est le programme principal du nettoyeur de disque. Ce script python est exécuté comme ceci :
diskcleaner.py [--debug] [--help] [--interval <interval>]
où si debugging est spécifié, le script affiche les informations de débogage, et help les informations d'utilisation et exit.
Intervalle (en secondes) entre les cycles de nettoyage de disque. Si aucune valeur n'est spécifiée, la valeur par défaut est 600 secondes. diskclean.py est démarré par Process Manager au démarrage du système. Il s'exécute en tant que processus démon géré par Process Manager et s'exécute jusqu'à l'arrêt du système. Lorsque le nettoyeur de disque est démarré, il exécute une boucle qui s'exécute toutes les secondes d'intervalle. À chaque cycle, le nettoyeur de disque analyse tous les points de montage (/, /Volume, ...) spécifiés par la commande df -a et obtient leur utilisation actuelle du disque (mesurée par la commande df).
Le nettoyeur de disque parcourt chaque niveau de nettoyage à partir du niveau 0 et remonte jusqu'à ce que le numéro de niveau soit supérieur au pourcentage d'utilisation du disque de ce point de montage. Vous n'avez besoin d'effectuer un nettoyage pour un niveau que si l'utilisation du point de montage est égale ou supérieure au numéro de niveau. Ainsi, si l'utilisation est de 55 %, exécutez chaque niveau de nettoyage de disque dans l'ordre - 0, 1, 2, ..., 55.
Lorsque le nettoyage doit être effectué, le script shell diskcleaner.sh (voir ci-dessous) est appelé pour effectuer le nettoyage proprement dit. Ce script appelle simplement aveuglément tous les scripts trouvés dans le répertoire diskcleandu point de montage pour le niveau de nettoyage spécifié.
Le fichier diskclean.sh est un script bash qui lance l'événement de nettoyage de disque.
diskcleaner.sh <mount point> <level>
où le point de montage est le point de montage à nettoyer et le niveau fait référence au niveau de nettoyage à effectuer. Il s'agit du pourcentage auquel le nettoyage est effectué. Par exemple, si vous entrez 85, le nettoyage de disque sera exécuté à 85 %.
Tous les scripts de nettoyage de disque présents dans le répertoire :
[/ngfw]/etc/sf/dc/<mount point>/dc<clean level>
qui correspondent au fichier glob DC* sont exécutés (par ordre alphabétique).
Notez que comme les noms de point de montage comportent généralement des barres obliques (/), l'utilisation du nom de point de montage réel dans le chemin d'accès au répertoire est maladroite (ou illégale). Par conséquent, remplacez any / par _. Ainsi, pour nettoyer le point de montage /dev/shm au niveau 85 (pour une utilisation du disque de 85 %), les scripts doivent correspondre : [/ngfw]/etc/sf/dc/_dev_shm/85/DC*
Ce paradigme est basé sur le paradigme de script rc init dans lequel tous les scripts correspondants dans le répertoire rcn.d sont exécutés aveuglément. Le préfixe DC est également un holdover du paradigme rc init - ces scripts commencent tous par S (start) ou K (kill). Je suppose qu'il vous empêche de ramasser des fichiers de merde qui sont juste laissés dans le répertoire. Par conséquent, utilisez le préfixe DC.
Le nettoyeur de disque utilise la commande linux df pour vérifier l'utilisation du disque :
/var/log/process_stdout.log and /var/log/process_stderr.log
La fonction du nettoyeur de disque est consignée dans process_stdout.log. Généralement, il n'y a pas de sortie car il n'y a pas de nettoyage de disque à effectuer. Mais si le nettoyage du disque doit être fait, tous les fichiers supprimés sont consignés dans process_stdout.log. La page suivante est un exemple de ce que process_stdout.log peut contenir. Grep sur diskcleaner. ̌Exemple de résultat dans process_stdout.log :
Feb 9 04:10:23 uhura diskcleaner[2639]: Starting level 85 disk cleaning for mount point '/ngfw/Volume': current usage = 97%.
Feb 9 04:10:23 uhura diskcleaner[2639]: Starting disk cleaning scripts in directory '/etc/sf/dc/_ngfw_Volume/dc85' for mount point '/ngfw/Volume'.
Feb 9 04:10:23 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on
Feb 9 04:10:23 uhura diskcleaner[2639]: /dev/sda5 40511148 39040764 1470384 97% /ngfw/Volume
Feb 9 04:10:23 uhura diskcleaner[2639]: Executing '/etc/sf/dc/_ngfw_Volume/dc85/DC660-truncate-deleted- files.py' ...
Feb 9 04:10:23 uhura diskcleaner[2639]: Truncating all deleted (zombie) files.
Feb 9 04:10:23 uhura diskcleaner[2639]: Deleted file '/run/nscd/dbZ5hobS' is on the deleted files exclude list - NOT truncating.
Feb 9 04:10:23 uhura diskcleaner[2639]: All deleted (zombie) files have been truncated - total size = 0 bytes.
Feb 9 04:10:23 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on
Feb 9 04:10:23 uhura diskcleaner[2639]: /dev/sda5 40511148 39040764 1470384 97% /ngfw/Volume
Feb 9 04:10:23 uhura diskcleaner[2639]: '/etc/sf/dc/_ngfw_Volume/dc85/DC660-truncate-deleted-files.py' completed in 0.43 seconds - status = 0.
Feb 9 04:10:23 uhura diskcleaner[2639]: Executing '/etc/sf/dc/_ngfw_Volume/dc85/DC663-delete-rotated- logs.sh' ...
Feb 9 04:10:23 uhura diskcleaner[2639]: Deleting all rotated log files on mount point '/ngfw/Volume'.
Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/top.log.1.gz' - 2771386 bytes.
Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.1.gz' - 1073741824 bytes.
Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.2.gz' - 1073741824 bytes.
Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.3.gz' - 1073741824 bytes.
Feb 9 04:10:24 uhura diskcleaner[2639]: Deletion of all rotated log files on mount point '/ngfw/Volume' has completed - 25772575162 bytes.
Feb 9 04:10:24 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on
Feb 9 04:10:24 uhura diskcleaner[2639]: /dev/sda5 40511148 13872228 26638920 35% /ngfw/Volume
Feb 9 04:10:24 uhura diskcleaner[2639]: '/etc/sf/dc/_ngfw_Volume/dc85/DC663-delete-rotated-logs.sh' completed in 0.21 seconds - status = 0.
Feb 9 04:10:24 uhura diskcleaner[2639]: Completed disk cleaning scripts in directory '/etc/sf/dc/_ngfw_Volume/dc85' for mount point '/ngfw/Volume' in 0.69 seconds.
Feb 9 04:10:24 uhura diskcleaner[2639]: Finished level 85 disk cleaning for mount point '/ngfw/Volume': current usage = 35%.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
27-Jun-2025
|
Première publication |