현재 아이디어가 부족합니다. 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
이렇게 하면 이전 파일을 이동하고 새 파일을 만드는 대신 파일 내용을 복사한 다음 이전 파일을 자릅니다. 즉, 데몬을 다시 시작할 필요가 없습니다.