
Es gibt einige Protokolldateien, die sehr viel Speicherplatz beanspruchen, und ich möchte ihn unter Linux auf 10 MB beschränken.
Beispiel: Die Datei „test.log“ darf nicht größer als 10 MB sein. In dieser Datei sollten keine Protokolle mehr gespeichert werden.
Können Sie uns bitte die möglichen Schritte oder Befehle mitteilen, um dies zu erreichen?
Antwort1
Inspiriert vonAlex' Antwort auf eine ähnliche Frage,WennSie können den Speicherort der Protokolldatei so steuern, dass sie in einem separaten Verzeichnis abgelegt werden kann. Anschließend können Sie eine Loop-Mount-Datei erstellen, die von einer Datei einer bestimmten Größe unterstützt wird. Schreibvorgänge in dieses Unterverzeichnis werden dann durch die Größe der unterstützenden Datei begrenzt. Dies würde unübersichtlich werden, wenn Sie mehrere Protokolldateien verarbeiten müssten.
## adjust the size to taste for filesystem overhead
dd if=/dev/zero of=./10mb.img bs=1M count=12
/sbin/mkfs.ext4 10mb.img
mkdir logdir
sudo mount -t ext4 -o loop 10mb.img logdir
sudo dd if=/dev/urandom of=logdir/test.log
dd: writing to ‘logdir/test.log’: No space left on device
21033+0 records in
21032+0 records out
10768384 bytes (11 MB) copied, 2.3511 s, 4.6 MB/s
Antwort2
Würde ein Emlog-Modul helfen? Ich sehe es erwähnt beihttps://serverfault.com/questions/133320/turning-a-log-file-into-a-sort-of-circular-buffer, aber ich bin nicht sicher, ob es passt.