Sommario

Introduzione

Piattaforme software e hardware minime

Descrizione delle funzionalità e procedura dettagliata

Panoramica

FMC Diskcleaner

FTD Diskcleaner

Visualizza gli script di Diskcleaner disponibili

Esecuzione manuale di Diskcleaner

Elimina registri ruotati

Svuotamento della partizione di Gestione dischi

Svuotamento silo di Gestione dischi

Tronca file eliminati

Arresto e avvio di Diskcleaner

Tecnologia software

Pulizia disco.py

Diskcleaner.sh

Sotto le copertine

Risoluzione dei problemi di Diskcleaner

File di sistema

Procedure per la risoluzione dei problemi

Introduzione

Questo documento descrive come pulire i file dal disco di sistema.

Piattaforme software e hardware minime

Responsabili e versioni: CLI di FMC/FDM 7.6.0 eseguito presso la CLI di FMC o FTD

Applicazione (ASA/FTD) e versione minima dell'applicazione: FTD 7.6.0

Piattaforme supportate: Tutti i dispositivi FMC e FTD dispongono di questa funzionalità.

Descrizione delle funzionalità e procedura dettagliata

Panoramica

Diskcleaner e i relativi script vengono installati al momento dell'installazione o dell'aggiornamento. Non fa parte degli script di aggiornamento. Il processo diskcleaner.py viene avviato da Gestione processi all'avvio del sistema. Viene eseguito come un processo daemon gestito da Gestione processi e viene eseguito fino all'arresto del sistema. In Pulitura disco sono presenti script del disco che vengono richiamati quando la percentuale di utilizzo del volume del disco supera le soglie configurate. Ad esempio, attualmente esistono script di pulitura dei dischi che vengono richiamati quando l'utilizzo del volume raggiunge l'85% e altri quando l'utilizzo del disco raggiunge il 95%. Se la percentuale di riempimento del disco raggiunge il 95%, vengono eseguiti gli script di pulizia della percentuale di riempimento del 95% e, se la percentuale di riempimento del disco rimane superiore all'85%, vengono eseguiti gli script di pulizia della percentuale di riempimento dell'85%.

FMC Diskcleaner

Questo è il comando attualmente configurato per l'esecuzione di Diskcleaner nel FMC:

- 85% di azioni di pulizia dell'utilizzo del disco:

- Tronca (a 0 byte) tutti i file eliminati (file che sono stati eliminati ma sono ancora aperti da un processo in esecuzione). Per visualizzare questi file, usare il comando lsof +L1.

- Svuotare tutti i silos forzando Gestione dischi.

- Eliminare tutti i file di registro ruotati (quelli con estensioni xxxxxxx.n.gz, ad esempio messages.1.gz)

- Operazioni di pulizia dell'utilizzo del disco pari al 95%:

- Imporre al gestore del disco di eseguire il massimo svuotamento di tutti i silos. Questo drena i silos al 25% della loro normale soglia di bassa marea.

FTD Diskcleaner

Questo è ciò che diskcleaner è attualmente configurato per l'esecuzione sull'FTD:

- 85% di azioni di pulizia dell'utilizzo del disco:

- Tronca (a 0 byte) tutti i file eliminati (file che sono stati eliminati ma sono ancora aperti da un processo in esecuzione). Per visualizzare questi file, usare il comando lsof +L1.

- Svuotare tutti i silos forzando Gestione dischi.

- Eliminare tutti i file di registro ruotati (quelli con estensioni xxxxxxx.n.gz, ad esempio messages.1.gz)

- 95% delle azioni di utilizzo del disco:

- Imporre al gestore del disco di eseguire il massimo svuotamento di tutti i silos. Questo drena i silos al 25% della loro normale soglia di bassa marea.

NOTE: At the current time, FXOS files and logs are outside of the scope of the diskcleaner!!!

Visualizza gli script di Diskcleaner disponibili

Utilizzare il comando system support diskcleaner-show per visualizzare gli script di pulitura dischi disponibili per l'esecuzione. Gli script visualizzati possono essere eseguiti manualmente utilizzando il comando diskcleaner-run per liberare manualmente spazio su disco. Ognuno di questi script di pulitura del disco è descritto in queste diapositive con esempi di richiamo.

