본문 바로가기
  • 개발 로그를 기록하며,
    복습하고 깊이를 더해갑니다.
728x90

🌐OS/Linux20

[Linux] 웹 서비스 성능 이슈 파악하고 개선하기 배포한 웹 서비스에서 성능 이슈가 발생했을 때 기본적으로 확인 하고 조치할 수 있는 내용이다. 💾 Disk / Memory / CPU 리소스 점검확인 명령어설명조치 방법 iostat -x 1 5디스크 사용률 및 대기 시간 확인 (%util)%util 90% 이상이면 디스크 병목 → 로그 디렉토리 분리, SSD 교체 검토vmstat 1 5시스템 전체 리소스 사용 확인 (us, wa 등)wa가 높으면 디스크 병목, us가 높으면 CPU 과다 → 병목 코드, IO 집중 작업 분리df -h디스크 용량 확인/var/log, /tmp 디렉토리 정리, 오래된 로그, 백업 파일 삭제 등free -h메모리 사용량 확인swap 사용량이 많다면 서버 성능이 저하될 수 있다. 불필요한 process 제거, memory .. 2025. 4. 17.
[Linux] 리눅스 파일 시스템 장애 대응 (Emergency mode) [Troubleshooting] 리눅스 파일 시스템 장애 대응: 표준 파티션 및 LVM 논리 볼륨 통합 가이드분류: 인프라 운영 / 시스템 복구 (Internal)1. 개요 (Background)서버 프리징이나 강제 재부팅 후 발생하는 Emergency Mode는 파일 시스템의 정합성(Consistency)이 깨졌을 때 시스템을 보호하기 위한 방어 기제이다.관리자는 단순히 리부팅을 반복하기보다, 손상된 영역을 정확히 진단하고 해당 파일 시스템 타입에 맞는 복구 도구를 사용하여 데이터를 보존해야 한다.💡 2. 긴급 권한 획득 (Root Shell 진입)패스워드 미설정 또는 분실 시 GRUB 부트 로더 파라미터를 수정하여 즉시 쉘 권한을 확보할 수 있다.Step 1: 부팅 메뉴에서 대상 커널 선택 후 e .. 2025. 4. 14.
[Linux] 시스템 로그 수집 및 확인하기 (with. rsyslog) 서버의 비정상적인 종료와 같은 장애가 발생할 때 원인을 파악하고 조치하기 위해서는 가장 먼저 시스템 로그를 확인해야 한다. 리눅스에서 시스템 로그를 확인하기 위해서는 표준 프로토콜인 syslog를 사용할 수 있다. 하지만 syslog의 표준을 구현하였고, 훨씬 빠르고 유연한 rsyslog (roket-fase syslog)를 사용하는 것이 더 유리하다. 💡 rsyslog란?정의:rsyslog는 시스템 로그를 수집, 저장, 전달하는 데 사용되는 데몬이다.기능 요약:다양한 입력(커널, 시스템, 애플리케이션)으로부터 로그 수집다양한 포맷으로 로그 저장원격 로그 서버로 로그 전송 가능 (중앙 집중식 로깅) ⁉️ 필요 이유 / 사용 시점문제 해결: 시스템 오류, 장애, 해킹 등 발생 시 원인 분석(서비스 .. 2025. 2. 3.
[Linux] 노트북으로 개인 Linux 서버 만들기 백엔드 개발자로 살다보면 서버가 필요한 경우가 많은데 그럴 때 마다 AWS를 사용하기에는 비용적인 부담이 크다.. 남는 노트북(PC)이 있다면 직접 서버를 만들어 사용하면 된다.  💡준비물 : 노트북, USB 혹시 이렇게 노트북 모니터가 깨져서 뽑아버렸다면 HDMI 케이블로 다른 모니터에 연결해주면 된다. ⏩️ 진행 단계 : Ubuntu 설치 - USB 부팅 디스크 만들기 - USB로 부팅 1. Ubuntu 설치*Ubuntu 말고 다른 배포판을 사용하고 싶다면 원하는 운영체제를 다운받으면 된다. 아래의 링크에서 Ubuntu Server 다운로드https://ubuntu.com/download/serverUbuntu Desktop도 있지만 서버로 사용할거면 굳이 GUI는 필요 없기 때문에 서버로 사용하는.. 2024. 10. 3.
[Linux & Postgres] TestServer DB 자동으로 Patch하기 TestServer DB에 DevServer DB 변경사항을 자동으로 반영하여 데이터베이스 구조 동기화  개발을 하면 보통 개발 환경, 운영 환경, 테스트 환경, 데모 환경 등 각각의 이유로 다양한 환경에서 개발하고 테스트하게 된다.이 때 서로 다른 서버의 Database에 각각의 데이터는 유지하되 DDL과 같이 Database(table)의 구조를 변경하는 작업에 대해서는 다른 서버의 Database에 똑같이 변경해줘야 한다. 이러한 작업을 위해서는 Liquibase, Flyway 등 다양한 방법이 있지만 나 같은 경우 개발 환경, 보안, 인증, 리소스 등 다양한 조건을 생각해본 결과 서버에서 직접 Script를 작성하여 동작시키는 것이 가장 좋은 방법이라고 생각하여 Script로 개발하였다. 개발 환.. 2024. 5. 25.
[Linux] 모니터링 파일을 유지시키며 내용만 제거 cp /dev/null ??text cpu 사용량이 가장 많았던 시간대 추출 sar -u | grep -v 'Average' | sort -nrk 9 | head -n 1 Disk io가 가장 높았던 시간대 추출 sar -b | grep -v 'Average' | sort -nrk 6 | head -n 1 모니터링 방법 yum install sysstat /usr/lib64/sa/sa1 1 1 sar 5분에 한번씩 쌓기 crontab -e */5 * * * * /usr/lib64/sa/sa1 1 1 모니터링 방법들 httpd서비스 cpu사용량 확인 database(maria) 메모리 사용량 확인 ~ 2023. 8. 27.
[Linux] 백업 / 복구 passwd파일에서 root가 들어간 라인만 찾음 cat /etc/passwd |grep root grep root /etc/passwd (같은 결과) grep은 현대 디렉토리 대상, find는 전체에서 찾음 패스워드가 비어있는 사용자 도출 awk -F: '{if ($2=="!!") print $1}' /etc/shadow cat /etc/shadow | awk -F: '{if ($2=="!!") print $1}' pw는 2번째 자리에 있으며, 없으면 !!으로 채워져있다. 7일 동안 변경된 파일 카운트 find / -ctime -7 | wc 사용자가 없는 파일 찾기 find -nouser | wc 소유자가 없는 파일의 소유자 id와 일치하는 계정이 있으면 해당 계정의 파일이 된다. (/etc/passw.. 2023. 8. 27.
[Linux] Shell 프로그램 **셸 스크립트(Shell script)**는 셸 프로그래밍 언어를 사용하여 작성된 스크립트입니다. 셸 스크립트는 셸에서 실행되는 일련의 명령어들을 포함하고 있으며, 여러 명령어를 순차적으로 실행하거나 제어 구문을 사용하여 조건부로 실행할 수 있습니다. #쉘 프로그램 (https://wikidocs.net/24935) 참고 쉘 스크립트(명령)를 이용해 명령어를 작성하여 커널에 전달. (*.bat, 프로그램명.sh ~) 쉘스크립트 첫 줄의 '#!'는 실행프로그램으로 사용한다는 것을 알려주는 명령 (#!/bin/bash) ftype = 'date'는 date란 문자열을 ftype변수로 넣는거고, ftype = date는 date의 실행 결과를 ftype변수에 넣는다. #은 주석, echo는 출력 (변수 출력.. 2023. 8. 27.
[Linux] Cron 스케줄러 MySQL(workbench) 다운로드 https://dev.mysql.com/downloads/workbench/ (Windows (x86, 64-bit), MSI Installer 8.0.32 45.7M) https://dev.mysql.com/downloads/windows/installer/8.0.html (Windows (x86, 32-bit), MSI Installer 8.0.32 437.3M) 스케줄러 cron 주기적으로 반복되는 일을 자동적으로 실행하도록 설정 (/etc/crontab) crontab -l (작업 리스트 보기) crontab -e (작업 만들기) 스케줄 세팅: ***** (분.시.일.월.요일) - 일요일부터 '0' */2 * * * * (2분마다 실행) 10,30 * * *.. 2023. 8. 27.
728x90