Engineering/Network 20

Nginx access 로그 에서 특정 필드만 추출하는 스크립트

Nginx 에서 다음과 같이 access 로그 포맷을 사용 중이다. (일반적으로 Nginx 설치하면 기본 설정된 내용)log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access 로그는 다음과 같이 나오고 있다....192.168.1.153 - - [19/May/2026:22:10:26 +0900] "GET /upload/1/d06dbb6.zzz?filename=test.abc HTTP/..

Engineering/Network 2026.05.21

curl 명령어로 postman 업로드 API 대체

postman 으로 파일 업로드는 UI 메뉴에서 file 파라미터에 해당하는 파일을 로컬 PC 에서 잘 선택해서(Select files..) 호출하면 잘 동작한다. 문제는 윈도우에서 postman 에서 제공하는 Code snippet 명령어로 하면 아래와 같은 오류가 나면서 동작을 안한다는 것이다.curl --location 'http://service.com/apk/upload' \ --form 'file=@"/D:/download/test.apk"' \ --form 'code="12345"'curl: (26) Failed to open/read local data from file/application 윈도우즈 파일 경로가 안 맞는거 같아서 조금 바꿔서 다음과 같이 하면 된다.curl -F file=..

Engineering/Network 2024.06.19

[kafka] NotLeaderOrFollowerException 에러 확인

kafka 를 통해 메시지를 전달하는데, 어느 순간 부터 Topic and partion to exceptions: topic-name-0 -> org.apache.kafka.common.errors.NotLeaderOrFollowerException (kafka.server.KafkaApis) 에러가 발생하고 있다. 토픽 정보를 확인할 수 있는 명령어 kafka-topics.sh 로 토픽 정보를 확인해보니깐 2번 브로커가 0 번 파티션의 리더를 맡고 있다. hostname@kafka-client:/$ kafka-topics.sh --describe --bootstrap-server kafka-0.kafka-headless.default.svc.cluster.local:9092,kafka-1.kafka-..

Engineering/Network 2022.07.13

dhcp 인터페이스를 static 으로 변경

동적(dhcp) IP 로 사용중인 인터페이스를 고정(static) 으로 변경(in CentOS) 1. IP 주소 및 gateway 확인# ip route default via 172.25.50.1 dev enp2s0 proto static metric 100 172.25.50.0/23 dev enp2s0 proto kernel scope link src 172.25.51.123 metric 100 172.25.252.252 via 172.25.50.1 dev enp2s0 proto dhcp metric 100 -> IP 주소가 172.25.51.123, netmask 는 255.255.254.0 (172.25.50.0/23) 이고, default gateway 는 172.25.50.1, 인터페이스 명이 ..

Engineering/Network 2018.11.23

FD 최대값 테스트(리눅스 용)

리눅스에서 FD 사이즈가 기본적으로 1024 인데, include 파일을 수정하여 임의로 확장한 후 테스트를 위해서 다음 소스를 이용하였다. (윈도우용 소스를 급하게 리눅스에서 돌아가도록 작성...) - 서버 //#include #include #include #include #include #include #include #define LINE1024 //#define MAXCLIENT5 #define MAXCLIENT1200 #defineSERV_PORT8787 int maxfdp1; int chatuser;// 채팅 참가자 수 unsigned int client_s[MAXCLIENT]; char *escape = "/quit";// 종료 명령 /* i번째 유저 계정삭제 */ void disconCl..

Engineering/Network 2012.03.06

maillog 로그중에 NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

/var/log/maillog 로그에 계속 "NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied" 이 나타나는 경우가 있다. command 라인에서 mail 테스트를 했을때는 정상적으로 메일전송이 되는 것을 확인이 되는데, 웹서버를 사용해서 메일전송을 할 경우에(웹 어플리케이션에서 메일 전송) 해당 로그가 발생한다. 일단 /var/spool/clientmqueu 디렉토리 권한을 확인하면 smmsp:smmsp 사용자만 쓸 수 있다. # ls -la drwxrwx---. 2 smmsp smmsp 4096 2012-01-10 18:18 clientmqueue 그래서 clientmqueu 디렉토리 권한을 777 로..

Engineering/Network 2012.01.10

로컬호스트의 열려진 포트(바인딩하지 않은 포트) 알아오는 간단한 소스

포트 번호를 순차적으로 얻어오는 프로그램을 코딩하는데 방법은 간단하다. connect() 함수를 이용해서 return 값이 0 보다 작을 경우에는 사용중인 포트로 간주한다. (사실 EADDRINUSE 에러번호로 정확히 확인해야겠지만 간단하게 작성하기로 한다.) #include #include #include #include main() { struct sockaddr_in cliaddr; int sockfd; int port = 3306; while (port < 65500) { memset(&cliaddr, 0, sizeof(struct sockaddr_in)); cliaddr.sin_family = AF_INET; cliaddr.sin_addr.s_addr = inet_addr("127.0.0.1")..

Engineering/Network 2011.11.16

sqlplus 로 oracle 접속시 tcpdump 패킷 분석

sqlplus 로 oracle 접속시 tcpdump 패킷 분석입니다. [root@]# tcpdump -ibr0 host 192.168.100.200 -X -s0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes 15:43:25.927261 arp who-has 192.168.100.200 tell 192.168.100.217 0x0000: 0001 0800 0604 0001 0017 083a 4a4b c0a8 ...........:JK.. 0x0010: 64d9 0000 0000 0000 c0a..

Engineering/Network 2011.03.31

bridge 인터페이스의 slave 인터페이스 확인

bridge 인터페이스의 slave 인터페이스들을 확인하기 위해 ioctl() 함수를 찾아보았으나, BSD 계열에서는 SIOCBRDGIFS 가 보였는데 redhat(centos) 쪽에서 쉽게 예제가 안보였다. 물론 "brctl show br명"으로 가능하기는 하나, 화면 출력값이 여러 라인으로 출력된다. brctl 소스를 확인해보면 인터페이스 리스트를 확인하는 api 가 존재할거 같으나 찾기가 쉽지 않았다. 그래서, 다른 방법을 사용했는데, /sys/class/net/brXXX 디렉토리를 확인해보자. /sys/class/net/brXXX/brif 에 slave 인터페이스의 링크 디렉토리가 존재한다. # ls /sys/class/net/br0/brif eth2 eth3 사실 brctl 라이브러리 소스를 직..

Engineering/Network 2011.03.04
728x90