mirror of
https://github.com/vmstan/gravity-sync.git
synced 2024-08-30 18:22:11 +00:00
Moving each status type to a function
This commit is contained in:
parent
d369aceb5a
commit
e08022cfe1
10
README.md
10
README.md
@ -126,13 +126,13 @@ Gravity Sync will validate that the `sshpass` utility is installed on your syste
|
|||||||
Save. Keep calm, carry on.
|
Save. Keep calm, carry on.
|
||||||
|
|
||||||
## Execution
|
## Execution
|
||||||
Now test the script. You can run a comparison between the two which will be non-distruptive and see if everything has been configured correctly.
|
Now, test Gravity Sync. You can run a comparison between primary and secondary databases, which will be non-distruptive, and see if everything has been configured correctly.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./gravity-sync.sh compare
|
./gravity-sync.sh compare
|
||||||
```
|
```
|
||||||
|
|
||||||
Assuming Gravity Sync runs successfully, it'll indicate if there are changes pending between the two databases. If not, I suggest making a subtle change to a whitelist/blacklist on your primary PH, such as changing a description field or disabling a whitelist item, and then running `./gravity-sync.sh compare` again to validate your installation is working correctly.
|
Assuming Gravity Sync runs successfully, it will indicate if there are changes pending between the two databases. If not, make a subtle change to a whitelist/blacklist on your primary PH, such as changing a description field or disabling a whitelist item, and then running `./gravity-sync.sh compare` again to validate your installation is working correctly.
|
||||||
|
|
||||||
### The Pull Function
|
### The Pull Function
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ The Gravity Sync Pull, is the standard method of sync operation, and will not pr
|
|||||||
./gravity-sync.sh pull
|
./gravity-sync.sh pull
|
||||||
```
|
```
|
||||||
|
|
||||||
If the execution completes, you will now have overwritten your running gravity.db on the secondary PH after creating a copy of the running database (`gravity.db.backup`) in the `backup` subfolder located with your script. Gravity Sync will also keep a copy of the last sync'd gravity.db from the master, in the `backup` folder identified as `gravity.db.pull` for future use.
|
If the execution completes, you will now have overwritten your running gravity.db on the secondary PH after creating a copy of the running database (`gravity.db.backup`) in the `backup` subfolder located with your script. Gravity Sync will also keep a copy of the last sync'd gravity.db from the primary (in the `backup` folder identified as `gravity.db.pull`) for future use.
|
||||||
|
|
||||||
Finally, a file called `gravity-sync.log` will be created in the `gravity-sync` folder along side the script with the date the script was last executed appended to the bottom.
|
Finally, a file called `gravity-sync.log` will be created in the `gravity-sync` folder along side the script with the date the script was last executed appended to the bottom.
|
||||||
|
|
||||||
@ -224,4 +224,6 @@ chmod +x gravity-sync.sh
|
|||||||
- If you use a non-standard SSH port to connect to your primary Pi-hole, you can add `SSH_PORT='123'` to the bottom of your `gravity-sync.conf` file. (Subsitute 123 for your non-standard port.) This will overwrite the `SSH_PORT=22` at the top of the script as it is imported later in the execution.
|
- If you use a non-standard SSH port to connect to your primary Pi-hole, you can add `SSH_PORT='123'` to the bottom of your `gravity-sync.conf` file. (Subsitute 123 for your non-standard port.) This will overwrite the `SSH_PORT=22` at the top of the script as it is imported later in the execution.
|
||||||
- If you'd like to know what version of the script you have running by running `./gravity-sync.sh version`
|
- If you'd like to know what version of the script you have running by running `./gravity-sync.sh version`
|
||||||
- If the update script fails, make sure you did your original deployment via `git clone` and not a manual install.
|
- If the update script fails, make sure you did your original deployment via `git clone` and not a manual install.
|
||||||
- If it doesn't kick off, you can manually execute a `git pull` while in the `gravity-sync` directory.
|
- If it doesn't kick off, you can manually execute a `git pull` while in the `gravity-sync` directory.
|
||||||
|
|
||||||
|
If all else fails, delete the entire `gravity-sync` folder from your system and re-deploy. This will have no impact on your replicated databases.
|
@ -73,12 +73,12 @@ function import_gs {
|
|||||||
error_validate
|
error_validate
|
||||||
|
|
||||||
MESSAGE="Using ${REMOTE_USER}@${REMOTE_HOST}"
|
MESSAGE="Using ${REMOTE_USER}@${REMOTE_HOST}"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
else
|
else
|
||||||
echo -e "\r${FAIL} ${MESSAGE}"
|
echo -e "\r${FAIL} ${MESSAGE}"
|
||||||
|
|
||||||
MESSAGE="${CONFIG_FILE} Missing"
|
MESSAGE="${CONFIG_FILE} Missing"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
TASKTYPE='CONFIG'
|
TASKTYPE='CONFIG'
|
||||||
config_generate
|
config_generate
|
||||||
@ -93,7 +93,7 @@ function update_gs {
|
|||||||
# logs_export # dumps log prior to execution because script stops after successful pull
|
# logs_export # dumps log prior to execution because script stops after successful pull
|
||||||
|
|
||||||
MESSAGE="Requires GitHub Installation"
|
MESSAGE="Requires GitHub Installation"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
git reset --hard
|
git reset --hard
|
||||||
git pull
|
git pull
|
||||||
exit
|
exit
|
||||||
@ -105,7 +105,7 @@ function beta_gs {
|
|||||||
# logs_export # dumps log prior to execution because script stops after successful pull
|
# logs_export # dumps log prior to execution because script stops after successful pull
|
||||||
|
|
||||||
MESSAGE="Requires GitHub Installation"
|
MESSAGE="Requires GitHub Installation"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
git reset --hard
|
git reset --hard
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git pull origin development
|
git pull origin development
|
||||||
@ -117,10 +117,13 @@ function beta_gs {
|
|||||||
function pull_gs {
|
function pull_gs {
|
||||||
TASKTYPE='PULL'
|
TASKTYPE='PULL'
|
||||||
|
|
||||||
echo -e "${INFO} ${TASKTYPE} Requested"
|
MESSAGE="${TASKTYPE} Requested"
|
||||||
|
echo_info
|
||||||
|
|
||||||
md5_compare
|
md5_compare
|
||||||
|
|
||||||
echo -e "${INFO} ${TASKTYPE} Commencing"
|
MESSAGE="${TASKTYPE} Starting"
|
||||||
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Backing Up ${GRAVITY_FI} on $HOSTNAME"
|
MESSAGE="Backing Up ${GRAVITY_FI} on $HOSTNAME"
|
||||||
echo -en "${STAT} ${MESSAGE}"
|
echo -en "${STAT} ${MESSAGE}"
|
||||||
@ -176,7 +179,7 @@ function pull_gs {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
MESSAGE="Inverting Tachyon Pulse"
|
MESSAGE="Inverting Tachyon Pulse"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
MESSAGE="Updating FTLDNS Configuration"
|
MESSAGE="Updating FTLDNS Configuration"
|
||||||
@ -226,7 +229,7 @@ function push_gs {
|
|||||||
error_validate
|
error_validate
|
||||||
|
|
||||||
MESSAGE="Contacting Borg Collective"
|
MESSAGE="Contacting Borg Collective"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
MESSAGE="Updating FTLDNS Configuration"
|
MESSAGE="Updating FTLDNS Configuration"
|
||||||
@ -343,7 +346,7 @@ function validate_ph_folders {
|
|||||||
## Validate SSHPASS
|
## Validate SSHPASS
|
||||||
function validate_os_sshpass {
|
function validate_os_sshpass {
|
||||||
MESSAGE="Checking SSH Configuration"
|
MESSAGE="Checking SSH Configuration"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
if hash sshpass 2>/dev/null
|
if hash sshpass 2>/dev/null
|
||||||
then
|
then
|
||||||
@ -367,7 +370,7 @@ function validate_os_sshpass {
|
|||||||
MESSAGE="Using SSH Key-Pair Authentication"
|
MESSAGE="Using SSH Key-Pair Authentication"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Testing SSH Connection"
|
MESSAGE="Testing SSH Connection"
|
||||||
echo -en "${STAT} ${MESSAGE}"
|
echo -en "${STAT} ${MESSAGE}"
|
||||||
@ -437,7 +440,7 @@ function config_generate {
|
|||||||
if hash sshpass 2>/dev/null
|
if hash sshpass 2>/dev/null
|
||||||
then
|
then
|
||||||
MESSAGE="SSHPASS Utility Detected"
|
MESSAGE="SSHPASS Utility Detected"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Do you want to configure password based SSH authentication?"
|
MESSAGE="Do you want to configure password based SSH authentication?"
|
||||||
echo -e "${WARN} ${MESSAGE}"
|
echo -e "${WARN} ${MESSAGE}"
|
||||||
@ -455,10 +458,10 @@ function config_generate {
|
|||||||
|
|
||||||
else
|
else
|
||||||
MESSAGE="SSHPASS Not Installed"
|
MESSAGE="SSHPASS Not Installed"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Defaulting to SSH Key-Pair Authentication"
|
MESSAGE="Defaulting to SSH Key-Pair Authentication"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $INPUT_REMOTE_PASS ]
|
if [ -z $INPUT_REMOTE_PASS ]
|
||||||
@ -466,10 +469,10 @@ function config_generate {
|
|||||||
if [ -f $HOME/${SSH_PKIF} ]
|
if [ -f $HOME/${SSH_PKIF} ]
|
||||||
then
|
then
|
||||||
MESSAGE="Using Existing ~/${SSH_PKIF}"
|
MESSAGE="Using Existing ~/${SSH_PKIF}"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
else
|
else
|
||||||
MESSAGE="Generating ~/${SSH_PKIF}"
|
MESSAGE="Generating ~/${SSH_PKIF}"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Accept All Defaults"
|
MESSAGE="Accept All Defaults"
|
||||||
echo -e "${WARN} ${MESSAGE}"
|
echo -e "${WARN} ${MESSAGE}"
|
||||||
@ -495,7 +498,7 @@ function config_generate {
|
|||||||
if [ -f $HOME/${SSH_PKIF} ]
|
if [ -f $HOME/${SSH_PKIF} ]
|
||||||
then
|
then
|
||||||
MESSAGE="Registering Key-Pair on ${REMOTE_HOST}"
|
MESSAGE="Registering Key-Pair on ${REMOTE_HOST}"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="Enter ${REMOTE_USER}@${REMOTE_HOST} Password Below"
|
MESSAGE="Enter ${REMOTE_USER}@${REMOTE_HOST} Password Below"
|
||||||
echo -e "${NEED} ${MESSAGE}"
|
echo -e "${NEED} ${MESSAGE}"
|
||||||
@ -558,7 +561,7 @@ function exit_nochange {
|
|||||||
function exit_withchange {
|
function exit_withchange {
|
||||||
SCRIPT_END=$SECONDS
|
SCRIPT_END=$SECONDS
|
||||||
MESSAGE="${PROGRAM} ${TASKTYPE} Completed in $((SCRIPT_END-SCRIPT_START)) seconds"
|
MESSAGE="${PROGRAM} ${TASKTYPE} Completed in $((SCRIPT_END-SCRIPT_START)) seconds"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -605,14 +608,14 @@ function task_automate {
|
|||||||
if [ ${CRON_CHECK} == 1 ]
|
if [ ${CRON_CHECK} == 1 ]
|
||||||
then
|
then
|
||||||
MESSAGE="Automation Task Already Exists"
|
MESSAGE="Automation Task Already Exists"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
MESSAGE="Use 'crontab -e' to manually remove/edit"
|
MESSAGE="Use 'crontab -e' to manually remove/edit"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
exit_nochange
|
exit_nochange
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MESSAGE="Set Automation Frequency Per Hour"
|
MESSAGE="Set Automation Frequency Per Hour"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
MESSAGE="1 = Every 60 Minutes"
|
MESSAGE="1 = Every 60 Minutes"
|
||||||
echo -e "++++++ ${MESSAGE}"
|
echo -e "++++++ ${MESSAGE}"
|
||||||
@ -658,6 +661,39 @@ function task_automate {
|
|||||||
exit_withchange
|
exit_withchange
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Echo Stack
|
||||||
|
## Informative
|
||||||
|
function echo_info {
|
||||||
|
echo -e "${INFO} ${MESSAGE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Warning
|
||||||
|
function echo_warn {
|
||||||
|
echo -e "${WARN} ${MESSAGE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Executing
|
||||||
|
function echo_stat {
|
||||||
|
echo -en "${STAT} ${MESSAGE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Success
|
||||||
|
function echo_good {
|
||||||
|
echo -e "\r${GOOD} ${MESSAGE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Failure
|
||||||
|
function echo_fail {
|
||||||
|
echo -e "\r${FAIL} ${MESSAGE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Request
|
||||||
|
function echo_need {
|
||||||
|
echo -en "${NEED} ${MESSAGE}: "
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SCRIPT EXECUTION ###########################
|
# SCRIPT EXECUTION ###########################
|
||||||
SCRIPT_START=$SECONDS
|
SCRIPT_START=$SECONDS
|
||||||
|
|
||||||
@ -679,7 +715,7 @@ case $# in
|
|||||||
import_gs
|
import_gs
|
||||||
|
|
||||||
MESSAGE="Validating Folder Configuration"
|
MESSAGE="Validating Folder Configuration"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
validate_gs_folders
|
validate_gs_folders
|
||||||
validate_ph_folders
|
validate_ph_folders
|
||||||
validate_os_sshpass
|
validate_os_sshpass
|
||||||
@ -734,7 +770,7 @@ case $# in
|
|||||||
echo -e "\r${GOOD} ${MESSAGE}"
|
echo -e "\r${GOOD} ${MESSAGE}"
|
||||||
|
|
||||||
MESSAGE="Logs Requested"
|
MESSAGE="Logs Requested"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
logs_gs
|
logs_gs
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@ -770,7 +806,7 @@ case $# in
|
|||||||
|
|
||||||
else
|
else
|
||||||
MESSAGE="${CONFIG_FILE} Missing"
|
MESSAGE="${CONFIG_FILE} Missing"
|
||||||
echo -e "${INFO} ${MESSAGE}"
|
echo_info
|
||||||
|
|
||||||
config_generate
|
config_generate
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user