전체 글 1156

THP(Transparent Huge Pages) 비활성화

THP 리눅스는 Page 단위로 메모리를 관리하고 사용하는데, 기본적으로 페이지 크기는 4096 Bytes (4K)이다. THP는 페이지 크기를 MB, GB 등으로 할당하여 사용하는 기능 RHEL 6 이후 기본적으로 활성화되어 있다. 성능 이슈로 인해 리눅스 서버의 THP 설정을 변경하고자 한다. THP 설정 확인 cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag 대괄호로 표시된 값이 현재 설정된 값이다. THP 설정 변경 (비활성화) echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/..

Linux 2021.09.09

[Selenium] 다음 로그인하기

브라우저 제어 도구인 Selenium을 이용해 다음(www.daum.net)에 로그인하는 코드를 작성하려고 한다. 설치 과정은 2021.07.14 - [CentOS] Chrome 및 Selenium 설치 을 참고한다. 다음 로그인 과정 프로그램을 작성하기 전에 먼저 다음 로그인을 하기 위해서는 어떤 과정이 필요한지 확인해본다. 1. 다음(www.daum.net) 홈페이지 접속 2. 로그인 방식 선택 이 글에서는 '카카오 계정으로 로그인' 하려고 한다. 3. 계정 정보 입력 4. 로그인 버튼 클릭 위 과정에 따라 코드를 작성하도록 한다. 코드 작성 1. 라이브러리 import 및 크롬 드라이버 선언 from selenium import webdriver driver_path = 'D:\\projects\\..

Python 2021.09.08

홈 디렉터리 수동 생성

useradd 명령으로 사용자를 생성하다, 깜박하고 -m 옵션을 사용하지 않았더니 홈 디렉터리 없이 사용자가 생성되었다. 홈 디렉터리가 없으면, alias나 PATH 정보가 저장되는 사용자 설정 파일도 없어 꽤 불편하다. 사용자가 서버를 정상적으로 이용할 수 있도록 홈 디렉터리를 수동으로 생성해본다. 홈 디렉터리 생성 작업에는 root 권한이 필요하다. 방법 1. 홈 디렉터리 생성 mkdir /home/ 일반적으로 홈 디렉터리 경로는 /home 경로 아래에 사용자 이름과 같게 경로가 설정된다. 정확한 경로를 확인하고 싶다면, /etc/passwd 내용을 확인하는 것이 좋다. 일단 디렉터리를 생성하기만 해도 cd 명령 사용 시 에러는 발생하지 않게 된다. 2. 사용자 정보 복사 새로 생성한 홈 디렉터리에는..

Linux 2021.09.08

rc.local - 부팅 시 실행 스크립트

rc.local 부팅 시 자동으로 명령어나 스크립트를 실행하는 방법 중 하나 rc는 Run Command의 약자이다. 시스템 부팅 시 가장 마지막에 실행된다. 루트 권한으로 실행되며, 정상적으로 실행되지 않는 경우에는 실행 권한이 있는지 확인해봐야 한다. PATH와 같은 환경 변수가 설정되지 않을 수 있기 때문에 환경 변수를 설정하거나, 절대 경로로 명령어를 지정하여 실행하는 것이 좋다. /etc/rc.d/rc.local 파일로 심볼릭 링크가 걸려있을 수 있다. /etc/init.d/rc.local /etc/rc.local이라는 파일이 존재하는 경우, 해당 파일을 실행시킨다. 아래는 /etc/init.d/rc.local의 정보이다. #! /bin/sh ### BEGIN INIT INFO # Provide..

Linux 2021.09.07

[Python] setup.py install - 수동 설치

보통 python 라이브러리는 package manager인 pip를 이용하여 관리하지만, pip로 관리되지 않고 깃허브 등으로 배포되거나, dev 버전으로 이용하고자 하는 라이브러리는 수동으로 설치해야 한다. 아마 패키지 내에 setup.py라는 파일이 존재하는 것을 발견할 수 있을 것이다. 설치 방법 패키지를 다운로드한 최상위 디렉터리로 이동하여 install 명령을 실행한다. cd python setup.py install # 설치할 파이썬 환경 지정 예시 python3.5 setup.py install /YOUR/PYTHON/PATH setup.py install 예시) python-gitlab 패키지 수동 설치 git clone https://github.com/python-gitlab/pyth..

Python 2021.09.06

[AWS cli] emr 목록 확인

