관리 메뉴

피터의 개발이야기

[Shell] Shell - 파일 읽어 처리하기 본문

Linux/Shell Script

[Shell] Shell - 파일 읽어 처리하기

기록하는 백앤드개발자 2022. 9. 17. 22:19
반응형

ㅁ 개요

 ㅇ 운영하다보면 데이터를 직접 헨들링할 경우가 있다.

 ㅇ 반복적인 작업을 대량으로 수행하기 위해 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 건>>>>>>>>>>>>>>>>>>>>>>

 ㅇ 정상적으로 스크립트가 작동하는 것을 확인할 수 있었다.

 

반응형
Comments