> 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

Esecuzione manuale di Diskcleaner

Immettere il comando diskcleaner. I metodi esistenti di gestione dei dischi e di eliminazione dei dischi sono insufficienti per questa nuova attività. Diskmanager è stato progettato per controllare i livelli di pienezza del disco in tempo reale man mano che i file vengono aperti e chiusi. I file di configurazione di diskmanager sono selettivi, complessi e fragili. Il processo di eliminazione è progettato per ridurre l'utilizzo dello spazio dei file per i singoli componenti delle feature, senza che vengano rilevati i livelli complessivi di riempimento del disco del sistema. Il nuovo framework di diskcleaner è stato creato per consentire la rimozione dei file in base ai livelli di completamento del disco di sistema simili a quelli di diskmanager, con la semplicità di utilizzare un linguaggio di script simile a quello del processo di eliminazione del disco.

Utilizzare il comando diskcleaner-run per eseguire manualmente uno script diskcleaner. Il comando è:

system support diskcleaner-run

dove nome file è il nome dello script diskcleaner da eseguire. Può essere un percorso completo con directory e nome file, un percorso relativo (da /etc/sf/dc) o il nome di uno script (come è denominato in /etc/sf/dc). Sono accettati i file globs standard. Il nome del file è soggetto a requisiti di sicurezza che possono limitare il set di caratteri consentiti (come l'assenza di segni di graduazione `). Tenere presente che l'utilità di pulitura disco esegue solo script ciechi. È quindi possibile creare un nuovo script che esegua diversi script di diskcleaner e quindi eseguire solo il nuovo script, in modo che tutti gli script di diskcleaner inclusi vengano eseguiti.

Elimina registri ruotati

Elimina tutti i file di registro ruotati nel punto di montaggio specificato.

> system support diskcleaner-run sfims-file-mgmnt-infra-delete-rotated-logs.sh --help

Elimina tutti i file di registro ruotati nel punto di montaggio specificato.

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.

Svuotamento della partizione di Gestione dischi

Svuotamento massimo di tutte le partizioni da parte di Gestione disco

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh --help

Impostare Gestione disco in modo da eseguire un'operazione di svuotamento massimo di tutte le partizioni.

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

...

>

Svuotamento silo di Gestione dischi

Impostare lo svuotamento massimo di tutti i silos da parte di Gestione disco

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh --help

Fare in modo che il gestore del disco esegua il massimo svuotamento di tutti i suoi 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

>

Tronca file eliminati

Tronca a zero byte tutti i file eliminati nascosti presenti a causa di handle di file aperti.

> 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.

>

Arresto e avvio di Diskcleaner

Utilizzare il comando pmtool per arrestare e avviare diskcleaner.

> pmtool disablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) - User Disabled

...

> pmtool enablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) – Running 17086

...

Tecnologia software

Pulizia disco.py

Questo script è il programma principale per l'utilità di pulitura disco. Questo script Python viene eseguito nel modo seguente:

diskcleaner.py [--debug] [--help] [--interval <interval>]

se è specificato il debug, lo script restituisce le informazioni di debug, mentre la guida restituisce le informazioni sull'utilizzo e l'uscita.

Intervallo (in secondi) tra i cicli di pulizia del disco. Se non viene specificato, il valore predefinito è 600 secondi. diskcleaner.py viene avviato da Gestione processi all'avvio del sistema. Viene eseguito come un processo daemon gestito da Gestione processi (Process Manager) e fino all'arresto del sistema. Quando viene avviato, diskcleaner esegue un ciclo che viene eseguito ogni secondi di intervallo. Ad ogni ciclo, diskcleaner analizza tutti i punti di montaggio (/, /Volume, ...) specificati dal comando df -a e ottiene l'utilizzo corrente del disco (misurato dal comando df).

