infra/기타

리눅스 날짜 및 언어 설정

jjuni_96 2024. 7. 4. 10:08
728x90

작성 이유

대부분 서버들을 서울에서 작업을 하기 때문에 Asia/Seoul로 변경하지 않으면 시간문제가 발생하게 된다.

언어의 경우 아직까지 다른 이유는 없었던 것 같지만, os에 한글 파일을 올리면 인코딩이 깨지게되서 작업을 기록하기 위해 작성한다.

 

 

작업 환경

나는 aws 에 간단한 ec2를 만들어서 테스트를 진행했다.

NAME="Amazon Linux"
VERSION="2023"

 

 

Timezone

현재 적용된 timezone 확인

1. date

- 간단하게 확인할 수 있는 명령어

 

2. timedatectl

- 시간변경에 사용

 

3. 설정파일 직접 확인

- 1,2 번이 안될리는 없지만 혹시나 다른 방법

 

 

 

Timedatectl로 Timezone 변경

우선 설정 가능한 시간이 있는지 확인을 해야한다.

timedatectl list-timezones | grep Seoul

 

이 명령어는 /usr/share/zoneinfo 에 있는 timezone 설정파일을 나열해준다

 

원하는 대역이 존재한다면 이제 시간을 변경하면 된다

(나는 Asia/Seoul을 쓰기 때문에 해당 시간으로 설정)

sudo timedatectl set-timezone Asia/Seoul

 

 

이제 정상적으로 변경이 되었는지 확인하면 된다

timedatectl

 

그러면 처음 Local time이 UTC 에서 KST로 변경이 된 모습을 볼 수 있다.

 

 

 

Symlink 로 Timezone 변경

간혹 시스템에 timedatectl 명령어가 없는 경우가 존재한다.

그런 경우 /etc/localtime을 /usr/share/zoneinfo 디렉토리의 시간대에 심볼릭 링크하여 시간대를 변경할 수 있다.

 

현재 적용되어있는 심볼릭 링크 또는 파일 확인

ls -al /etc/ | grep localtime

("->" 뒤에 나오는 링크가 심볼릭 링크이다.)

 

 

현재 적용되어있는 심볼릭링크 또는 파일을 제거 후 조회

sudo rm -rf /etc/localtime

(아무것도 안나오면 정상!)

 

구성하려는 시간대를 식별하고 symlink 생성 및 조회

sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

원하는 시간대로 파일이 생겼다면 작업 완료!

 

 

 

Encoding

현재 인코딩 확인

echo $LANG

 

사용가능한 인코딩 확인

locale -a | grep ko

 

일반적으로 한국어는 ko_KR.utf-8 를 사용한다.

만약 ko_KR. utf-8  가 없다면 설치를 진행해준다

 

한글 패키지 설치

sudo apt-get install language-pack-ko

 

locale-gen 으로 local 설치

sudo locale-gen ko_KR.utf-8

 

ko_KR.utf-8 설정

sudo dpkg-reconfigure locales

 

 

혹시나 위와 같은 방식으로 안된다면 아래와 같은 방식으로 진행해보면 될듯!!!

 

언어팩 수정

sudo vi /etc/sysconfig/i18n

일반적으로 LANG="ko_KR.utf8" 양식으로 되어있음!! 뒤에 있는 언어를 원하는 내용으로 수정하면됨!

 

언어팩 적용

source /etc/sysconfig/i18n

 

변경 확인

echo $LANG

 

정상적으로 변경이 된 모습을 볼 수 있다.

 

 

 

 

기타

centos7 에서 인코딩을 변경하려는데 아무것도 되지 않아서 다른 방법으로 진행

 

현재 인코딩 확인

localectl

 

변경 가능한 인코딩 확인

localectl list-locales | grep ko_

 

인코딩 변경

LANG=ko_KR.utf8
LC_ALL=ko_KR.utf8

 

현재 세션에 적용

export LANG=ko_KR.utf8
export LC_ALL=ko_KR.utf8

 

전역적용

sudo vi /etc/profile

```
export LANG=ko_KR.utf8
export LC_ALL=ko_KR.utf8
```


source /etc/profile

 

 

시스템 서비스에 적용

sudo systemctl restart sshd

 

 

변경된 인코딩 확인

echo $LANG

cat /etc/locale.conf

locale

 

 

 

 

마치며

인코딩은 생각보다 간단할줄 알았는데 OS, 버전에 따라 또 달라진다는 점에서 흥미로웠던 것 같다.

 

refs

timezone 변경 : https://yooloo.tistory.com/228

 

리눅스 TimeZone 변경

How to Set or Change the Time Zone in Linux 현재 TimeZone 확인 timedatectl은 시스템의 시간과 날짜를 보고 변경할 수 있는 명령어입니다. 모든 최신 시스템 기반 Linux 시스템에서 사용할 수 있습니다. 현재 시

yooloo.tistory.com

centos7 인코딩 변경 : https://foxydog.tistory.com/35

 

CentOS 8 - 리눅스 언어 설정(locale)

CentOS 8 - linux locale Settings locale 우리나라 말로는 [로케일]이라고도 하는데, 주로 터미널로 접속하는 사용자 인터페이스를 표시하는 기본적인 언어를 국가별로 선택할 수 있는 정보를 출력해주는

foxydog.tistory.com

 

728x90
반응형
LIST