Log tumbuh selamanya kecuali ada yang memangkasnya. Cakram yang penuh menjatuhkan basis data, server web, dan cadangan sekaligus, dan ia salah satu sebab paling lazim dari padam yang tak terjelaskan — lihat Log yang memenuhi cakram.
Satu aturan untuk aplikasi Anda sendiri
# /etc/logrotate.d/site
/var/www/site/storage/logs/*.log {
daily
rotate 14
size 100M
compress
delaycompress
missingok
notifempty
create 0640 www-data www-data
sharedscripts
postrotate
systemctl reload php8.3-fpm > /dev/null 2>&1 || true
endscript
}
Tanda yang menentukan apakah ia bekerja
Proses yang menahan sebuah berkas log tetap terbuka akan terus menulis ke berkas yang SUDAH DIPUTAR itu. Cakramnya penuh persis seperti sebelumnya, sementara log yang sekarang tetap kosong dan semuanya kelihatan baik-baik saja. Muat ulang layanannya di postrotate seperti di atas, atau pakailah copytruncate.
copytruncate # copy the file, then empty the original in place
# simpler, and loses the few lines written during the copy
Ujilah tanpa menunggu sehari
sudo logrotate -d /etc/logrotate.d/site # dry run, prints what it would do
sudo logrotate -f /etc/logrotate.d/site # force it now
ls -la /var/www/site/storage/logs/
Jurnalnya berputar sendiri
journalctl --disk-usage
sudo journalctl --vacuum-size=500M
systemd menyimpan lognya sendiri di bawah batasnya sendiri — lihat Membaca jurnal sistem.
Dan awasi cakramnya
df -h
sudo du -xh /var/log /var/www --max-depth=2 2>/dev/null | sort -h | tail -15
Berilah peringatan pada 80%, bukan pada 95%. Di antara kedua angka itu masih ada waktu untuk bertindak; sesudah 95%, satu log besar bisa menutup sisanya dalam hitungan menit.