본문 바로가기

서버 관리/리눅스

(10)
journalctl 로그 파일 관리 (디스크 확보를 위한) [1. 개요]리눅스 서버 디스크 용량 확보를 위함./var/log 에서 용량을 많이 차지하는 로그 파일 삭제가 필요.특히, /var/log/journalctl시스템 데몬 관련 로그 파일이라 임의로 지우면 안됨. (아마도)[2. 명령어]journalctl --list-boots# journalctl --dist-usage# journalctl --vacuum-size={BYTES}# Reduce disk usage below specified size journalctl --vacuum-files={INT}# Leave only the specified number of journal files journalctl  --vacuum-time={TIME}#  Remove journal files older ..
chrome 임시 파일 관련 용량 관리 [1. 개요]python selenium 을 이용하여 자동화 작업 운영 중, 리눅스 서버의 디스크 사용량이 너무 높아진 것을 확인/tmp 디렉토리에 disk 사용량이 매우 높은 것을 확인du 명령어를 통해 해당 디렉토리에서 디스크 사용량이 높은 디렉터리를 확인하였으나,특별히 사용량이 높은 디렉토리는 없었음.숨김 파일을 확인.org.chromium.Chromium 이라는 이름으로 시작하는 숨겨진 디렉토리가 매우 많았고, 용량도 대략 1G 정도 차지다행히도, 임시 파일들이 롤링되어 저장되어 있었음.[2. 해결]접근 한지 7일 보다 오래된 임시파일을 모두 삭제함.
계정 추가. useradd, adduser [1. 개요] 리눅스 서버에 신규 계정 발급 시 자주 사용하는 명령어 조합 정리 [2. 명령어] 사용자 계정을 추가하는 명령어는 아래와 같이 두가지가 있다. adduser useradd 두 명령어의 차이점은 아래와 같다. adduser 계정 생성 시 별도 옵션 없이, 홈 디렉토리를 포함한 사용자 관련 설정을 자동생성한다. useradd adduser 처럼 동작하려면 별도의 옵션을 추가로 기입해야 한다. 여기서는 useradd 사용법을 정리한다. [3. 옵션] 옵션 설명 기타 -d, --home 로그인 시 사용 할 홈 디렉터리 경로, 해당 경로에 폴더가 없어도 만들지 않는다. -m, --create-home 사용자 홈 디렉터리가 없는 경우 생성한다. -M 사용자 홈 디렉터리를 만들지 않는다. -r, --s..
df 와 du 와 디스크 용량 차이 발생 및 해결 방법 [1. 개요] 서버 디스크 확보 중, 분명 불필요한 파일을 삭제하였는데, df 로 확인 시 디스크가 충분히 확보되지 않는 문제가 있었다. 그러나, du 로 mount 된 디렉터리의 총 용량 확인 시, 전체 파일 사이즈가 줄어들어 이에 대한 내용을 정리한다. [2. df vs du] df는 파일 시스템의 디스크 블록을 조회하여 총값과 자유 블록의 수를 계산 du 는 입력으로 주어진 파일 혹은 디렉터리가 사용하는 전체 파일 용량을 계산한다. [3. 문제 원인] df 와 du 는 사용중인 용량을 계산하는데 있어서 근본적인 차이가 있다. 따라서 아래와 같은 이유가 원인이 된다. 파일 디스크립터가 열린 상태에서 파일이 삭제된 경우입니다. df는 dirty buffer에 있는 용량을 계산에 포함하지만 du는 계산하..
shell script 정리 [1. 개요] 리눅스에서 윈도우 배치파일에 대응되는 shell script 작성 및 사용법 정리 [2. 기본적인 작성법] [3. 변수] 기본적인 변수 작성 myvar = 5 myvar = $(ls -l | grep mylog) # 명령어 결과를 저장 디폴트 값이 있는 변수 NPROC = ${BUILD_CONCURRENCY:-$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1)} BUILD_CONCURRENCY 가 정의되어 있다면, 이 값을 NPROC 에 할당하고, 정의되어 있지 않다면, 명렁어 결과를 NPROCE 에 할당 여기서도, 표준출력이 없다면 1을 사용한다. => stderr 을 전부 null 에 버리므로, stdout 이 없다면, 1 을 사용할 수 밖에 ..
jq 명령어 [1. 개요] 터미널에서 사용 가능한 json parser
커널 매개변수 [1. 개요] 리눅스 서버 작업 중 간간히 접하는 시스템 매개변수와 관련한 내용 정리 대표적인 세가지 /proc/sys sysctl /etc/sysctl.d [2. /proc/sys] /proc 파일 시스템 내 sys 디렉터리에서 현재 커널 파라미터를 디렉터리 계층 형태로 확인 할 수 있다. /proc - sys/ - vm/ - max_map_count - net/ - ipv4/ - ipv6/ - fs cat 등으로 경로 내 파일을 읽어서 현재 설정 값을 확인 할 수 있고, 해당 파일에 기록 된 값을 변경하여 설정 값을 변경 할 수 있다. [3. sysctl] 부팅 후, 사용자가 이 명령어를 통해 커널 파라미터를 변경 할 수 있다. 특히, # sysctl --system 으로 명령어를 실행한 경우 /et..
메모리 관리 [1. 개요] 리눅스 서버 메모리 관리 방법을 정리한다. 관련 명령어 및 파일 free sync /proc/sys/vm/drop_caches [2. free 명령어] 리눅스 서버 머신의 메모리 사용량을 보여준다. 여러가지 옵션들이 있지만, 아래 명령어를 주로 사용하여 현재 메모리 상태를 파악하도록 한다. free -wh [3. sync 명령어] sync 명령어는 하나 이상의 열려 있는 파일을 명시할 경우 해당 파일에 버퍼링된 데이터를 디스크로 flush 하지만, 따로 명시한 파일이 없는 경우, 파일 시스템에 버퍼링 된 데이터 전체를 flush 한다. [4. /proc/sys/vm/drop_caches 파일] proc 파일 시스템에 있는 drop_caches 파일은 write 만 가능한 파일이다. 이 파일..
프로세스 관리 - ps, top [1. 개요] htop 이라는 유틸을 이용하면 좀 더 편하게 시스템을 모니터링 할 수 있지만, 이 유틸을 설치 할 수 없는 경우, build-in 된 유틸을 사용해서 모니터링 해야 한다. 주로 ps 와 top 을 사용한다. 이 두가지 유틸의 적당한 사용 방법등을 정리한다. [2. 프로세스 상태] 먼저 프로세스의 상태가 어떻게 표현되는지 먼저 정리한다. R => Running, 현재 실행 중 S => Sleep, 현재 block 중 D => I/O 가 끝나기를 기다리는 상태 Z => Zombie 프로세스 T => Stopped 이외에도 몇가지 상태가 더 있다고는 하는데, 크게 중요하지 않아 보인다. R, S, D 만 잘 파악하도록 한다. [3. 기타 필드 값 의미] %CPU %MEM VSZ / VIRT =..
프로세스 관리 - crontab [1. 개요] 주기적으로 반복되는 job 을 자동적으로 실행되게 설정한다. crond 라는 데몬이 설정파일대로 작업을 수행한다. 설정 파일은 /etc/crontab 이나, 보통 crontab -e 로 수정하도록 한다. /etc/crontab 은 모든 유저의 작업을 설정하므로 실행 할 user 이름을 명시해야 한다. crontab -e 로 수정 시 현재 로그인한 user 로 실행 됨으로 user 이름을 명시할 필요가 없다. 로그는 보통 /var/log/cron 에 저장된다. [2. 설정 파일 구조] crontab -e 로 수정하는 것을 가정한다. => 실행 할 user 이름 명시가 필요 없다. 아래와 같은 순서로 한줄에 걸쳐 작성한다. 분 (몇 분) 시 (몇 시) 날 (몇 일) 달 (몇 월) 요일 (일요일..