728x90

전체 글 428

[리눅스] ping 연결 확인 네트워크 응답 시간

부제: 상대 서버까지 네트워크가 닿는지, 얼마나 빠른지 확인하기ping example.com # 계속 응답 확인 (Ctrl+C로 멈춤)ping -c4 8.8.8.8 # 4번만$ ping -c2 8.8.8.8--- 8.8.8.8 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001msrtt min/avg/max/mdev = 45.045/45.236/45.427/0.191 msping은 상대에게 신호를 보내 응답이 오는지, 왕복 시간(rtt)이 얼마인지 본다."인터넷이 되나", "저 서버가 살아있나"를 가장 먼저 확인하는 명령이다.-c로 횟수를 안 정하면 계속 보내니 Ctrl+C로 멈춘다.이렇게도 ..

명령어/Linux 2026.07.11

[리눅스] wget 파일 다운로드 이어받기 미러링

부제: URL에서 파일을 받고, 끊겨도 이어받기wget https://.../file.zip # 다운로드wget -O name.zip https://... # 이름 지정wget -c https://.../big.iso # 이어받기$ wget -qO- https://example.com | grep -o '[^Example Domainwget은 파일 다운로드에 특화된 도구다. curl과 달리 기본이 "파일로 저장"이고,-c로 끊긴 다운로드를 이어받고, -m으로 사이트를 통째로 긁을 수 있다.이렇게도 쓴다끊긴 다운로드를 이어받는다(-c).wget -c https://example.com/big.iso 백그라운드로 받으며 로그를 남긴다(-b).wget -b https://example.com..

명령어/Linux 2026.07.11

[리눅스] curl HTTP 요청 다운로드 API 테스트

부제: 터미널에서 URL을 요청하고 응답·헤더를 확인하기curl https://example.com # 본문 받기curl -O https://.../file.zip # 파일로 저장(원래 이름)curl -I https://example.com # 헤더만$ curl -sI https://example.com | head -3HTTP/2 200date: Sat, 11 Jul 2026 06:34:32 GMTcontent-type: text/htmlcurl은 터미널에서 HTTP 요청을 보낸다. 그냥 URL이면 본문을, -I는 헤더만,-O는 파일로 저장한다. API 테스트·다운로드·헬스체크에 두루 쓰는 만능 도구다.이렇게도 쓴다API에 JSON을 POST한다(헤더+본문).curl -X POST ..

명령어/Linux 2026.07.11

[비동기] SSE heartbeat 컨텍스트 누수 OTel 트레이스 깨짐

부제: 하트비트를 넣었더니 트레이스가 깨진 이야기챗봇은 답을 스트리밍으로 흘려보낸다.답이 길어지면 중간에 연결이 끊기지 않게, 주기적으로 빈 신호(하트비트)를 함께 보낸다.문제는 그 하트비트를 어떻게 끼워 넣었느냐였다.하트비트가 필요했다원래 구현은 이랬다.청크가 하나 올 때마다, 제너레이터의 다음 단계를 별도의 비동기 task로 띄웠다.하트비트 타이머와 다음 청크를 동시에 기다리려고 그렇게 쪼갠 것이다.겉보기엔 잘 돌았다.그런데 관측 도구에서 이상한 에러가 쏟아지기 시작했다."다른 컨텍스트에서 만들어진 토큰"트레이스를 남기는 라이브러리(Langfuse, 내부적으로 OpenTelemetry)가계속 "Token was created in a different Context"라는 에러를 냈다.원인은 컨텍스트였..

Infra 2026.07.10

[LLM] Gemini inline tool_code 도구 호출 합성 후처리

부제: 함수 호출 대신 코드를 뱉는 LLM을 후처리로 붙잡기챗봇은 LLM에게 도구(함수)를 붙여 준다.정상이면 LLM이 "이 함수를 이 인자로 불러라"라는 구조화된 호출을 돌려준다.서버는 그걸 받아 함수를 실행하고 결과를 다시 대화에 넣는다.그런데 가끔 LLM(Gemini)이 그 약속을 안 지켰다.함수 대신 코드를 뱉었다구조화된 호출 대신, 답변 본문에 이런 코드를 그냥 써 버렸다.print(calculate_vdot(distance='10K', time='50:00'))문제가 두 가지였다.하나, 이 코드가 사용자 화면에 그대로 노출됐다.둘, 구조화된 호출이 없으니 서버는 도구를 실행하지 않았다.사용자는 답 대신 코드 조각을 봤다.빈도는 낮았다.전체 응답 8029건 중 5건, 0.062%였다.다만 특정 ..

