본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
매크로 정의를 읽어 입력 파일의 매크로를 펼쳐 출력하는 매크로 처리기
  • 경로 : /usr/bin/m4
  • 패키지 : m4 (sendmail 설정을 바꾸려면 sendmail-cf 패키지도 필요하다)

m4 는 입력 파일 안의 매크로 이름을 정의된 내용으로 바꿔 표준 출력으로 내보내는 범용 매크로 처리기다. 리눅스 관리에서는 거의 sendmail 설정 파일을 만들 때 쓴다. sendmail 이 실제로 읽는 /etc/mail/sendmail.cf 는 문법이 어려워 직접 고치지 않고, 사람이 읽기 쉬운 매크로 파일 /etc/mail/sendmail.mc 를 고친 뒤 m4 로 펼쳐 sendmail.cf 를 다시 만든다.

m4 [옵션] [입력파일 ...]
  • 결과는 표준 출력으로 나오므로 리다이렉션(>)으로 파일에 저장한다
  • -D 이름[=값] : 매크로를 정의한다.
  • -U 이름 : 매크로 정의를 지운다.
  • -I 디렉터리 : include 할 파일을 찾을 디렉터리를 더한다.
# vi /etc/mail/sendmail.mc
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# systemctl restart sendmail
  • sendmail.mc 에서 줄 앞의 dnl 은 m4 의 주석 표시다. 예를 들어 25번 포트를 모든 주소에서 받으려면 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 줄의 Addr 를 지우거나 0.0.0.0 으로 바꾼 뒤 m4 로 다시 만든다

헷갈리는 명령

편집 원본 편집
명령 하는 일
m4 sendmail.mc 를 펼쳐 sendmail.cf 를 만든다
makemap hash access·virtusertable 같은 텍스트 맵을 .db 데이터베이스로 만든다
newaliases /etc/aliases 를 aliases.db 로 다시 만든다(sendmail -bi)
mailq 메일 큐의 내용과 전송 상태를 본다(sendmail -bp)