Simple script for mining maintenance (in Korean)

#!/bin/bash
# creditcoin command selection

until [ "$opt" = "0" ] 
do
	CurBlkNum=0
	PreBlkNum=0

	echo "=================================================="
	echo "1. 서버 및 클라이언트 실행" 
	echo "2. docker container 상태 확인"
	echo "3. 내 서버원장의 블록높이 확인" 
	echo "4. 블록높이 감시 (1시간 동일 시 재기동)"
	echo "5. 내가 캔 블록확인 (종료시 Ctrl+C)" 
	echo "6. validator 디버그 메시지 확인 (종료시 Ctrl+C)"
	echo "7. peer 확인 (종료시 Ctrl+C)"
	echo "8. 서버 및 클라이언트 종료" 
	echo "0. 스크립트 종료"
	echo "--------------------------------------------------"
	printf "원하는 기능의 번호를 선택 후 엔터를 입력하세요 : "

	read opt

	echo "=================================================="

	case $opt in 
		1)
			echo "서버 및 클라이언트 도커 컨테이너를 실행합니다..."
			docker-compose -f ./Server/creditcoin-with-gateway.yaml up -d
			sleep 1
			docker-compose -f ./Client/creditcoin-client.yaml up -d
			sleep 1
			;;
		2)
			echo "docker container 상태는 아래와 같습니다..."
			docker container ls 
			;;
		3)
			echo "현재 서버 원장의 블록높이는 아래와 같습니다..."
			docker exec -it creditcoin-client ./ccclient tip
			;;
		4)
			while true
			do
				CurBlkNum=$(docker exec -it creditcoin-client ./ccclient tip | awk '/^[0-9]/{print int($0)}')

				if [ "$PreBlkNum" -eq 0 ]
				then 
					echo "$(date "+%Y-%m-%d %H:%M:%S") | 현재 블록높이는 $CurBlkNum입니다."
				elif [ "$PreBlkNum" -eq "$CurBlkNum" ]
				then
					echo "$(date "+%Y-%m-%d %H:%M:%S") | 현재 블록높이가 1시간 전과 같아 서버를 재기동합니다..."
					docker-compose -f ./Client/creditcoin-client.yaml down 			
					sleep 1
					docker-compose -f ./Server/creditcoin-with-gateway.yaml down
					sleep 1
					docker-compose -f ./Server/creditcoin-with-gateway.yaml up -d
					sleep 1
					docker-compose -f ./Client/creditcoin-client.yaml up -d
					sleep 1
				else 
					echo "$(date "+%Y-%m-%d %H:%M:%S") | 1시간 전 블록높이는 $PreBlkNum이고 현재 블록높이는 $CurBlkNum입니다."
				fi

				PreBlkNum=$CurBlkNum
				sleep 3600
			done
			;;
		5)
			echo "현재까지 채굴한 블록번호와 공개키는 아래와 같습니다..."
			pub=$(docker exec -it sawtooth-validator-default sh -c "cat /etc/sawtooth/keys/validator.pub")
			docker exec -it sawtooth-validator-default bash -c "sawtooth block list --url http://rest-api:8008 -F csv" | grep $pub | awk -F, 'BEGIN{printf("BLKNUM	SIGNER\n")} {printf("%s\t%s\n", $1, $5)}'
			;;
		6)
			docker exec sawtooth-validator-default tail -f /var/log/sawtooth/validator-debug.log
			;;
		7) 
			while true
			do
				timestamp() {
				  ts=`date +"%Y-%m-%d %H:%M:%S"`
				  echo -n $ts
				}
				REST_API_ENDPOINT=localhost:8008
				peers=`curl http://$REST_API_ENDPOINT/peers 2>/dev/null | grep tcp:// | cut -d \" -f2 | sed 's/^.*\///'`
				# For dynamic peering, need to log  nc  probe results to view history of connected peers over time.
				for p in $peers; do
				  ipv4_address=`echo $p | cut -d: -f1`
				  port=`echo $p | cut -d: -f2`
				  timestamp
				  preamble=" Peer $ipv4_address:$port is"
				  if nc -z $ipv4_address $port
				  then
				    echo "$preamble open"
				  else
				    echo "$preamble closed"
				  fi
				done
			sleep 60
			done | tee -a ctcpeer.result
			;;
		8)
			echo "서버 및 클라이언트 도커 컨테이너를 종료합니다..."
			docker-compose -f ./Client/creditcoin-client.yaml down 			
			sleep 1
			docker-compose -f ./Server/creditcoin-with-gateway.yaml down
			sleep 1
			;;
		0)
			break
			;;
		*)
			echo "실행할 수 없는 옵션입니다"
			;;
	esac
	echo ""
done