cronjob이 트리거될 때 logrotate가 proftpd를 시작하지 않습니다.

cronjob이 트리거될 때 logrotate가 proftpd를 시작하지 않습니다.

현재 아이디어가 부족합니다. 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

이렇게 하면 이전 파일을 이동하고 새 파일을 만드는 대신 파일 내용을 복사한 다음 이전 파일을 자릅니다. 즉, 데몬을 다시 시작할 필요가 없습니다.

관련 정보