일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 공부
- 기록으로 실력을 쌓자
- 정보처리기사실기 기출문제
- Java
- 쿠버네티스
- mysql 튜닝
- CKA 기출문제
- minikube dashboard
- k9s
- Redis 모니터링
- Pinpoint
- PETERICA
- AWS EBS
- Kubernetes 자격증
- APM
- kubectl 설치
- 정보처리기사 실기 기출문제
- MySQL
- minikube
- skaffold
- kubernetes tool
- Kubernetes
- Spring
- IntelliJ
- AWS EKS
- Elasticsearch
- aws
- CKA
- CloudWatch
- Linux
- Today
- Total
목록Linux/Shell Script (9)
피터의 개발이야기
ㅁ 들어가며 ㅇ 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' ✔ 5239 23:20:59 "bar" ㅁ 실사용 예제 [ec2-user@PRD-PETERICA-BASTION ilovefran]$ cat mongoFind.sh #!/bin..
ㅁ 개요 ㅇ 기준 폴더의 개별 폴더들의 로그를 정리하는 쉘스크립트이다. ㅇ 3일 지난 파일을 압축 ㅇ 180일 지난 압축파일 삭제 #!/bin/sh # 기준 폴더 LOG_PATH=/logs # 기준 폴더 안의 개별 폴더 목록 SVC_TYPE_ARRAY=("acs" "abccard") # 로그정리 정리 로그(최근 로그만 남김) LOG_FILE=${LOG_PATH}/log_clean.out DAY=$(date +%Y-%m-%d --date '3 days ago') date > $LOG_FILE for svcType in "${SVC_TYPE_ARRAY[@]}" do # log zip tar -czvf $LOG_PATH/$svcType/$svcType.$DAY.tar.gz $LOG_PATH/$svcType/*..
shell 배열을 loop 돌리는 방법은 늘 잘 까먹게 됩니다. 그래서 짧게 나마 정리 합니다. #!/bin/bash for f in $(aws s3 ls s3://bucket-name/ | sort | awk '$1 > "2021-01-20" && $4 > "" {print $4}'); do aws s3 cp s3://bucket-name/"$f" ./ done;
shell 변수에 대해서 공부해 보겠습니다. 변수에는 지역변수와 환변변수, 두가지 종류가 있습니다. 이 변수들을 지우거나 지우지 못하게 막을 수도 있고, 변수들의 목록을 확인하는 방법도 알아보겠습니다. 지역(local)변수 지역 변수를 생성한 shell에서만 호출할 수 있습니다. 즉, shell이 실행 당시에 필요한 값만을 선언하여 사용하기에 다른 shell에서 참조를 할 수 없습니다. 사용법 #local변수설정 localValue="로컬에서 참조됩니다." #참조방법 echo $localValue 환경(public)변수 자신을 선언한 부모 쉘과 이 쉘이 만든 자식 쉡에서도 참조가 가능합니다. 사용법 #public변수설정 export publicValue="로컬에서 참조됩니다." #참조방법 echo $pu..
if 문은 참과 거짓의 경우에만 사용할 수 있으며, 다중 if 문을 사용하여 여러 개의 조건을 주는 경우에는 프로그램이 복잡해진다. 여러 개의 조건인 경우 case문을 사용하는 것이 간결하고 편리하다. case 문의 기본 문법 case 파라미터 in 조건1) 명령어1;; 조건2) 명령어2;; *) 조건1과 조건2가 아닌 경우 esac 조건 예제 #!/bin/bash echo "값을 입력하세요." read param case $param in # 패턴 ??02??) echo "2월이군요";; # or 조건 Yes | yes | Y | y) echo "Yes!!";; [nN]*) echo "n 또는 N으로 시작, 정규식";; b?) echo "b로 시작하는 2글자";; c*) echo "c로 시작하는 모든 ..
if문 기본 문법 if [ 조건 ] then 조건이 참일 경우 실행 elif [ 조건 ] then 조건이 참일 경우 실행 else 조건이 거짓일 경우 실행 fi 비교연산자 #!/bin/bash echo "비교연산자: 같으면" if [ "조건"="조건" ] then echo "참" else echo "거짓" fi echo "비교연산자: 다르면" if [ "조건"!="조건" ] then echo "참" else echo "거짓" fi echo "비교연산자: 널이 아니면" if [ -n "" ] then echo "참" else echo "거짓" fi echo "비교연산자: 널이면" if [ -z "" ] then echo "참" else echo "거짓" fi 조건들은 문자열이어야 한다. 산술연산자 #!/b..