Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07896af1ae | ||
|
|
8de971b922 | ||
|
|
e7699015c5 | ||
|
|
28dd6cb911 | ||
|
|
ab47692848 | ||
|
|
4267cb5b32 | ||
|
|
f24daba195 | ||
|
|
98890b87f5 | ||
|
|
a5bc90bb89 | ||
|
|
5af6a84d5f | ||
|
|
14d71f3053 | ||
|
|
24d4fb694f |
2
.shellcheckrc
Normal file
2
.shellcheckrc
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
shell=bash
|
||||||
|
external-sources=true
|
||||||
@@ -163,9 +163,11 @@ ZABBIX_DUMP_BIN="";
|
|||||||
ZABBIX_CONFIG="";
|
ZABBIX_CONFIG="";
|
||||||
ZABBIX_DATABASE="";
|
ZABBIX_DATABASE="";
|
||||||
ZABBIX_UNKNOWN_TABLES="";
|
ZABBIX_UNKNOWN_TABLES="";
|
||||||
|
ZABBIX_DB_PORT="";
|
||||||
OPT_ZABBIX_DUMP="";
|
OPT_ZABBIX_DUMP="";
|
||||||
OPT_ZABBIX_CONFIG="";
|
OPT_ZABBIX_CONFIG="";
|
||||||
OPT_ZABBIX_UNKNOWN_TABLES="";
|
OPT_ZABBIX_UNKNOWN_TABLES="";
|
||||||
|
OPT_ZABBIX_DB_PORT="";
|
||||||
# default keep 7 days, 4 weeks, 6 months, 1 year
|
# default keep 7 days, 4 weeks, 6 months, 1 year
|
||||||
# if set 0, ignore/off
|
# if set 0, ignore/off
|
||||||
# note that for last/hourly it is needed to create a different
|
# note that for last/hourly it is needed to create a different
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Backup gitea database, all git folders and gitea settings
|
# Backup gitea database, all git folders and gitea settings
|
||||||
|
|
||||||
MODULE="gitea"
|
MODULE="gitea"
|
||||||
MODULE_VERSION="1.2.0";
|
MODULE_VERSION="1.2.1";
|
||||||
|
|
||||||
DIR="${BASH_SOURCE%/*}"
|
DIR="${BASH_SOURCE%/*}"
|
||||||
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
||||||
@@ -34,7 +34,7 @@ if [ -z "${GITEA_WORKING_DIR}" ]; then
|
|||||||
GITEA_WORKING_DIR="/var/tmp/gitea/";
|
GITEA_WORKING_DIR="/var/tmp/gitea/";
|
||||||
fi;
|
fi;
|
||||||
# general temp folder for temporary data storage, this is not working output folder
|
# general temp folder for temporary data storage, this is not working output folder
|
||||||
if [ -z "${GITEA_TEMP_DIR}"]; then
|
if [ -z "${GITEA_TEMP_DIR}" ]; then
|
||||||
GITEA_TEMP_DIR="/var/tmp";
|
GITEA_TEMP_DIR="/var/tmp";
|
||||||
fi;
|
fi;
|
||||||
if [ -z "${GITEA_BIN}" ]; then
|
if [ -z "${GITEA_BIN}" ]; then
|
||||||
@@ -91,7 +91,7 @@ if [ ${DRYRUN} -eq 0 ]; then
|
|||||||
if [ ! -d "${GITEA_WORKING_DIR}" ]; then
|
if [ ! -d "${GITEA_WORKING_DIR}" ]; then
|
||||||
mkdir -p "${GITEA_WORKING_DIR}";
|
mkdir -p "${GITEA_WORKING_DIR}";
|
||||||
fi;
|
fi;
|
||||||
chown -R ${GIT_USER}. "${GITEA_WORKING_DIR}";
|
chown -R ${GIT_USER}: "${GITEA_WORKING_DIR}";
|
||||||
# this needs to be run in a folder that can be stat by git user
|
# this needs to be run in a folder that can be stat by git user
|
||||||
cd "${GITEA_WORKING_DIR}";
|
cd "${GITEA_WORKING_DIR}";
|
||||||
sudo -u ${GIT_USER} ${GITEA_BIN} dump -c ${GITEA_CONFIG} -w ${GITEA_WORKING_DIR} -t ${GITEA_TEMP_DIR} --type ${GITEA_EXPORT_TYPE} -L -f - | ${BORG_CALL};
|
sudo -u ${GIT_USER} ${GITEA_BIN} dump -c ${GITEA_CONFIG} -w ${GITEA_WORKING_DIR} -t ${GITEA_TEMP_DIR} --type ${GITEA_EXPORT_TYPE} -L -f - | ${BORG_CALL};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
# set last edit date + time
|
# set last edit date + time
|
||||||
MODULE="mysql"
|
MODULE="mysql"
|
||||||
MODULE_VERSION="1.1.3";
|
MODULE_VERSION="1.1.4";
|
||||||
|
|
||||||
DIR="${BASH_SOURCE%/*}"
|
DIR="${BASH_SOURCE%/*}"
|
||||||
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
||||||
@@ -126,7 +126,7 @@ if [ ! -z "${DATABASE_FULL_DUMP}" ]; then
|
|||||||
${BORG_PRUNE};
|
${BORG_PRUNE};
|
||||||
fi;
|
fi;
|
||||||
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
||||||
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "DONE" "databases" "${MODULE}" "$(convert_time ${DURATION})";
|
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "DONE" "all databases" "${MODULE}" "$(convert_time ${DURATION})";
|
||||||
else
|
else
|
||||||
${MYSQL_CMD} ${MYSQL_DB_CONFIG_PARAM} -B -N -e "show databases" |
|
${MYSQL_CMD} ${MYSQL_DB_CONFIG_PARAM} -B -N -e "show databases" |
|
||||||
while read db; do
|
while read db; do
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
# set last edit date + time
|
# set last edit date + time
|
||||||
MODULE="pgsql"
|
MODULE="pgsql"
|
||||||
MODULE_VERSION="1.2.4";
|
MODULE_VERSION="1.2.7";
|
||||||
|
|
||||||
|
|
||||||
DIR="${BASH_SOURCE%/*}"
|
DIR="${BASH_SOURCE%/*}"
|
||||||
@@ -105,7 +105,7 @@ if [ ! -z "${DATABASE_FULL_DUMP}" ]; then
|
|||||||
LOCAL_START=$(date +'%s');
|
LOCAL_START=$(date +'%s');
|
||||||
printf "${PRINTF_SUBEXT_BLOCK}" "BACKUP" "all databases" "$(date +'%F %T')" "${MODULE}";
|
printf "${PRINTF_SUBEXT_BLOCK}" "BACKUP" "all databases" "$(date +'%F %T')" "${MODULE}";
|
||||||
# Filename
|
# Filename
|
||||||
FILENAME-"all.${DB_USER}.NONE.${schema_flag}-${DB_VERSION}_${DB_HOST}_${DB_PORT}.c.sql"
|
FILENAME="all.${DB_USER}.NONE.${schema_flag}-${DB_VERSION}_${DB_HOST}_${DB_PORT}.c.sql"
|
||||||
# backup set:
|
# backup set:
|
||||||
BACKUP_SET_PREFIX="${MODULE},all-";
|
BACKUP_SET_PREFIX="${MODULE},all-";
|
||||||
BACKUP_SET_NAME="${ONE_TIME_TAG}${BACKUP_SET_PREFIX}${schema_flag}-${BACKUP_SET}";
|
BACKUP_SET_NAME="${ONE_TIME_TAG}${BACKUP_SET_PREFIX}${schema_flag}-${BACKUP_SET}";
|
||||||
@@ -134,7 +134,7 @@ if [ ! -z "${DATABASE_FULL_DUMP}" ]; then
|
|||||||
${BORG_PRUNE};
|
${BORG_PRUNE};
|
||||||
fi;
|
fi;
|
||||||
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
||||||
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "DONE" "databases" "${MODULE}" "$(convert_time ${DURATION})";
|
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "DONE" "all databases" "${MODULE}" "$(convert_time ${DURATION})";
|
||||||
else
|
else
|
||||||
# dump globals first
|
# dump globals first
|
||||||
db="pg_globals";
|
db="pg_globals";
|
||||||
@@ -171,7 +171,7 @@ else
|
|||||||
${BORG_PRUNE};
|
${BORG_PRUNE};
|
||||||
fi;
|
fi;
|
||||||
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
DURATION=$[ $(date +'%s')-$LOCAL_START ];
|
||||||
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "BACKUP" "${db}" "${MODULE}" "$(convert_time ${DURATION})";
|
printf "${PRINTF_DB_RUN_TIME_SUB_BLOCK}" "DONE" "${db}" "${MODULE}" "$(convert_time ${DURATION})";
|
||||||
|
|
||||||
# get list of tables
|
# get list of tables
|
||||||
for owner_db in $(${PG_PSQL} -U ${DB_USER} ${CONN_DB_HOST} ${CONN_DB_PORT} -d template1 -t -A -F "," -X -q -c "SELECT pg_catalog.pg_get_userbyid(datdba) AS owner, datname, pg_catalog.pg_encoding_to_char(encoding) AS encoding FROM pg_catalog.pg_database WHERE datname "\!"~ 'template(0|1)' ORDER BY datname;"); do
|
for owner_db in $(${PG_PSQL} -U ${DB_USER} ${CONN_DB_HOST} ${CONN_DB_PORT} -d template1 -t -A -F "," -X -q -c "SELECT pg_catalog.pg_get_userbyid(datdba) AS owner, datname, pg_catalog.pg_encoding_to_char(encoding) AS encoding FROM pg_catalog.pg_database WHERE datname "\!"~ 'template(0|1)' ORDER BY datname;"); do
|
||||||
|
|||||||
@@ -40,12 +40,15 @@ COMPACT_INTERVAL="";
|
|||||||
# if set to 1 then every time the script runs
|
# if set to 1 then every time the script runs
|
||||||
# any other value it means ever n days, eg 90 would be every 90 days
|
# any other value it means ever n days, eg 90 would be every 90 days
|
||||||
CHECK_INTERVAL="";
|
CHECK_INTERVAL="";
|
||||||
# default is %Y-%m-%d
|
# default is {now:%Y-%m-%d}
|
||||||
# todays date, if more than one per day add -%H%M for hour/minute
|
# todays date, if more than one per day add -%H%M for hour/minute
|
||||||
# it can also be "{hostname}-{user}-{now:%Y-%m-%dT%H:%M:%S.%f}"
|
# it can also be "{hostname}-{user}-{now:%Y-%m-%dT%H:%M:%S.%f}"
|
||||||
BACKUP_SET="";
|
BACKUP_SET="";
|
||||||
# prune times, how many are kept in each time frame
|
# prune times, how many are kept in each time frame
|
||||||
|
KEEP_LAST="";
|
||||||
|
KEEP_HOURS="";
|
||||||
KEEP_DAYS="";
|
KEEP_DAYS="";
|
||||||
KEEP_WEEKS="";
|
KEEP_WEEKS="";
|
||||||
KEEP_MONTHS="";
|
KEEP_MONTHS="";
|
||||||
KEEP_YEARS="";
|
KEEP_YEARS="";
|
||||||
|
KEEP_WITHIN="";
|
||||||
|
|||||||
@@ -15,3 +15,5 @@ ZABBIX_DATABASE="";
|
|||||||
ZABBIX_CONFIG="";
|
ZABBIX_CONFIG="";
|
||||||
# unknown tables, default ignore, is set to true, will force backup them
|
# unknown tables, default ignore, is set to true, will force backup them
|
||||||
ZABBIX_UNKNOWN_TABLES="";
|
ZABBIX_UNKNOWN_TABLES="";
|
||||||
|
# overide zabbix db port read from zabbix config, if not set read from zabbix config
|
||||||
|
ZABBIX_DB_PORT="";
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ fi;
|
|||||||
if [ "${ZABBIX_DATABASE}" = "psql" ]; then
|
if [ "${ZABBIX_DATABASE}" = "psql" ]; then
|
||||||
OPT_ZABBIX_DUMP="-C";
|
OPT_ZABBIX_DUMP="-C";
|
||||||
fi;
|
fi;
|
||||||
|
OPT_ZABBIX_DB_PORT="";
|
||||||
|
if [ -n "${ZABBIX_DB_PORT}" ]; then
|
||||||
|
OPT_ZABBIX_DB_PORT="-P ${ZABBIX_DB_PORT}";
|
||||||
|
fi;
|
||||||
if [ "${ZABBIX_DATABASE}" != "psql" ] && [ "${ZABBIX_DATABASE}" != "mysql" ]; then
|
if [ "${ZABBIX_DATABASE}" != "psql" ] && [ "${ZABBIX_DATABASE}" != "mysql" ]; then
|
||||||
echo "[! $(date +'%F %T')] Zabbix dump must have database set to either psql or mysql";
|
echo "[! $(date +'%F %T')] Zabbix dump must have database set to either psql or mysql";
|
||||||
. "${DIR}/borg.backup.functions.close.sh" 1;
|
. "${DIR}/borg.backup.functions.close.sh" 1;
|
||||||
@@ -70,13 +74,13 @@ fi;
|
|||||||
|
|
||||||
printf "${PRINTF_SUB_BLOCK}" "BACKUP: zabbix settings" "$(date +'%F %T')" "${MODULE}";
|
printf "${PRINTF_SUB_BLOCK}" "BACKUP: zabbix settings" "$(date +'%F %T')" "${MODULE}";
|
||||||
if [ ${DEBUG} -eq 1 ] || [ ${DRYRUN} -eq 1 ]; then
|
if [ ${DEBUG} -eq 1 ] || [ ${DRYRUN} -eq 1 ]; then
|
||||||
echo "${ZABBIX_DUMP_BIN} -t ${ZABBIX_DATABASE} ${OPT_ZABBIX_UNKNOWN_TABLES} ${OPT_ZABBIX_DUMP} ${OPT_ZABBIX_CONFIG} -o - | ${BORG_CALL}"
|
echo "${ZABBIX_DUMP_BIN} ${OPT_ZABBIX_DB_PORT} -t ${ZABBIX_DATABASE} ${OPT_ZABBIX_UNKNOWN_TABLES} ${OPT_ZABBIX_DUMP} ${OPT_ZABBIX_CONFIG} -o - | ${BORG_CALL}"
|
||||||
if [ -z "${ONE_TIME_TAG}" ]; then
|
if [ -z "${ONE_TIME_TAG}" ]; then
|
||||||
echo "${BORG_PRUNE}";
|
echo "${BORG_PRUNE}";
|
||||||
fi;
|
fi;
|
||||||
fi;
|
fi;
|
||||||
if [ ${DRYRUN} -eq 0 ]; then
|
if [ ${DRYRUN} -eq 0 ]; then
|
||||||
${ZABBIX_DUMP_BIN} -t ${ZABBIX_DATABASE} ${OPT_ZABBIX_UNKNOWN_TABLES} ${OPT_ZABBIX_DUMP} ${OPT_ZABBIX_CONFIG} -o - | ${BORG_CALL};
|
${ZABBIX_DUMP_BIN} ${OPT_ZABBIX_DB_PORT} -t ${ZABBIX_DATABASE} ${OPT_ZABBIX_UNKNOWN_TABLES} ${OPT_ZABBIX_DUMP} ${OPT_ZABBIX_CONFIG} -o - | ${BORG_CALL};
|
||||||
fi;
|
fi;
|
||||||
if [ -z "${ONE_TIME_TAG}" ]; then
|
if [ -z "${ONE_TIME_TAG}" ]; then
|
||||||
printf "${PRINTF_SUB_BLOCK}" "PRUNE" "$(date +'%F %T')" "${MODULE}";
|
printf "${PRINTF_SUB_BLOCK}" "PRUNE" "$(date +'%F %T')" "${MODULE}";
|
||||||
|
|||||||
Reference in New Issue
Block a user