태그 Archives: bash script

crontab 에 등록된 스크립트의 한글 처리.

주기적인 작업을 crontab 에 등록하여 운영을 할때 캐릭터셋이 중요한 경우가 발생한다.
일반적으로 CentOS 리눅스 서버에는 i18n 설정이 되어 캐릭터셋이 운영 된다.

물론 CentOS7의 경우는 변경 되었다. ( /etc/locale.conf )

 

anyway.. cron 에 등록해서 적용하는경우 이러한 설정이 반영되지 않고 en_US가 기본 캐릭터셋으로 돌아간다 ‘ㅅ’a
때문에 캐릭터셋이 중요한 스크립트에서는 export LANG=ko_KR.eucKR 과 같이 선언을 하거나 source /etc/sysconfig/i18n내용을 호출하여 $LANG 가 정상 동작 하도록 한다 ‘ㅅ’a

echo $LANG 의 값이 euckr 혹은 utf8이 아닐 경우 i18n 혹은 locale.conf 을 불러오거나 현재 문서의 인코딩 셋을 LANG 으로 지정하도록 만든 로직 이다 ‘ㅅ’a (centos5 이하의 file 명령어 버전 차이때메동작 제대로 안됨..)

 

일반적으로 utf8서버에서 생성된 파일은 utf-8인코딩 셋일 꺼고 euc-kr 에서 생성된 파일은 euckr 문서일꺼기 때문에 =_=a
일반적인 상황에서는 export LANG=utf8 과 같은 선언으로도 충분하다.

다만 서버 관리 특성상 shell script의 버전관리를 통해 자동 배포를 하고(svn 혹은 git 처럼..)
받아서 쓰는 서버의 캐릭터셋이 예측할수 없을때 유용할 수 있음.

 

TLS통신을 위한 Public Certificate 발급&갱신

dovecot, sendmail, proftpd, pure-ftpd 를 위한 개인인증서 발급 혹은 갱신용 스크립트 이다.

스크립트 설명 :  sendmail.pem 인증서의 만료일 2주 미만으로 남았거나 인증서가 없으면 생성해준다.

cron 에 등록하여 일주일에 한번 정도씩 돌려주면 개인인증서 갱신 걱정 없이 사용할 수 있겠다.

vi /etc/cron.weekly/public_cert_make.sh 이런 위치에 넣어두면 일주일에 한번씩 돈다 ‘ㅅ’a

chmod 700 /etc/cron.weekly/public_cert_make.sh 해둬야 돈다 . 잊지 말자.

 

아래 설정값은 플레인 로그인을 막는 설정이 아니다.

LOGIN PLAIN, TLS 둘다 활성화 하는 옵션들 이다.

1. dovecot – STARTTLS 설정( /etc/dovecot/conf.d/10-ssl.conf )

평문 패스워드 막는건 /etc/dovecot/conf.d/10-auth.conf  파일의 disable_plaintext_auth 옵션이다.

 

2. sendmail – STARTTLS 설정( /etc/mail/sendmail.mc )

confAUTH_OPTIONS 는 주석 처리 해버린다 ‘ㅅ’a

평문 패스워드 막는건 define(confAUTH_OPTIONS', A p’)dnl 이렇게 주석 제거 하고 하면 된다.

( TLS연결 테스트 :  https://starttls.info  ) 혹은 아래 명령어.

 

 

3. proftpd – FTP over TLS 설정( /etc/proftpd.conf )

평문 패스워드 막는건 TLSRequired 값을 on 으로 하면 된다.

 

4. pure-ftpd – FTP over TLS 설정( /etc/pure-ftpd/pure-ftpd.conf )

평문 패스워드 막는건 TLS 값을 2 으로 하면 된다.