티스토리 뷰
ssh 로 접속후 crond 재시작 후 crond 에서 실행하는 스크립트에 변수가 한글이 들어가면 에러가 나는 경우가 발생했다.
알고보니, 접속하는 로컬의 locale 설정이 원격지에 ssh 접속 시 적용이 되었고,
로컬의 LANG=en_US 환경이 적용된 상태에서 crond가 재시작 되어 crond에서 실행하는 스크립트에 영향을 미친 것이었다. =ㅁㅠ
ssh 접속할때 locale(LANG, LC_*) 전달은
로컬 /etc/ssh/ssh_config 파일에 SendEnv LANG LC_* 설정이 존재하면 ssh 접속시 locale 설정이 같이 전송되고,
원격 /etc/ssh/sshd_config 파일에 AcceptEnv LANG LC_* 설정이 존재하면 ssh 클라이언트에 전송된 locale 설정을 적용하도록 되어있다.
일단 ~/.bash_profile 에 넣어주면 .bash_profile 설정을 최종 적용하는 것으로 확인이되어서 .bash_profile 파일에 export LANG=en_US.UTF-8 처리하고 마무리 지었다.
추가로 해당 이슈나는 스크립트가 python 이였고, subprocess.Popen 실행시 한글이 포함되어있으면 문제가 생긴 케이스였는데, 스크립트 상에서 LANG 환경변수 처리를 할 수도 있다.
1 2 3 4 5 6 7 8 | import os import subprocess my_env = os.environ.copy() my_env["LANG"] = "en_US.UTF-8" my_command = "locale" subprocess.Popen(my_command, env=my_env) | cs |
위와 같이 처리 해주면, subprocess.Popen 실행시 특정 환경 수만 바꿔서 실행 할 수 있다.
'운영체제' 카테고리의 다른 글
Powershell IIS binding 도메인 가져오기 (0) | 2017.12.05 |
---|---|
Powershell Hyper-V 자주 사용하는 명령어 정리 (0) | 2017.11.17 |
Windows Temp 디렉토리 환경변수 변경 실행 (0) | 2017.08.03 |
Powershell FTP Client 사용법 (0) | 2017.07.21 |
Powershell 윈도우 파일 다운로드 명령어 (0) | 2017.04.21 |
댓글
warpmemory
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
페이지
TAG
- RESTful
- Web
- error
- PowerShell
- Windows
- 번역
- command
- Module
- configuration
- httpd
- 외부링크
- 코드
- client
- monitoring
- example
- check
- MariaDB
- 예제
- apache
- mysql
- 이슈처리
- deview
- code
- engineering
- Ansible
- Linux
- limits
- 명령어
- File
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함