Skip to content

Instantly share code, notes, and snippets.

@ety001
Last active April 25, 2022 06:21
Show Gist options
  • Save ety001/fc817511d4c723d7e602dff1ec19552c to your computer and use it in GitHub Desktop.
Save ety001/fc817511d4c723d7e602dff1ec19552c to your computer and use it in GitHub Desktop.
My Steem Data Backup Shell

add this task into crontab

* * * * * flock -xn /tmp/backup_task.lock -c '/data/shell/entry.sh > /dev/null 2>&1'
#!/bin/bash
APP=$1
DATA_PATH=/data/${APP}/data/witness_node_data_dir
BACKUP_PATH=/data/wwwroot/backup
set -x
docker network disconnect bridge ${APP}
/data/${APP}/run.sh stop
/usr/bin/telegram "[DACENTEC] steem-${APP} stop successfully and start backup ${APP}."
t=$(date +%Y%m%d)
find ${DATA_PATH}/blockchain -type f -name "LOG*" -delete
tar -cf ${BACKUP_PATH}/ing/steem_${APP}_${t}.tar.lz4 --use-compress-program=lz4 -C ${DATA_PATH} blockchain/
if [[ "${APP}" = "witness" ]]; then
echo "backup block_log file"
tar -czvf ${BACKUP_PATH}/ing/block_log_${t}.tar.gz -C ${DATA_PATH}/blockchain/ block_log
rm -rf ${BACKUP_PATH}/block_log_*.tar.gz
mv ${BACKUP_PATH}/ing/block_log_${t}.tar.gz ${BACKUP_PATH}/
fi
rm -rf ${BACKUP_PATH}/steem_${APP}_*.tar.lz4
mv ${BACKUP_PATH}/ing/steem_${APP}_${t}.tar.lz4 ${BACKUP_PATH}/
rm -rf ${DATA_PATH}/blockchain/*
/usr/bin/telegram "[DACENTEC] steem-${APP} backup finish"
#!/bin/bash
set -x
TAG_FILE=/tmp/steem_backup_tag.txt
last_edit_time=`stat -c %Y ${TAG_FILE}`
now=`date +%s`
[ "${last_edit_time}" = "" ] && last_edit_time=0
age=$((${now} - ${last_edit_time}))
if [[ ${age} -le 86400 ]]; then
exit 0;
fi
/data/shell/untar.sh api
/data/shell/backup.sh api
/data/shell/untar.sh ah
/data/shell/backup.sh ah
/data/shell/untar.sh witness
/data/shell/backup.sh witness
echo "${now}" > ${TAG_FILE}
#!/bin/bash
APP=$1
DATA_PATH=/data/${APP}/data/witness_node_data_dir
BACKUP_PATH=/data/wwwroot/backup
set -x
filename=`ls -lt ${BACKUP_PATH}/steem_${APP}* | head -1 | awk '{print $9}'`
tar --use-compress-program=lz4 -C ${DATA_PATH} -xf ${filename}
telegram "[DACENTEC] untar ${APP} finish"
/data/${APP}/run.sh start
/usr/bin/telegram "[DACENTEC] steem-${APP} start successfully."
output=""
while [ "$output" = "" ];
do
output=`docker logs --tail 10000 ${APP} | grep 'transactions on block'`;
sleep 30;
done
/usr/bin/telegram "[DACENTEC] steem-${APP} replay successfully."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment