2013-02-26 5 views
0

이렇게 스크립트를 만드는 것이 합리적입니까, 아니면 스풀 파일이 손상 될 수 있습니까?/var/spool/mail/*에 logrotate 메일 스크립트

/var/spool/mail/* { 
monthly 
size 500M 
missingok 
rotate 24 
notifempty 
sharedscripts 
} 
+0

그것은 또한 회전 된 파일을 회전하기 때문에 당신은 와일드 카드 "*"를 사용할 수 없습니다 원하는대로이 작업을 조정할 수 있습니다. 그래서 파일은 시간이 지남에 따라 기하 급수적으로 곱합니다. 와일드 카드를 사용하는 것을 알고있는 실용적인 방법은 "* log"와 비슷하지만 "log"다음에 추가 된 회전 텍스트가있는 회전 된 파일이 인식됩니다. – fred

+0

편집 : "인정되지 않습니다"stackoverflow 세션 시간 초과가 너무 짧습니다! – fred

+0

나는 당신이 질문과 해결책을 읽지 않을 것이라고 생각한다. 나는 이것을 위해 log rotate를 사용하지 않았다. 그러나 당신의 특별한 관심사로 대신 * .log를 사용할 수 있습니다. – radtek

답변

0

나는 이것에 대한 logrotate에 사용하지 않았다

내가 먼저 중 나머지, 보관, 5백메가바이트에 최대 메일 스풀 파일 크기를 제어하거나 한 달 동안을 유지 할 수 있어야합니다. 내가 대신 한 일은 스풀 파일을/dev/null로 리다이렉트하여 그들을 지우는 것이다. 나는 또한 나의 전자 우편 서비스를 전에 멈추고 정리 후에 그것을 시작했다. 당신이

echo "emailclean.sh starting on $(date)" 
echo "Stopping fetchmail service" 
#/sbin/initctl stop <service> 
pkill fetchmail 
sleep 10 
echo "Cleaning up old mail" 
cat /dev/null > /var/spool/mail/root 
cat /dev/null > /var/spool/mail/webalert 
sleep 10 
echo "Starting fetchmail Service as user webalert" 
sudo -u webalert /usr/bin/fetchmail 
#/sbin/initctl start <service> 
echo "Cleanup Complete! /var/spool/mail/root and webalert files sent to dev0" 
echo "emailclean.sh finished cleanup on $(date)"