現在のアイデアが不足しています。 cron ジョブが logrotate をトリガーすると、proftpd デーモンは再起動されません。 Logrotateはすべてのログファイルを回転させ、proftpdを停止しますが、proftpdを再起動するわけではありません。
強制的に回転させると、logrotate -f /etc/logrotate.d/proftpd-basic
すべてがうまくいきます。
私は次の設定を得ました。
猫/etc/cron.daily/logrotate
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
猫/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
猫/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
}
答え1
Invoke-rc.dで絶対パスを試してください。
/usr/sbin/invoke-rc.d
答え2
私はかつて同じ問題を経験しました。 proftpd initスクリプトのバグが原因でftpサーバーが起動しないようです。バラよりhttps://bugs.launchpad.net/ubuntu/+source/proftpd-dfsg/+bug/1246245
回避策は、以下を含むように構成を変更することです。
copytruncate
これにより、古いファイルを移動して新しいファイルを作成するのではなく、ファイルの内容をコピーしてから古いファイルを切り捨てます。つまり、デーモンを再起動する必要はありません。