[우분투, 민트] avantFAX에 cron을 이용해 faxes 파일과 tmp 파일들 자동정리 외 몇가지
nginX + php5-fpm + USB faxmodem + Hylafax + avantFAX를 이용해서 웹상에서 팩스서버를 운영한게 벌써 1년이 되었습니다. 1년 정도 되다보니 avantFAX에 있는 faxes, tmp 폴더에 쌓이는 파일들의 양이 너무 많아서 관리적 차원에서 문제가 생기기도 하고, 특정페이지에서 502 Bad gateway에러가 발생하기도 했습니다. 오늘은 이런 문제들을 해결해 보기로 합니다.
서버 사용환경
Linux Mint 17 Quiana MATE
nginX 웹서버를 바탕으로 avantFax를 설치해서 운영할때 몇몇 특정 페이지에서 502 bad gateway 에러가 발생한다면 다음과 같은 조치를 취해보자.
vi 등의 편집기 등으로 /etc/nginx/nginx.conf 파일을 열어서 아래와 같이 내용을 입력해준다.
$ sudo vi /etc/nginx/nginx.conf
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ... }
위 내용은 avantFAX에 국한된 내용이 아니라 nginX를 사용하면서 502 Bad gateway가 발생하면 살펴보아야 하는 공통 내용 중의 한가지 입니다.
또다른 bad gateway는 다음의 내용을 참고해 보십시요.
http://akal.co.kr/?p=182
팩스를 사용하다보면 쌓여가는 팩스파일과 임시파일들의 용량이 대단한데 생성되는 tif나 gif, pdf 파일들의 개별적 용량은 크지 않지만 하루에 5 ~ 6통의 팩스를 꾸준히 몇달간 받다보면 금새 몇백메가byte의 용량을 차지하게 됩니다. 이런 파일들을 자동으로 처리해주기 위해서는 다음과 같은 설정이 필요하니 꼼꼼히 읽어보시고 적용하시기 바랍니다.
avntFAX에 보면 avantfaxcron.php 라는 파일이 있는데 이 파일을 실행해보면 다음과 같은 사용법 메세지가 나온다.
$ sudo /var/www/avantfaxcron.php usage: avantfaxcron.php [-i num-days] [-d num-days] -t num-days options: -i num-days prune Inbox of faxes older than number of days -d num-days delete faxes from Inbox/Archive that are older than number of days -t num-days clean AvantFAX temporary directory of files older than number of days
-i 옵션은 지정된 날짜수보다 오래된 팩스함의 팩스들을 삭제해준다.
-d 옵션은 지정된 날짜수보다 오래된 팩스함과 아카이브(팩스보관함)의 팩스들을 삭제해준다.
-t 옵션은 avantfax/tmp 폴더에 생성되는 오래된 임시 팩스파일들을 삭제해준다.
이 파일을 crond 나 crontab에 등록해서 관리해주면 일정 시간마다 서버에서 알아서 팩스파일들을 자동으로 정리해준다. 이 글에서는 crontab보다 가장 간단하게 cron.d에 파일을 등록해서 이용하는 방법을 설명합니다.
/etc/cron.d
에 avantfax 파일을 생성하고 아래와 같은 파일을 만들어 줍니다.
$ sudo vi /etc/cron.d/avantfax
crond나 crontab에 대한 내용은 지금 설명하지 않도록 하겠습니다. 다음의 파일을 cron.d 폴더에 정확히 생성만 해주면 됩니다.
# 아래 경로명은 자신이 설치한 avantFAX 경로에 맞게 설정한다. # runs once an hour to update the phone book 0 * * * * root /var/www/avantfax/includes/phb.php # runs once a day to remove old files 30 3 * * * root /var/www/avantfax/includes/avantfaxcron.php -i 30 -d 90 -t 30
phb.php는 전화번호 book을 자동으로 업데이트 하고 정리해주는 파일입니다.
매일 오전 3시 30분에 avantfaxcron.php를 실행시켜서 팩스함은 30일까지만 보관하고 팩스보관함(아카이브)는 90일까지 저장, tmp에는 30일이 넘은 파일은 전부 삭제하는 것으로 설정했습니다. 잘 보시면 맨앞에 30이 분단위 그다음 3이 시간입니다.
위 파일 내용 중 root가 없으면 우분투나 민트에서는 에러가 발생합니다. syslog에 보면 사용권한이 없다고 에러를 기록하는데 avantFAX 홈페이지 설명에는 이 내용이 없어서 오랫동안 설정을 하지 못하다가 서버 이전때 테스트하고 cron 사용법을 익히면서 적용하게 되었습니다.
$ sudo service cron restart
마지막으로 cron 서비스를 재시작 해주면 됩니다.
처음 avantFAX를 소개하는 곳에서는 DB로 접속을 해서 아이디에 삭제 권한을 부여하도록 했는데 사용하다 보니 아이디목록에서 설정을 할수가 있더군요. 로그아웃 밑에 보시면 자그마한 모니터 모양의 admin 페이지로 이동하는 아이콘을 눌러서 이동한후에 User 목록에서 user를 눌러서 들어가보면 User can delete faxes: ㅁ
이런 체크박스가 있습니다. 이곳을 체크하고 저장하시면 삭제 권한을 가지는 아이디를 만들 수 있습니다.
만 1년동안 avantFAX를 이용해서 웹팩스를 만들어서 사용하는 동안 정말 많은 변화가 생겼습니다. 직원들의 만족도 역시 높았고, 불필요한 용지의 프린팅 등이 완전히 사라졌지요. 대신, 팩스를 보내려면 pdf로 원본을 스캔하는 과정이 살짝 번거롭네요. (물론 대부분의 문서작성기는 pdf 출력을 지원합니다. 신분증 사본등을 보낼때 말이죠 ^-^) 앞으로도 꾸준히 avantFAX를 이용해서 사무업무를 진행할 생각입니다. 웹 팩스서버 구축을 고민하시는 분들께 도움이 되길 바라며…