Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MySQL
- Linux
- AWS EKS
- Spring
- IntelliJ
- 티스토리챌린지
- CKA 기출문제
- APM
- Kubernetes
- kotlin coroutine
- minikube
- AI
- 기록으로 실력을 쌓자
- 정보처리기사실기 기출문제
- kotlin
- 정보처리기사 실기 기출문제
- CKA
- Java
- Elasticsearch
- kotlin spring
- 정보처리기사 실기
- 오블완
- 코틀린 코루틴의 정석
- PETERICA
- CloudWatch
- mysql 튜닝
- Pinpoint
- aws
- kotlin querydsl
- 공부
Archives
- Today
- Total
피터의 개발이야기
[Shell] Shell - 파일 읽어 처리하기 본문
반응형
ㅁ 개요
ㅇ 운영하다보면 데이터를 직접 헨들링할 경우가 있다.
ㅇ 반복적인 작업을 대량으로 수행하기 위해 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
echo ">> COMMAND : $COMMAND $REDIS_KEY" >> $LOG
i=0 #건수체크용
while read line || [ -n "$line" ] ; do
redis-cli -h 172.20.208.5 $COMMAND $REDIS_KEY $line
echo $COMMAND $REDIS_KEY $line >> $LOG
((i+=1))
done < $FILE
echo ">> END $i 건>>>>>>>>>>>>>>>>>>>>>>" >> $LOG
ㅇ 명령어와 RedisKey, 파일명을 받아서 처리하고 이력을 남기는 스크립트이다.
ㅇ $# 은 파라메터 값의 갯수를 체크하여 하는 로직을 넣었다.
ㅇ -n "$line"은 파일에 빈줄 방어로직이다.
ㅁ 로그 확인
$ cat redis.log
>> START : Sat Sep 17 21:53:19 KST 2022
>> COMMAND : HGET TEST
HGET TEST T1
HGET TEST T2
>> END 2 건>>>>>>>>>>>>>>>>>>>>>>
ㅇ 정상적으로 스크립트가 작동하는 것을 확인할 수 있었다.
반응형
'Linux > Shell Script' 카테고리의 다른 글
[shell] JPATH 사용법 (0) | 2024.01.28 |
---|---|
디렉토리별 용량 정렬, du 크기별 정렬 방법 (0) | 2024.01.16 |
[shell] JSON 깔끔히 볼 수 있는 jq 명령어 (0) | 2022.09.16 |
[shell] log 파일 압축하고 6개월지난 파일 지우기 (0) | 2022.05.14 |
[Shell] 배열 loop (0) | 2021.01.27 |
Comments