시스템 관리_03 리눅스 "Read-only file system" 에러 재부팅 없이 복구하기
출처 / 참고: 리눅스 파일시스템 마운트 관리 및 스토리지 복구 가이드
명령어: mount, dmesg, fsck, lsof, fuser, findmnt
키워드: Read-only file system, remount,rw, dmesg I/O error, errors=remount-ro, fsck
사용처: 운영 중인 리눅스 서버에서 특정 파티션이 갑작스럽게 읽기 전용(ro)으로 전환되어 쓰기/수정이 불가능할 때, 서비스 중단(재부팅) 없이 마운트 상태를 복구하고 원인을 진단할 때
실행예제
파일 생성, 로그 기록, 패키지 설치 등 쓰기 작업을 시도할 때 커널 레벨에서...
시스템 관리_02 리눅스 High I/O Wait(wa) 원인 분석 및 디스크 병목 프로세스 추적하기
출처 / 참고: 리눅스 성능 분석 및 I/O 서브시스템 트러블슈팅 가이드
명령어: top, iostat, iotop, pidstat, lsof
키워드: I/O Wait, wa, 디스크 병목, iostat, %util, D 상태 프로세스
사용처: CPU 사용률 중 wa 수치가 비정상적으로 치솟고 시스템 응답이 현저히 느려질 때, 병목을 유발하는 디스크 장치 및 범인 프로세스를 추적할 때
실행예제
top 실행 시 CPU 사용률 항목에서 %wa(I/O Wait)가 높게 치솟고, 로드 애버리지(load average)가 급격히 상승하며 콘솔 입력 및 서비스 응답이 지연되는...
시스템 관리_01 디스크 여유 공간이 있는데도 'No space left on device' 발생 시 해결하기 (Inode 고갈)
출처 / 참고: 리눅스 시스템 엔지니어링 & 파일 시스템 트러블슈팅 가이드
명령어: df, find, xargs, rm, wc
키워드: Inode, 디스크 공간, No space left on device, 파일 시스템, 가용 공간
사용처: df -h로 디스크 용량을 확인했을 때는 여유 공간이 충분하지만, 신규 파일 생성이나 서비스 기동 시 No space left on device 에러가 발생할 때
실행예제
파일을 생성하려고 할 때 장치에 남은 공간이 없다는 에러가 발생하지만, df -h로 확인하면 디스크 사용량은 30%대에 불과한 상황입니다.
$ tou...
우분투 본딩 Ubuntu Netplan을 이용한 네트워크 본딩(Active-Backup) 설정 및 트러블슈팅
출처 : 직접 경험 기반 (Ubuntu 22.04 LTS 환경)
명령어: netplan, ip link, cat /proc/net/bonding/bond0
키워드: 본딩(Bonding), Active-Backup, Netplan, 가용성, 장애 조치
사용처: 서버의 네트워크 이중화를 통해 물리적인 랜 카드나 케이블 장애 시에도 서비스 중단을 방지하고 싶을 때
실행예제
$ ip link show bond0
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT gro...
Oracle Standard Edition 대용량 로그 테이블 성능 개선 및 데이터 이관 전략
출처 : (Oracle Standard Edition)
명령어: DBMS_REDEFINITION, RENAME, INSERT APPEND, CTAS
키워드: 단편화(Fragmentation), Shadow Table, 인덱스 재설계, 데이터 정합성
사용처: 서비스 중단 없이 대용량 테이블의 쿼리 성능을 개선하고 데이터를 안전하게 이관하고 싶을 때
해설
Oracle Standard Edition(SE) 환경에서는 Enterprise Edition의 핵심 기능인 ‘파티셔닝’과 ‘온라인 재정의’를 사용할 수 없습니다.
따라서
1 단계적 벌크 복사와
2 최종 스왑 방식을 조합한 Shadow Ta...
사용자 인터페이스_10 파일 압축 시 실행 상태를 표시하는 진행바 표시하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: pv, tar, gzip
키워드: 압축, 진행바
사용처: 시간이 오래 걸리는 파일 처리 등에서 화면에 진행 상태를 나타내고 싶을 때
실행예제
$ ./tar-pv.sh
693MB 0:00:42 [16.4MB/s] [ <=> ]
스크립트
#!/bin/sh
DATA_DIR=/myapp/datadir
cd $DATA_DIR #------------------------------------------------- 1
tar cf -bigfile1.dat b...
사용자 인터페이스_09 달력을 이용해 특정 날짜의 로그 파일 삭제하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: dialog, awk, rm
키워드: 다이얼로그, 달력, 대화형, 선택
사용처: 날짜를 지정하는 대화식 달력을 표시해서 선택하고 싶을 때
실행예제
$ ./dialog-calendar.sh
스크립트
#!/bin/sh
LOG_DIR=/myapp/ap1/log
# dialog 명령어로 달력 출력
# 선택한 날짜는 표준 에러 출력이므로 임시 파일에 리다이렉트
dialog --calendar "Select Date" 2 60 2>cal.tmp #--------------- 1
# 달력 기능은 일/월/년 형식으로 ...
200 post articles, 29 pages.