본문 바로가기

OS

(13)
이상한 공백 문자(UTF-8 NBSP, CRLF 등)가 들어가 있는 경우 조치 방법 블로그 글 COPY/PASTE 해오면 종종 스크립트가 동작하지 않는 경우가 있다.이 경우에 원인을 파악하는 방법을 소개한다. (이 글은 지속적으로 업뎃 할 예정, 26.04.13) 우선 cat -A 를 통해서 공백문자가 들어갔는지 확인[app@test11 bin]$ cat -A datasource-encrypt.sh#!/bin/sh$JAVA_HOME=/usr/bin$JBOSS_HOME=/sw/jboss-eap-7.4$picketbox=`find ${JBOSS_HOME} -type f -name "picketbox*" | sort | head -n 1`$jboss_logging=`find ${JBOSS_HOME} -type f -name "jboss-logging*"`$module_name=org.pick..
curl 명령어 1. 연결 가능 여부 확인curl http://IP:PORTcurl -I http://IP:PORT ## HEAD 요청만 보내서 빠르게 확인, LB / WAS 헬스 체크로 용이함.👉 목적TCP 연결 + HTTP 응답 여부 확인방화벽 / 포트 오픈 여부 1차 체크👉 결과 해석Connection refused → 포트 안 열림 / 프로세스 없음Connection timed out → 방화벽 or 네트워크 차단HTTP 응답 코드 → 정상 통신2. 상세 로깅curl -v http://IP:PORT👉 확인 포인트DNS 해석TCP 연결 시도TLS handshakeHTTP 응답👉 예시 로그에서 볼 것* Trying 192.168.0.10:8080...* Connected to ... 3. 연결 타임아웃 테..
TCP DUMP(2) 20:10:21.678490 IP aaa.aaa.aaa.aaa.53400 > bbb.bbb.bbb.b.8281: Flags [P.], seq 1:765, ack 1, win 255, length 764 20:10:21.678490패킷이 잡힌 시각IPIPv4 패킷aaa.aaa.aaa.aaa.53400출발지 IP:포트클라이언트(브라우저) 측입니다.53400은 클라이언트가 임시로 연 포트(ephemeral port)예요.>방향 표시입니다.왼쪽에서 오른쪽으로 전송됨.bbb.bbb.bbb.b.8281목적지 IP:포트서버 측입니다.8281 포트로 요청 중Flags [P.]TCP 플래그P = PSH. = ACK즉, 데이터를 담아서 즉시 상위 애플리케이션에 넘기라는 의미의 데이터 패킷이라고 보면 됩니다.쉽게 말하면 ..
Rocky Linux9 IP 변경 법 기존에 쓰던 network-scripts 경로에 뭐가 없어서 부랴부랴 검색..은 아니고 GPT의 도움을 받아 진행기존 IP 가 192.168.56.101 에서 192.168.56.104로 변경한다 할 때,1. sudo nmcli con mod enp0s8 ipv4.addresses 192.168.56.104/242. sudo nmcli con mod enp0s8 ipv4.method manual3. sudo nmcli con up enp0s8순서대로 하면 된다. 테스트 용으로 만든 깡통 OS다 보니 실제 운영에선 어찌 할지는 잘 모르겠음.
TCP DUMP(1) TCP DUMP 명령어 예 # tcpdump -i eth0 => 인터페이스 eth0 을 보여줌 # tcpdump -w tcpdump.log => 결과를 파일로 저장, txt 가 아닌 bin 형식으로 저장됨 # tcpdump -r tcpdump.log => 저장한 파일을 읽음 # tcpdump -i eth0 -c 10 => 카운터 10개만 보여줌 # tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌 # tcpdump -i eth0 src 192.168.0.1 => source ip 가 192.168.0.1인 패킷 보여줌 # tcpdump -i eth0 dst 192.168.0.1 => destination ip 가 192.168.0.1인 패킷 보여줌 ※ eth..
High CPU 현상 시 사용하는 perf 명령어 만약에 CPU가 과하게 사용되어 CPU 사용률이 90% 이상을 사용한다고 가정할 때, top 명령어를 사용하게 되면CPU 사용량에 따른 PID 가 내림차순으로 정리가 된 것을 확인할 수 있을 것이다. 근데, COMMAND를 보면 단순히 java라고만 나오지, 저 PID에서 문제가 되는 요소는 무엇인지 판단하기 어렵다. 그럴 때 perf 명령어와 같이 top를 사용하여 확인을 해보면 된다. sudo perf top -p 이러한 정보가 나오게 되고, 나의 경우에는 이 화면에서 third-party 제품의 스레드가 확인 되어해당 솔루션에 조치를 한 뒤 부터는 CPU 점유율이 낮아지고 시스템이 정상이 되었다.
[Solaris] dtrace 사용 ===Doc ID 2192857.1===OS가 어떠한 시그널을 프로세스 쪽에 날리는지 확인하기 위한 명령어로 쓰인다.아래는 dtrace를 활용한 signal.d 스크립트이다.#!/usr/sbin/dtrace -qsstring CreatedBy[int] ;proc:::create{this->parent = CreatedBy[pid] != 0 ? CreatedBy[pid] : lltostr(ppid) ;this->parent = strjoin( this->parent , ":" ) ;this->parent = strjoin( this->parent , execname) ;this->parent = strjoin( this->parent , "(") ;this->parent = strjoin( this->pa..
truss / strace 명령어 사용 LINUXstrace -f -p -o trace_output.txt UNIXtruss -po trace_out.txt &