Inhalt

Einleitung

Software- und Hardware-Mindestanforderungen

Funktionsbeschreibung und exemplarische Vorgehensweise

Überblick

FMC Diskcleaner

FTD Diskcleaner

Verfügbare Diskcleaner-Skripts anzeigen

Manuelles Ausführen des Diskcleaners

Gedrehte Protokolle löschen

Partitionsablauf in Disk Manager

Silo-Drain für die Datenträgerverwaltung

Gelöschte Dateien abschneiden

Anhalten und Starten von DiskCleaner

Software-Technologie

Diskcleaner.py

Diskcleaner.sh

Unter den Deckeln

Fehlerbehebung Diskcleaner

Systemdateien

Fehlerbehebung

Einleitung

In diesem Dokument wird beschrieben, wie Dateien vom Systemdatenträger bereinigt werden.

Software- und Hardware-Mindestanforderungen

Manager und Version: FMC/FDM 7.6.0 CLI ausgeführt am FMC oder FTD CLI

Anwendung (ASA/FTD) und Mindestversion der Anwendung: FTD 7.6.0

Unterstützte Plattformen: Alle FMC- und FTD-Geräte verfügen über diese Funktion.

Funktionsbeschreibung und exemplarische Vorgehensweise

Überblick

Der diskcleaner und seine Skripte werden bei der Installation/beim Upgrade installiert. Es ist nicht Teil der Upgrade-Skripte. Der Prozess diskcleaner.py wird vom Process Manager beim Systemstart gestartet. Er wird als vom Prozessmanager verwalteter Daemonprozess ausgeführt und ausgeführt, bis das System heruntergefahren wird. Die Datenträgerbereinigung verfügt über Datenträgerskripts, die aufgerufen werden, wenn der Nutzungsprozentsatz des Datenträgervolumens die konfigurierten Grenzwerte überschreitet. Beispielsweise gibt es derzeit Skripte für die Datenträgerbereinigung, die aufgerufen werden, wenn die Volumesetzungsrate 85 % erreicht, und andere, die aufgerufen werden, wenn die Volumesetzungsrate 95 % erreicht. Wenn die Datenträgerfülle 95 % erreicht, werden die 95 %-Bereinigungsskripte ausgeführt, und wenn die Datenträgerfülle größer als 85 % bleibt, werden die 85 %-Bereinigungsskripte ausgeführt.

FMC Diskcleaner

Der DiskCleaner ist derzeit so konfiguriert, dass er auf dem FMC ausgeführt wird:

- Bereinigungsaktionen bei 85 % Festplattennutzung:

- Kürzung (auf 0 Byte) aller gelöschten Dateien (Dateien, die gelöscht wurden, aber noch durch einen laufenden Prozess geöffnet sind). Diese Dateien können mit dem Befehl lsof +L1 angezeigt werden.

- Erzwingen Sie den Disk Manager, alle Silos abzuleiten.

- Löschen Sie alle rotierten Protokolldateien (Dateien mit den Dateierweiterungen xxxxxxxxx.n.gz, z. B. messages.1.gz).

- Bereinigungsaktionen bei 95 % Festplattennutzung:

- Den Disk Manager zwingen, alle Silos maximal auszulagern. Dadurch werden die Silos auf 25 % ihrer normalen Niedrigwassermenge entwässert.

FTD Diskcleaner

Dies ist, was der Diskcleaner derzeit konfiguriert ist, um auf FTD ausgeführt zu werden:

- Bereinigungsaktionen bei 85 % Festplattennutzung:

- Kürzung (auf 0 Byte) aller gelöschten Dateien (Dateien, die gelöscht wurden, aber noch durch einen laufenden Prozess geöffnet sind). Diese Dateien können mit dem Befehl lsof +L1 angezeigt werden.

- Erzwingen Sie den Disk Manager, alle Silos abzuleiten.

- Löschen Sie alle rotierten Protokolldateien (Dateien mit den Dateierweiterungen xxxxxxxxx.n.gz, z. B. messages.1.gz).

- 95 % Aktionen zur Festplattennutzung:

- Den Disk Manager zwingen, alle Silos maximal auszulagern. Dadurch werden die Silos auf 25 % ihrer normalen Niedrigwassermenge entwässert.

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

Verfügbare Diskcleaner-Skripts anzeigen

Verwenden Sie den Befehl system support diskcleaner-show, um die zur Ausführung verfügbaren Disk Cleaner-Skripts anzuzeigen. Die hier angezeigten Skripte können mit dem Befehl diskcleaner-run manuell ausgeführt werden, um manuell Speicherplatz freizugeben. Jedes dieser Datenträgerbereinigungsskripts wird auf diesen Folien mit Aufrufbeispielen beschrieben.