AI 2026.07.10

[리눅스] history 명령어 기록 재실행 검색

부제: 예전에 친 명령을 찾아 다시 실행하기history # 명령 기록 보기!123 # 123번 명령 다시 실행!! # 바로 전 명령 다시history | grep ssh # 예전 명령 검색$ history | tail -3 501 cd /var/log 502 grep ERROR app.log 503 history | tail -3history는 지금까지 친 명령을 번호와 함께 보여준다.!번호로 그 명령을 다시 실행하고, !!는 바로 전 명령이다.Ctrl+R로 대화식 검색을 하면 긴 명령도 금방 찾는다.이렇게도 쓴다예전에 친 명령을 검색한다(grep 조합).history | grep docker 바로 전 명령을 sudo ..

명령어/Linux 2026.07.10

[리눅스] alias 명령 별칭 단축키 등록

부제: 자주 치는 긴 명령을 짧은 이름으로 만들기alias ll='ls -alh' # 별칭 등록alias # 등록된 별칭 목록unalias ll # 해제$ alias gs='git status'$ alias gsalias gs='git status'alias는 긴 명령을 짧은 이름으로 만든다.다만 지금 셸에서만 살아 있어서, 계속 쓰려면 ~/.bashrc에 넣어야 한다.자주 치는 명령·옵션 조합을 손에 붙일 때 좋다.이렇게도 쓴다로그인할 때마다 적용되게 파일에 넣는다.echo "alias ll='ls -alh'" >> ~/.bashrc 위험한 명령에 확인을 강제로 붙인다.alias rm='rm -i' 별칭을 무시하고 원래 명령을 그대로 쓴다(앞에 백슬래..

명령어/Linux 2026.07.10

[리눅스] crontab 예약 실행 주기 작업 등록

부제: 정해진 시각·주기에 명령이 자동으로 돌게 등록하기crontab -e # 크론탭 편집crontab -l # 등록된 작업 목록# 분 시 일 월 요일 명령0 3 * * * /opt/backup.sh # 매일 03:00$ crontab -l0 3 * * * /opt/backup.sh*/10 * * * * /opt/healthcheck.shcrontab은 주기 작업을 등록한다. 다섯 칸은 순서대로 분·시·일·월·요일이고,*는 "매번", */10은 "10마다"다.매일 새벽 백업, 10분마다 헬스체크 같은 반복 작업에 쓴다.이렇게도 쓴다10분마다 실행한다.*/10 * * * * /opt/healthcheck.sh 매주 월요일 아침에 실행한다(요일 1=월, 0=일).0 9 * *..

명령어/Linux 2026.07.10

[리눅스] export 환경 변수 설정 하위 프로세스 전달

부제: 변수를 자식 프로세스까지 전달되게 설정하기export APP_ENV=prod # 환경 변수로 설정export PATH=$PATH:/opt/bin # 기존 값에 추가export -p # 내보낸 변수 목록$ export APP_ENV=prod$ bash -c 'echo $APP_ENV'prod그냥 X=1로 만든 변수는 그 셸에서만 살고 자식 프로세스엔 안 넘어간다.export를 붙이면 그 뒤 실행하는 명령·스크립트까지 그 변수를 물려받는다.프로그램에 설정을 넘길 때 기본이 되는 명령이다.이렇게도 쓴다기존 PATH 앞에 경로를 더한다(내 bin 우선).export PATH="$HOME/bin:$PATH" 로그인할 때마다 적용되게 파일에 넣는다.echo ..

명령어/Linux 2026.07.10

[리눅스] env printenv 환경 변수 확인

부제: 지금 셸에 설정된 환경 변수를 보고, 특정 값만 뽑기env # 모든 환경 변수printenv HOME # 특정 변수 값만echo $PATH # 셸 확장으로 보기$ printenv HOME/root$ env | grep -c '='47env는 지금 셸에 설정된 환경 변수를 전부 보여준다.특정 변수 하나만 볼 땐 printenv나 echo $변수가 편하다.프로그램이 설정을 환경 변수로 읽는 경우가 많아, 뭔가 안 될 때 값을 확인하는 첫 단추다.이렇게도 쓴다특정 변수만 걸러 본다(grep 조합).env | grep -i proxy 깨끗한 환경으로 명령을 실행한다(기존 변수 무시).env -i bash 임시로 변수를 바꿔 한 번만 실행한다.env NOD..

명령어/Linux 2026.07.09
728x90