aws cli로 emr 클러스터의 목록을 확인하려고 한다. 간단하게 명령어를 정리해둔다. 클러스터 목록 확인 aws emr list-clusters # 프로파일을 지정해야 하는 경우 aws emr list-clusters --profile # page 제거 aws emr list-clusters --no-paginate 정렬 없이 최대 50개의 클러스터 목록을 반환한다. 즉, 50개 기준으로 pagination 되어 있다. pagenation 없이 모든 목록을 출력하고자 할 때에는 --no-paginate 옵션을 사용한다. 활성 클러스터 목록 확인 aws emr list-clusters --active 현재 대기 중이거나 실행 중인 상태의 클러스터 목록만을 출력한다. 출력 형태 변경 결과는 기본적으로 j..

AWS 2021.09.05

Storage in Stateful sets

관리자는 PV로 볼륨을 생성한 뒤, 사용자는 PVC로 포드 내에서 볼륨을 사용할 수 있다. 또는 스토리지 클래스를 정의하여 provisioner를 이용해 볼륨을 자동으로 프로비저닝할 수 있다. Stateful Set yaml 형식의 정의 파일에서 같은 PVC를 설정하면, Stateful Set에서 생성한 모든 포드가 같은 볼륨을 사용한다. 여러 포드 또는 애플리케이션의 여러 인스턴스가 같은 스토리지를 공유하고 접근하는 경우에 해당한다. 하지만 각 포드에 별도의 볼륨이 필요한 경우, 즉 데이터 공유를 하지 않는 경우에는 각 포드에 로컬 스토리지가 필요하다. volumeClaimTemplete 배열이기 때문에 여러 템플릿을 지정할 수 있다. apiVersion: apps/v1 kind: StatefulSet..

>/>> - 입출력 리다이렉션

표준 입력(Standard Input) 쉘에서 키보드로 명령을 입력받는 것 표준 출력(Standard Output) 키보드로 입력 받은 명령의 실행결과를 모니터로 출력하는 것 표준 에러(Standard Error) 키보드로 입력 받은 명령의 에러 메시지를 모니터로 출력하는 것 입출력 리다이렉션 표준 스트림의 흐름 변경 리다이렉션을 사용하여 출력과 입력의 방향을 지정할 수 있다. 기호 방향 의미 > 표준 출력 명령의 결과를 파일로 저장(write or overwrite) >> 표준 출력 명령의 결과를 파일에 덧붙여 저장(append) & 명령의 결과와 에러를 파일로 저장 &>> 2>&1 명령의 결과와 에러를 파일에 덧붙여 저장. &>>는 2>&1로 대체되었다. >! 파일을 생성하고 명령의 결과를 파일에 저..

Linux 2021.09.03

crontab 백업

crontab 실행 옵션 중 -r은 현재 설정된 크론탭을 삭제한다. 개발서버는 그래도 괜찮겠지만 운영서버에서 크론탭을 삭제해버리면 꽤 곤란하다. 실시간으로 계속 수행하는 작업이 있다면 장애로 이어질 수 있을 뿐만 아니라, 깐깐한 이는 책임소재를 묻기 위해 시스템 로그를 다 확인하는 지난한 작업도 개의치 않는다. 그리고 실수할 때의 손은 무조건 눈보다 빠르기 때문에 인지했을 때는 이미 늦어있을 것이다. 혹시 크론탭을 날려도 바로 복구할 수 있도록 백업을 해두는 것이 좋다. 백업 방법은 간단하다. 백업 스크립트를 생성해서 크론탭에 등록하면 된다. 방법 1. 백업 스크립트 작성 #!/bin/bash DATE=`date +%Y-%m-%d` USER="$(id -un)" crontab -l > $backup_cr..

Linux 2021.09.02

git reset - commit 취소

2021.08.30 - git reset - add 취소 이전 글에 git reset에 대한 내용을 조금 정리해두었기 때문에 참고하면 좋다. 아마도. commit 이력 확인 git log commit 취소 git reset --soft HEAD # 최신 커밋 취소 git reset --soft HEAD^ git reset --soft HEAD~ # ^ : 커밋의 부모 # ^^ : 커밋 부모의 부모 # 마지막 n개 커밋 취소 git reset --soft HEAD~n # ~ : 여러 개의 ^와 같음 (~3 == ^^^). 수를 지정하지 않으면 ^와 같다. commit 취소란? HEAD, Index, Working Directory 개념을 생각해보면, -> Index와 Working Directory는 변경..

Git | GitLab 2021.09.01