> 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

Manuelles Ausführen des Diskcleaners

Geben Sie den Befehl diskcleaner ein. Die vorhandenen Methoden diskmanager und disk pruner reichen für diese neue Aufgabe nicht aus. Der DiskManager wurde entwickelt, um die Fülle der Festplatte in Echtzeit zu steuern, während Dateien geöffnet und geschlossen werden. Die Konfigurationsdateien von diskmanager sind selektiv, kompliziert und zerbrechlich. Der Pruner-Prozess wurde entwickelt, um die Nutzung von Dateispeicherplatz für einzelne Funktionskomponenten zu reduzieren, ohne dass die Gesamtsystemfestplattenfüllstände berücksichtigt werden. Das neue diskcleaner-Framework wurde erstellt, um die Möglichkeit zu bieten, Dateien auf der Grundlage der Systemfestplattenfüllstände zu entfernen, die dem diskmanager ähnlich sind, mit der einfachen Verwendung einer Skriptsprache, die der des Disk-Pruner-Prozesses ähnelt.

Verwenden Sie den Befehl diskcleaner-run, um ein diskcleaner-Skript manuell auszuführen. Der Befehl lautet:

system support diskcleaner-run

wobei Dateiname der Name des auszuführenden diskcleaner-Skripts ist. Dabei kann es sich um einen vollständigen Pfad mit Verzeichnis- und Dateinamen, einen relativen Pfad (aus /etc/sf/dc) oder den Namen eines Skripts (wie in /etc/sf/dc genannt) handeln. Standard-Globs werden akzeptiert. Der Dateiname unterliegt Sicherheitsanforderungen, die den zulässigen Zeichensatz einschränken können (wie keine Verwendung von Backticks `). Denken Sie daran, dass der diskcleaner nur blindlings Skripte ausführt. Sie können also ein neues Skript erstellen, das mehrere diskcleaner-Skripte ausführt, und dann dieses neue Skript ausführen (sodass alle darin enthaltenen diskcleaner-Skripte ausgeführt werden).

Gedrehte Protokolle löschen

Löscht alle rotierten Protokolldateien auf dem angegebenen Bereitstellungspunkt.

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

Löscht alle rotierten Protokolldateien auf dem angegebenen Bereitstellungspunkt.

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.

Partitionsablauf in Disk Manager

Legen Sie fest, dass der Datenträgermanager eine maximale Auslastung aller Partitionen durchführt.

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

Stellen Sie sicher, dass der Datenträgermanager alle Partitionen maximal auslesen kann.

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

...

>

Silo-Drain für die Datenträgerverwaltung

Sorgen Sie dafür, dass der Disk Manager eine maximale Auslastung aller Silos gewährleistet.

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

Stellen Sie sicher, dass der Disk Manager alle seine Silos maximal entleeren kann.

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

>

Gelöschte Dateien abschneiden

Truncate to 0 Bytes alle versteckten gelöschten Dateien, die aufgrund geöffneter Dateizugriffe vorhanden sind.

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

>

Anhalten und Starten von DiskCleaner

Verwenden Sie den Befehl pmtool, um den diskcleaner zu stoppen und zu starten.

> pmtool disablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) - User Disabled

...

> pmtool enablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) – Running 17086

...

Software-Technologie

Diskcleaner.py

Dieses Skript ist das Hauptprogramm für den diskcleaner. Dieses Python-Skript wird wie folgt ausgeführt:

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

wobei, wenn debugging angegeben ist, das Skript Debuginformationen ausgibt und help die Ausgabenutzungsinformationen und exit ist.

Das Intervall (in Sekunden) zwischen den Reinigungszyklen der Festplatte. Wenn nicht angegeben, ist der Standardwert 600 Sekunden. diskcleaner.py wird vom Process Manager beim Systemstart gestartet. Er wird als vom Process Manager verwalteter Daemon-Prozess ausgeführt und ausgeführt, bis das System heruntergefahren wird. Wenn der diskcleaner gestartet wird, führt er eine Schleife aus, die alle Intervall-Sekunden ausgeführt wird. In jedem Zyklus scannt der diskcleaner alle Einhängepunkte (/, /Volume, ...), die durch den Befehl df -a angegeben sind, und ruft deren aktuelle Festplattennutzung ab (gemessen durch den Befehl df).

Der DiskCleaner durchläuft jede Reinigungsstufe, beginnend mit Stufe 0, und arbeitet so lange nach oben, bis die Anzahl der Stufen größer als der prozentuale Anteil der Festplattennutzung an diesem Mount-Punkt ist. Sie müssen nur eine Ebene reinigen, wenn die Verwendung des Montagepunkts größer oder gleich der Ebenennummer ist. Wenn die Nutzung also 55 % beträgt, führen Sie jede Scheibenreinigungsstufe der Reihe nach aus - 0, 1, 2, ..., 55.

Wenn eine Reinigung durchgeführt werden muss, wird das Shell-Skript diskcleaner.sh (siehe unten) aufgerufen, um die eigentliche Reinigung durchzuführen. Dieses Skript ruft jedes Skript, das im Verzeichnis diskcleaner des Mount-Punktes gefunden wird, für die angegebene saubere Ebene blind auf.

- Angenommen, der Bereitstellungspunkt /mount wird derzeit zu 96 % genutzt. Wenn der diskcleaner seinen Zyklus startet, führt er den df-Befehl aus und stellt fest, dass der /Mount-Punkt bei 96% Nutzung liegt. Die Verwendungsstufe für die Säuberung der Stufe 0 ist auf 0% festgelegt, sodass der diskcleaner alle Level 0-Skripte ausführt, die für den /mount-Punkt angegeben sind. An diesem Punkt führt der diskcleaner den Befehl df erneut aus. Nehmen Sie an, dass die Reinigung der Stufe 0 nichts getan hat, sodass der Verbrauch immer noch 96% beträgt. Der diskcleaner startet nun alle Level 1-Skripte, dann Level 2 und so weiter.

- Angenommen, es gibt Skripte auf Ebene 50, die die Nutzung des / Mount-Punkts auf 90 % reduzieren. Der Diskcleaner fährt mit Level 51, 52, ... fort.

- Angenommen, es gibt Skripte der Stufe 80, die die Nutzung der Mount-Punkte auf 75 % reduzieren. Jetzt ist der Disk Cleaner mit dem /Mount-Punkt fertig, da 75% weniger als die nächste Stufe ist, die 81 ist.

Diskcleaner.sh

Die Datei diskcleaner.sh ist ein Bash-Skript, das die Datenträgerbereinigung initiiert.

diskcleaner.sh <mount point> <level>

wobei der Montagepunkt der zu reinigende Montagepunkt ist und die Ebene sich auf die zu reinigende Ebene bezieht. Dies ist der Prozentsatz, mit dem die Reinigung durchgeführt wird. Wenn Sie beispielsweise 85 eingeben, wird diskcleaner mit 85 % ausgeführt.

Alle im Verzeichnis vorhandenen Skripts für die Datenträgerbereinigung:

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

die mit dem Dateiglob DC* übereinstimmen, werden ausgeführt (in alphabetischer Reihenfolge).

Beachten Sie, dass die Namen der Einhängepunkte in der Regel Schrägstriche (/) enthalten, sodass die Verwendung des tatsächlichen Namens des Einhängepunkts im Verzeichnispfad umständlich (oder illegal) ist. Ändern Sie also ein / in _. Um also den Mount-Punkt /dev/shm auf Clean-Level 85 (für 85% Festplattennutzung) zu säubern, müssen die Skripte übereinstimmen: [/ngfw]/etc/sf/dc/_dev_shm/85/DC*

Dieses Paradigma basiert auf dem rc init-Skript-Paradigma, bei dem alle übereinstimmenden Skripte im rcn.d-Verzeichnis blind ausgeführt werden. Das DC-Präfix ist auch ein Überbleibsel aus dem rc init Paradigma - diese Skripte beginnen alle entweder mit S (start) oder K (kill). Ich schätze, es hält Sie davon ab, Mist-Dateien, die nur im Verzeichnis links abholen. Verwenden Sie daher das Präfix "RZ".

Unter den Deckeln

Der diskcleaner verwendet den df-Befehl linux, um die Datenträgerverwendung zu überprüfen:

Fehlerbehebung Diskcleaner

Systemdateien

- Die Fehlerbehebung für den Diskcleaner kann wie folgt durchgeführt werden:

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

- Die vom diskcleaner protokollierten Einträge enthalten diskcleaner als Prozessnamen und die diskcleaner-PID.

- Dies ist die Standardmethode für die Protokollierung eines PM-basierten Prozesses.

Fehlerbehebung

Was der diskcleaner tut, ist an process_stdout.log protokolliert. In der Regel gibt es keine Ausgabe, da keine Datenträgerbereinigung durchgeführt werden muss. Wenn jedoch eine Datenträgerbereinigung durchgeführt werden muss, werden alle gelöschten Dateien in process_stdout.log protokolliert. Auf der nächsten Seite sehen Sie ein Beispiel dafür, was process_stdout.log enthalten kann. Grep on diskcleaner ̌Beispielausgabe 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%.