2.1.6 beta 1 (#65)

* select different files for restore

* star trek reference

* Log backup jobs

* color restore

* ping avoid and custom ssh prompts

* z variable

* or

* []

* new method for defaults

* variables matter

* or this?

* making it specific

Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net>
This commit is contained in:
Michael Stanclift 2020-07-16 12:25:07 -05:00
parent e8aa38eab8
commit bf5ec296ee
4 changed files with 92 additions and 11 deletions

View File

@ -14,8 +14,8 @@ Download the latest release from [GitHub](https://github.com/vmstan/gravity-sync
```bash ```bash
cd ~ cd ~
wget https://github.com/vmstan/gravity-sync/archive/v2.1.5.zip wget https://github.com/vmstan/gravity-sync/archive/v2.1.6.zip
unzip v2.1.5.zip -d gravity-sync unzip v2.1.6.zip -d gravity-sync
cd gravity-sync cd gravity-sync
``` ```

View File

@ -30,6 +30,12 @@ Skipping a few digits because what does it really matter?
- Implements a new beta branch, and with it a new `./gravity-sync.sh beta` function to enable it. This will hopefully allow new features and such to be added for test users who can adopt them and provide feedback before rolling out to the main update branch. - Implements a new beta branch, and with it a new `./gravity-sync.sh beta` function to enable it. This will hopefully allow new features and such to be added for test users who can adopt them and provide feedback before rolling out to the main update branch.
- Uses new SQLITE3 backup methodology introduced in 2.1, for all push/pull sync operations. - Uses new SQLITE3 backup methodology introduced in 2.1, for all push/pull sync operations.
- `./gravity-sync.sh restore` lets you select a different `gravity.db` and `custom.list` for restoration.
- One new Star Trek reference.
- `./gravity-sync.sh restore` now shows recent complete Backup executions.
#### 2.1.6
- Adds prompts during `./gravity-sync.sh configure` to allow custom SSH port and enable PING avoidance.
## 2.0 ## 2.0
### The Smart Release ### The Smart Release

View File

@ -1 +1 @@
2.1.5 2.1.6

View File

@ -3,7 +3,7 @@ SCRIPT_START=$SECONDS
# GRAVITY SYNC BY VMSTAN ##################### # GRAVITY SYNC BY VMSTAN #####################
PROGRAM='Gravity Sync' PROGRAM='Gravity Sync'
VERSION='2.1.5' VERSION='2.1.6'
# Execute from the home folder of the user who owns it (ex: 'cd ~/gravity-sync') # Execute from the home folder of the user who owns it (ex: 'cd ~/gravity-sync')
# For documentation or downloading updates visit https://github.com/vmstan/gravity-sync # For documentation or downloading updates visit https://github.com/vmstan/gravity-sync
@ -561,24 +561,57 @@ function restore_gs {
MESSAGE="This will restore your settings on $HOSTNAME with a previous version!" MESSAGE="This will restore your settings on $HOSTNAME with a previous version!"
echo_warn echo_warn
MESSAGE="PREVIOUS BACKUPS" MESSAGE="PREVIOUS BACKUPS AVAILABLE FOR RESTORATION"
echo_info echo_info
ls $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${GRAVITY_FI} | colrm 18 ls $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${GRAVITY_FI} | colrm 18
MESSAGE="Enter the date you want to restore from" MESSAGE="Select backup date to restore ${GRAVITY_FI} from"
echo_need echo_need
read INPUT_BACKUP_DATE read INPUT_BACKUP_DATE
if [ -f $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ] if [ -f $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ]
then then
MESSAGE="Backup File Located" MESSAGE="Backup File Selected"
echo_info
else else
MESSAGE="Invalid Requested" MESSAGE="Invalid Request"
echo_info
exit_nochange
fi fi
if [ "$SKIP_CUSTOM" != '1' ]
then
if [ -f ${PIHOLE_DIR}/${CUSTOM_DNS} ]
then
ls $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CUSTOM_DNS} | colrm 18
MESSAGE="Select backup date to restore ${CUSTOM_DNS} from"
echo_need
read INPUT_DNSBACKUP_DATE
if [ -f $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ]
then
MESSAGE="Backup File Selected"
else
MESSAGE="Invalid Request"
echo_info
exit_nochange
fi
fi
fi
MESSAGE="${GRAVITY_FI} from ${INPUT_BACKUP_DATE} Selected"
echo_info
MESSAGE="${CUSTOM_DNS} from ${INPUT_DNSBACKUP_DATE} Selected"
echo_info
intent_validate intent_validate
MESSAGE="Making Time Warp Calculations"
echo_info
MESSAGE="Stopping Pi-hole Services" MESSAGE="Stopping Pi-hole Services"
echo_stat echo_stat
@ -630,11 +663,11 @@ function restore_gs {
if [ "$SKIP_CUSTOM" != '1' ] if [ "$SKIP_CUSTOM" != '1' ]
then then
if [ -f $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${CUSTOM_DNS}.backup ] if [ -f $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ]
then then
MESSAGE="Restoring ${CUSTOM_DNS} on $HOSTNAME" MESSAGE="Restoring ${CUSTOM_DNS} on $HOSTNAME"
echo_stat echo_stat
sudo cp $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${CUSTOM_DNS}.backup ${PIHOLE_DIR}/${CUSTOM_DNS} >/dev/null 2>&1 sudo cp $HOME/${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ${PIHOLE_DIR}/${CUSTOM_DNS} >/dev/null 2>&1
error_validate error_validate
MESSAGE="Validating Ownership on ${CUSTOM_DNS}" MESSAGE="Validating Ownership on ${CUSTOM_DNS}"
@ -716,6 +749,9 @@ function restore_gs {
## Core Logging ## Core Logging
### Write Logs Out ### Write Logs Out
function logs_export { function logs_export {
if [ "${TASKTYPE}" != "BACKUP" ]
then
MESSAGE="Saving File Hashes" MESSAGE="Saving File Hashes"
echo_stat echo_stat
rm -f ${LOG_PATH}/${HISTORY_MD5} rm -f ${LOG_PATH}/${HISTORY_MD5}
@ -724,6 +760,7 @@ function logs_export {
echo -e ${primaryCLMD5} >> ${LOG_PATH}/${HISTORY_MD5} echo -e ${primaryCLMD5} >> ${LOG_PATH}/${HISTORY_MD5}
echo -e ${secondCLMD5} >> ${LOG_PATH}/${HISTORY_MD5} echo -e ${secondCLMD5} >> ${LOG_PATH}/${HISTORY_MD5}
error_validate error_validate
fi
MESSAGE="Logging Successful ${TASKTYPE}" MESSAGE="Logging Successful ${TASKTYPE}"
echo_stat echo_stat
@ -745,6 +782,8 @@ function logs_gs {
tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep PULL tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep PULL
echo -e "Recent Complete ${YELLOW}PUSH${NC} Executions" echo -e "Recent Complete ${YELLOW}PUSH${NC} Executions"
tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep PUSH tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep PUSH
echo -e "Recent Complete ${YELLOW}BACKUP${NC} Executions"
tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep BACKUP
echo -e "Recent Complete ${YELLOW}RESTORE${NC} Executions" echo -e "Recent Complete ${YELLOW}RESTORE${NC} Executions"
tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep RESTORE tail -n 7 "${LOG_PATH}/${SYNCING_LOG}" | grep RESTORE
echo -e "========================================================" echo -e "========================================================"
@ -1335,12 +1374,47 @@ function config_generate {
cp $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}.example $HOME/${LOCAL_FOLDR}/${CONFIG_FILE} cp $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}.example $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}
error_validate error_validate
MESSAGE="Environment Customization"
echo_info
MESSAGE="Enter a custom SSH port if required (Leave blank for default '22')"
echo_need
read INPUT_SSH_PORT
INPUT_SSH_PORT="${INPUT_SSH_PORT:-22}"
if [ "${INPUT_SSH_PORT}" != "22" ]
then
MESSAGE="Saving Custom SSH Port to ${CONFIG_FILE}"
echo_stat
sed -i "/# SSH_PORT=''/c\SSH_PORT='${INPUT_SSH_PORT}'" $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}
error_validate
fi
MESSAGE="Perform PING tests between Pi-holes? (Leave blank for default 'Yes')"
echo_need
read INPUT_PING_AVOID
INPUT_PING_AVOID="${INPUT_PING_AVOID:-Y}"
if [ "${INPUT_PING_AVOID}" != "Y" ]
then
MESSAGE="Saving Ping Avoidance to ${CONFIG_FILE}"
echo_stat
sed -i "/# PING_AVOID=''/c\PING_AVOID='1'" $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}
error_validate
PING_AVOID=1
fi
MESSAGE="Standard Settings"
echo_info
MESSAGE="IP or DNS of Primary Pi-hole" MESSAGE="IP or DNS of Primary Pi-hole"
echo_need echo_need
read INPUT_REMOTE_HOST read INPUT_REMOTE_HOST
if [ "${PING_AVOID}" != "1" ] if [ "${PING_AVOID}" != "1" ]
then then
MESSAGE="Testing Network Connection (PING)" MESSAGE="Testing Network Connection (PING)"
echo_stat echo_stat
ping -c 3 ${INPUT_REMOTE_HOST} >/dev/null 2>&1 ping -c 3 ${INPUT_REMOTE_HOST} >/dev/null 2>&1
@ -1781,6 +1855,7 @@ function task_backup {
backup_local_custom backup_local_custom
backup_cleanup backup_cleanup
logs_export
exit_withchange exit_withchange
} }