일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Java
- 공부
- Linux
- Pinpoint
- Kubernetes
- 티스토리챌린지
- Spring
- 기록으로 실력을 쌓자
- 오블완
- AI
- PETERICA
- APM
- kotlin querydsl
- kotlin spring
- Elasticsearch
- kotlin
- MySQL
- CKA 기출문제
- 정보처리기사 실기
- 정보처리기사실기 기출문제
- IntelliJ
- AWS EKS
- aws
- mysql 튜닝
- CKA
- 코틀린 코루틴의 정석
- CloudWatch
- 정보처리기사 실기 기출문제
- kotlin coroutine
- minikube
- Today
- Total
목록Linux/Shell Script (16)
피터의 개발이야기
ㅁ 들어가며ㅇ ffmpeg을 이용한 스트림 서비스 개발 작업을 하면서 ffmpeg 관련 프로세스를 모두 종료해야 할 때가 있다.ㅇ ps 명령어와 kill 명령어를 조합하는 방법과 pkill, killall 명령어를 사용하는 방법으로 ffmpeg 프로스세를 일괄종료하는 스크립트를 작성해 보았다. ㅁ ps와 kill 명령어ffmpeg 프로세스 확인 및 종료# ffmpeg 프로세스 확인ps -ef | grep ffmpeg# 종료kill -9 ㅇ 가장 기본적인 방법은 ps 명령어로 프로세스를 찾고 kill 명령어로 종료하는 것이다.ㅇ 이 방법은 프로세스 ID(PID)를 직접 확인하고 종료할 수 있어 정확하지만, 여러 프로세스를 종료할 때는 번거로울 수 있다. kill, grep, awk 명령어로 프로세스 종료..
ㅁ 들어가며ㅇ 로그 정리 스크립트 작성 중 하루, 한시간 지난 로그를 삭제하는 스크립트를 작성하였다. ㅁ Delete Script Sample#!/bin/bash# 삭제할 디렉터리 경로 (변경 가능)TARGET_DIR="/path/to/directory"# 하루(24시간) 지난 파일 삭제find "$TARGET_DIR" -type f -mindepth 1 -mtime +1 -print >> ./delete_old_files.log 2>&1find "$TARGET_DIR" -type f -mindepth 1 -mtime +1 -exec rm -f {} \;# 로그 출력 (선택 사항)echo "$(date): Deleted files older than one day in $TARGET_DIR" >> /va..
ㅁ 들어가며 linux 서버를 다르면서 많은 스크립트를 작성하고 실행하게 된다. 이럴 때에 스크립트의 디버깅에 유용한 정보를 알게 되어 정리하였다. ㅁ set -xe 옵션?set -xe 옵션은 쉘 스크립트 실행 시 유용한 디버깅 및 오류 처리 기능을 제공한다. ㅁ 오류 즉시 감지(-e 옵션)ㅇ "errexit"의 약자로, 스크립트 실행 중 오류가 발생하면 즉시 실행을 중단한다.ㅇ 오류 전파 방지: 오류가 발생한 즉시 스크립트가 종료되어, 오류로 인한 추가적인 문제 발생을 방지한다.ㅇ 신속한 디버깅: 오류 발생 지점을 빠르게 파악할 수 있어 디버깅 시간을 단축할 수 있다. ㅁ 명령어 추적 (-x 옵션)ㅇ "xtrace"의 약자로, 실행되는 각 명령어를 화면에 출력한다.ㅇ 실행 흐름 파악: 스크립트의 실행 ..
ㅁ 들어가며ㅇ 리눅스 셸 스크립트에서 명령어를 반복적으로 실행하는 방법은 여러 가지가 있다.ㅇ 주로 사용되는 방법들을 정리해 보았다. ㅁ while 루프 사용#!/bin/bashwhile truedo echo "현재 시간: $(date)" sleep 5doneㅇ while 루프를 사용하면 특정 조건이 참인 동안 명령어를 반복 실행할 수 있다.ㅇ 이 스크립트는 5초마다 현재 시간을 출력한다. ㅁ for 루프 사용#!/bin/bashfor i in {1..10}do echo "반복 $i: $(ls -l)" sleep 2doneㅇ for 루프를 사용하면 지정된 횟수만큼 명령어를 반복 실행할 수 있다.ㅇ 이 스크립트는 현재 디렉토리의 파일 목록을 10번 출력하며, 각 반복 사이에 2초 간격둔다. ㅁ un..
파일 폴더를 압축하고 에러 처리가 가능한 shell(tar 버젼)#!/bin/bash# 압축할 폴더와 결과 파일 이름을 인자로 받음SOURCE_DIR="$1"OUTPUT_FILE="$2"# 함수: 에러 메시지 출력 및 종료error_exit() { echo "에러: $1" >&2 exit 1}# 인자 개수 확인if [ $# -ne 2 ]; then error_exit "사용법: $0 "fi# 소스 디렉토리 존재 확인if [ ! -d "$SOURCE_DIR" ]; then error_exit "지정한 폴더가 존재하지 않습니다: $SOURCE_DIR"fi# 출력 파일 이름이 .tar.gz로 끝나는지 확인if [[ "$OUTPUT_FILE" != *.tar.gz ]]; then O..
ㅁ 들어가며ㅇ 맥미니에 문제가 발생하여 웹이 접속이 되지 않았다.ㅇ 원격터미널에서 맥미니를 재기동하고 Docker를 기동하는 과정을 정리하였다. ㅁ 원인파악// 에러 내용The application /Applications/Docker.app cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x60000388dce0 {Error Domain=OSLaunchdErrorDomain Code=125 "Domain does not support s..
ㅁ 들어가며 ㅇ linux에서 JSON을 가공하여 원하는 결과를 도출할 수 있는 JPATH 사용법을 정리하였다. ㅇ javascript와 똑같은 사용방식이라 직관적이었다. ㅁ Object 참조 # sample.json { "car": { "color": "blue", "price": "$20,000" }, "bus": { "color": "white", "price": "$120,000" } } # JSON 트리 참조 구조 1단 $ cat sample.json | jpath $.car [ { "color": "blue", "price": "$20,000" } ] # JSON 트리 참조 구조 2단 cat sample.json | jpath $.car.price [ "$20,000" ] ㅇ 점을 기준으로 종..
ㅁ 들어가며 용량이 큰 디렉토리 목록을 확인하려면 du, sort 명령어를 조합하여 사용하면 용량별 디렉토리를 쉽게 파악할 수 있다. ㅁ 디렉토리 용량별 정렬 # 디렉토리 용량 Sort, 내림차순, 큰->작 $ du -h -d 1 | sort -nr 178M. 173M./ParallelsLab 2.8M./docker-2048 1.4M./peter-2048 # 디렉토리 용량 Sort $ du -h -d 1 | sort -n, 오름차순, 작->큰 1.4M./peter-2048 2.8M./docker-2048 173M./ParallelsLab 178M. ㅁ 파일 용량별 정렬 # file 용량 Sort, 오름차순 $ du -h | sort -n 0B./ParallelsLab/.git/modules/submodu..
ㅁ 개요 ㅇ 운영하다보면 데이터를 직접 헨들링할 경우가 있다. ㅇ 반복적인 작업을 대량으로 수행하기 위해 File내용을 기반으로 처리할 수 있도록 하였다. ㅇ redis의 작업을 수행하면서 오류를 최소화하고 작업이력을 남기기 위해 스크립트를 작성하였고, 그 과정을 정리하였다. ㅁ Script #!/bin/sh LOG="./redis.log" COMMAND=$1 REDIS_KEY=$2 FILE=$3 TODAY=$(date) # 필수값 체크 if [ $# -ne 3 ] then echo "param error [command / key / file]" exit 0; fi echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo ">> START : $TODAY" >> $LOG ec..
ㅁ 개요 ㅇ linux 서버에서 JSON 데이터를 볼 때가 많이 있다. 직렬화된 json을 보기는 쉽지 않다. ㅇ 이를 해결하기 위한 방법으로 jq명령어를 사용하면 JSON을 이쁘게 볼 수 있다. ㅁ 설치 ㅇ 맥의 경우 brew install jq ㅁ 사용법 ㅇ JSON string 파이프라인으로 재처리 하면 이쁜 JSON을 볼 수 있다.$ echo '{"foo": "bar"}' | jq ✔ 5238 23:20:52{ "foo": "bar"}$ echo '{"foo": "bar"}' | jq '.foo' ..