# ICON leveldb Cold-Backup script
# . awscli pkg (yum install -y awscli)
# . AWS access_key & secret_access_key
BH=`curl -s localhost:9000/api/v1/avail/peer | jq .block_height`
FILE_NAME="${SERVICE}_BH${BH}_data-${TODAY}_${CTIME}.tar.gz"
IP_DIR_NAME=`find ${PREP_DIR}/data/loopchain/.storage/*7100_icon_dex -maxdepth 1 -type d |awk -F\/ '{print $NF}'`
LOG_NAME="${SERVICE}_Backup_${TODAY}.log"
BACKUP_TARGET_DIR="${PREP_DIR}/data/loopchain"
BACKUP_TARGET=".score_data .storage"
BACKUP_DIR="${PREP_DIR}/data/Backup/${TODAY}"
DELETE_DIR="${PREP_DIR}/data/Backup/`date -d '1 week ago' "+%Y%m%d"`"
LOG_DIR="${PREP_DIR}/data/Backup/log"
COMPOSE_YML="docker-compose.yml"
PEER_STATUS=`curl -s -o /dev/null -w "%{http_code}" localhost:9000/api/v1/avail/peer`
S3_PATH="s3://icon-leveldb-backup/${SERVICE}"
S3_PATH_PERM="s3://icon-leveldb-backup/Permanent/${SERVICE}"
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] Starting Peer..."
docker-compose -f ${COMPOSE_YML} up -d
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] Stoping Peer..."
docker-compose -f ${COMPOSE_YML} down
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] Start Backup"
--xform="s|.storage/${IP_DIR_NAME}|.storage/db_CHANGEIP:7100_icon_dex|" ${BACKUP_TARGET}
if [ ! -d ${BACKUP_DIR} ]; then
mv ${FILE_NAME} ${BACKUP_DIR}
aws s3 cp ${BACKUP_DIR}/${FILE_NAME} ${S3_PATH}/${TODAY}/${FILE_NAME}
aws s3 ls ${S3_PATH} --recursive | grep -v backup_list | sort -r | awk -F\/ '{print $2"/"$3}' > ${BACKUP_DIR}/backup_list
aws s3 cp ${BACKUP_DIR}/backup_list ${S3_PATH}/backup_list
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] End Backup"
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] Start Script"
if [ $PEER_STATUS == 000 ]; then
echo -e "\nWarning!! Service is not running!!"
echo -e "Backup Skip. Next schedule running backup after sync...\n"
echo " - Block Height is [ ${BH} ] "
if [ ${CTIME} == 0000 ]; then
echo -e "Delete old directory : ${DELETE_DIR}"
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] Start Permanent Backup"
aws s3 cp ${BACKUP_DIR}/${FILE_NAME} ${S3_PATH_PERM}/${TODAY}/${FILE_NAME}
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] End Permanent Backup"
echo -e "[`date "+%Y-%m-%d %H:%M:%S"`] End Script"
echo -e "====================================================================="
if [ ! -d ${LOG_DIR} ]; then
run_main >> ${LOG_DIR}/${LOG_NAME} 2>&1