Perputaran log bukanlah setelan yang berlaku bagi seluruh server. Tiap layanan datang membawa aturannya sendiri, sehingga apa pun yang dipasang dengan tangan — atau diatur untuk menulis ke tempat yang tak lazim — sama sekali tak punya perputaran dan terus membesar sampai cakramnya penuh.

Temukan yang sedang membesar

du -h /var/log --max-depth=2 | sort -h | tail -15
ls -lhS /var/log/*.log | head

Putarlah ia

# /etc/logrotate.d/mysite
/var/www/site/storage/logs/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data www-data
}

Empat belas hari dalam bentuk terkompres adalah bawaan yang baik: cukup untuk menyelidiki pekan lalu, cukup kecil untuk dilupakan.

logrotate -d /etc/logrotate.d/mysite   # dry run, prints what it would do

Log yang penuh dalam hitungan jam

Itu bukan masalah perputaran. Satu peringatan yang berulang pada tiap permintaan menulis bergiga-giga dalam sehari, dan memutarnya hanya menghapus buktinya lebih cepat.

sort /var/log/nginx/error.log | uniq -c | sort -rn | head -5

Baris paling atas hampir selalu merupakan seluruh persoalannya: satu berkas yang hilang tetapi diminta sejuta kali, atau satu peringatan PHP di setiap halaman.

Melapangkan ruang dengan menghapus log yang sedang ditulisi sebuah layanan tak mengembalikan ruangnya — prosesnya masih memegang gagangnya. Pangkaslah: : > /var/log/big.log
Putarlah menurut ukuran, bukan hanya menurut hari, untuk apa pun yang bisa melonjak: size 100M berdampingan dengan daily menangkap yang kebablasan sebelum cakramnya sempat menangkapnya.