Prerequisites
Before compressing logs, make sure you have:
- SSH access to your VPS
- Root or sudo privileges
Step 1: Enable Compression in logrotate
Connect to your VPS:
ssh hxroot@YOUR_SERVER_IP -p 22
sudo nano /etc/logrotate.conf
Ensure these lines are present:
compress
delaycompress
delaycompress keeps the most recent rotated log uncompressed for easier reading, then compresses on next rotation.
Step 2: Verify Compression Settings per Application
Check nginx config:
sudo cat /etc/logrotate.d/nginx | grep compress
Add if missing.
Step 3: Manual Compression of Old Logs
If you have unrotated large logs:
sudo gzip /var/log/syslog.1
Or compress all logs older than 7 days:
sudo find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} ;
Step 4: Set Compression Level
In /etc/logrotate.conf:
compresscmd /bin/gzip
compressoptions -9 # Max compression
Step 5: Test logrotate with compression
sudo logrotate -f /etc/logrotate.conf
Check results:
ls -lh /var/log/*.gz
✅ Automatic log compression enabled. Rotated logs will be compressed to save space.