L'utilità di pulitura dei dischi esamina ogni livello di pulitura a partire dal livello 0 fino a raggiungere un livello superiore alla percentuale di utilizzo del disco del punto di montaggio. È necessario eseguire la pulizia solo per un livello se l'utilizzo del punto di montaggio è uguale o superiore al numero del livello. Quindi, se l'utilizzo è del 55%, eseguire ogni livello di pulizia del disco in ordine - 0, 1, 2, ..., 55.

Al termine della pulizia, viene richiamato lo script della shell diskcleaner.sh (vedere di seguito) per eseguire la pulizia effettiva. Lo script chiama solo ciecamente tutti gli script trovati nella directory diskcleaner del punto di montaggio per il livello di pulizia specificato.

- Si supponga, ad esempio, che il punto di montaggio sia attualmente utilizzato al 96%. Quando diskcleaner avvia il ciclo, esegue il comando df e verifica che il punto di montaggio / sia al 96% dell'utilizzo. Il livello di utilizzo per la pulitura di livello 0 è impostato su 0%, pertanto la pulitura disco esegue tutti gli script di livello 0 specificati per il punto di montaggio /. A questo punto, diskcleaner esegue nuovamente il comando df. Si supponga che la pulizia di livello 0 non abbia fatto nulla, quindi l'utilizzo è ancora del 96%. Verranno ora eseguiti tutti gli script di livello 1, quindi il livello 2 e così via.

- Si supponga che esistano script al livello 50 che riducono l'utilizzo / punto di montaggio al 90%. L'unità continua con il livello 51, 52, ...

- Si supponga che al livello 80 esistano script che riducono l'utilizzo dei punti di montaggio / al 75%. A questo punto, l'unità di pulitura è pronta con il punto di montaggio / perché il 75% è inferiore al livello successivo, pari a 81.

Diskcleaner.sh

Il file diskcleaner.sh è uno script bash che avvia l'evento di pulitura del disco.

diskcleaner.sh <mount point> <level>

dove il punto di montaggio è il punto di montaggio da pulire e il livello si riferisce al livello di pulizia da eseguire. Percentuale utilizzata per la pulizia. Se ad esempio si immette 85, verrà eseguito diskcleaner all'85%.

Tutti gli script di pulitura del disco presenti nella directory:

[/ngfw]/etc/sf/dc/<mount point>/dc<clean level>

che corrispondono al file glob DC* vengono eseguiti (in ordine alfabetico).

Tenere presente che, poiché i nomi dei punti di montaggio in genere includono barre (/), l'utilizzo del nome del punto di montaggio effettivo nel percorso della directory è scomodo o non valido. Quindi, modificare any / in _. Pertanto, per eliminare il mount point /dev/shm al livello di pulizia 85 (per l'utilizzo del disco all'85%), gli script devono corrispondere: [/ngfw]/etc/sf/dc/_dev_shm/85/DC*

Questo paradigma si basa sul paradigma dello script di inizializzazione rc, in base al quale tutti gli script corrispondenti nella directory rcn.d vengono eseguiti ciecamente. Il prefisso DC è anche un rifiuto del paradigma rc init - questi script iniziano tutti con S (start) o K (kill). Immagino che ti impedisca di raccogliere i file di merda che sono appena lasciati nella directory. Quindi, utilizzare un prefisso di CC.

Sotto le copertine

Diskcleaner utilizza il comando linux df per verificare l'utilizzo del disco:

Risoluzione dei problemi di Diskcleaner

File di sistema

- Per risolvere i problemi relativi al diskcleaner, esaminare:

/var/log/process_stdout.log and /var/log/process_stderr.log

- Le voci registrate da diskcleaner contengono diskcleaner come nome del processo e il PID di diskcleaner.

- Questo è il modo standard di esaminare la registrazione per un processo basato su PM.

Procedure per la risoluzione dei problemi

Le operazioni eseguite da diskcleaner vengono registrate in process_stdout.log. In genere, non viene generato alcun output perché non è necessario eseguire la pulizia del disco. Tuttavia, se è necessario eseguire la pulizia del disco, i file eliminati vengono registrati in process_stdout.log. Nella pagina successiva è riportato un esempio di ciò che può contenere process_stdout.log. Grep su diskcleaner. ̌Output di esempio in 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%.