I'm currently running out of ideas. The proftpd daemon doesn't restart if logrotate is triggered by the cron task. Logrotate rotates all the logfiles, stops proftpd, but does not start proftpd again.
If I force the rotation with logrotate -f /etc/logrotate.d/proftpd-basic everything works fine..
I got the following setup.
cat /etc/cron.daily/logrotate
#!/bin/sh test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate /etc/logrotate.conf cat /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } /var/log/btmp { missingok monthly create 0660 root utmp rotate 1 } # system-specific logs may be configured here cat /etc/logrotate.d/proftpd-basic
/var/log/proftpd/proftpd.log /var/log/proftpd/controls.log { weekly missingok rotate 7 compress delaycompress notifempty create 640 root adm sharedscripts postrotate # reload could be not sufficient for all logs, a restart is safer invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true #invoke-rc.d proftpd reload 2>/dev/null >/dev/null || true endscript } /var/log/proftpd/xferlog /var/log/proftpd/xferreport { monthly missingok rotate 7 compress delaycompress notifempty create 640 root adm sharedscripts prerotate endscript postrotate # reload could be not sufficient for all logs, a restart is safer invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true #invoke-rc.d proftpd reload 2>/dev/null >/dev/null || true # run ftpstats on past transfer log ftpstats -a -r -l 2 -d -h -f /var/log/proftpd/xferlog.0 2>/dev/null >/var/log/proftpd/xferreport || true endscript }