Initial commit
This commit is contained in:
commit
a437c068c8
64 changed files with 561683 additions and 0 deletions
36
scripts/backup/backup_daily.sh
Executable file
36
scripts/backup/backup_daily.sh
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# == func log ===================================================================================================================
|
||||
warning() {
|
||||
echo "Warning: $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "Error: $1" && exit 1
|
||||
}
|
||||
|
||||
REPONAME="3drepository"
|
||||
BPATH="/var/www/data/backups/daily"
|
||||
BDPATH="/var/www/data/backups/daily/db"
|
||||
WEBSITE="www.dfg-repository.wisski.cloud"
|
||||
|
||||
# == init script ================================================================================================================
|
||||
CURRENT_DATE=$(date +%d%m%y%H%M)
|
||||
TGZ_FILE="${BPATH}/backup_${WEBSITE}_${CURRENT_DATE}.tgz"
|
||||
SQL_FILE="${BDPATH}/${WEBSITE}_databases_${CURRENT_DATE}.sql"
|
||||
BSOURCE="/var/www/html/${REPONAME}"
|
||||
|
||||
mkdir -p "$BPATH"
|
||||
|
||||
# == main =======================================================================================================================
|
||||
mkdir -p "${BDPATH}"
|
||||
|
||||
source read_settings.sh
|
||||
#mysqldump -h ${DATABASE_HOST} -u ${DATABASE_USER} -p${DATABASE_PASS} ${DATABASE} --hex-blob --skip-lock-tables --single-transaction > "$SQL_FILE"
|
||||
|
||||
tar --exclude="${BPATH:1}" --warning=none -czpf "${TGZ_FILE}" -C / "$BSOURCE" var/www/data
|
||||
|
||||
#scp "$TGZ_FILE" "${USER}@example.work:/mnt/home/${USER}"
|
||||
|
||||
find ${BPATH}/*.tgz -mtime +7 -exec rm {} \;
|
||||
find ${BDPATH}/*.tgz -mtime +7 -exec rm {} \;
|
||||
63
scripts/backup/backup_monthly.sh
Executable file
63
scripts/backup/backup_monthly.sh
Executable file
|
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
error() {
|
||||
echo -e "Error: $1\nExiting..." && exit 1
|
||||
}
|
||||
|
||||
warning() {
|
||||
echo "Warning: $1 Skipping..."
|
||||
}
|
||||
|
||||
MONTHLY_BACKUPS_PATH="/var/www/data/backups/monthly"
|
||||
WEEKLY_BACKUPS_PATH="/var/www/data/backups/weekly"
|
||||
|
||||
clean_old_monthly_backups() {
|
||||
find ${MONTHLY_BACKUPS_PATH}/*.tgz -mtime +181 -exec rm {} \;
|
||||
}
|
||||
|
||||
clean_old_monthly_db_backups() {
|
||||
find ${MONTHLY_BACKUPS_PATH}/db/*.tgz -mtime +181 -exec rm {} \;
|
||||
}
|
||||
|
||||
sync_from_weekly() {
|
||||
# shellcheck disable=SC2010
|
||||
ffd="$(ls -pt | grep -v / | head -1)"
|
||||
if [[ -n "$ffd" ]]; then
|
||||
rsync -dtz --ignore-existing "${ffd}" "$1"
|
||||
else
|
||||
warning "No files found to sync!"
|
||||
fi
|
||||
}
|
||||
|
||||
process_with_dbs() {
|
||||
if [[ -d "${MONTHLY_BACKUPS_PATH}/" ]]; then
|
||||
clean_old_monthly_backups
|
||||
|
||||
if ! cd "${WEEKLY_BACKUPS_PATH}/"; then
|
||||
warning "Failed to cd into ${WEEKLY_BACKUPS_PATH}/"
|
||||
else
|
||||
# clean old weekly backups
|
||||
find ${WEEKLY_BACKUPS_PATH}/*.tgz -mtime +28 -exec rm {} \;
|
||||
|
||||
sync_from_weekly "${MONTHLY_BACKUPS_PATH}/"
|
||||
fi
|
||||
|
||||
if [[ -d "${MONTHLY_BACKUPS_PATH}/db/" ]]; then
|
||||
clean_old_monthly_db_backups
|
||||
|
||||
if ! cd "${WEEKLY_BACKUPS_PATH}/db/"; then
|
||||
warning "Failed to cd into ${WEEKLY_BACKUPS_PATH}/db/"
|
||||
else
|
||||
# clean old weekly db backups
|
||||
find ${WEEKLY_BACKUPS_PATH}/db/*.tgz -mtime +28 -exec rm {} \;
|
||||
|
||||
sync_from_weekly "${MONTHLY_BACKUPS_PATH}/db/"
|
||||
fi
|
||||
else
|
||||
warning "Cannot locate ${MONTHLY_BACKUPS_PATH}/db/"
|
||||
fi
|
||||
else
|
||||
warning "Cannot locate ${MONTHLY_BACKUPS_PATH}/"
|
||||
fi
|
||||
}
|
||||
|
||||
64
scripts/backup/backup_weekly.sh
Executable file
64
scripts/backup/backup_weekly.sh
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# == func log ===================================================================================================================
|
||||
warning() {
|
||||
echo "Warning: $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "Error: $1" && exit 1
|
||||
}
|
||||
|
||||
BDPATH="/var/www/data/backups/daily/db"
|
||||
WEBSITE="www.dfg-repository.wisski.cloud"
|
||||
|
||||
DAILY_BACKUPS_PATH="/var/www/data/backups/daily"
|
||||
WEEKLY_BACKUPS_PATH="/var/www/data/backups/weekly"
|
||||
|
||||
sync_from_daily() {
|
||||
ffd="$(ls -pt | grep -v / | head -1)"
|
||||
if [[ -n "$ffd" ]]; then
|
||||
rsync -dtz --ignore-existing "${ffd}" "$1"
|
||||
else
|
||||
warning "No files found to sync!"
|
||||
fi
|
||||
}
|
||||
|
||||
process_with_dbs() {
|
||||
path="${DAILY_BACKUPS_PATH}"
|
||||
|
||||
if [[ -d "${WEEKLY_BACKUPS_PATH}/" ]]; then
|
||||
# clean old weekly backups
|
||||
find ${WEEKLY_BACKUPS_PATH}/*.tgz -mtime +28 -exec rm {} \;
|
||||
|
||||
if ! cd "${path}"; then
|
||||
warning "Failed to cd into ${path}"
|
||||
else
|
||||
# clean old daily backups
|
||||
find "${path}"/*.tgz -mtime +6 -exec rm {} \;
|
||||
|
||||
sync_from_daily "${WEEKLY_BACKUPS_PATH}/"
|
||||
fi
|
||||
|
||||
path+="/db"
|
||||
if [[ -d "${WEEKLY_BACKUPS_PATH}/db/" ]]; then
|
||||
# clean old weekly db backups
|
||||
find ${WEEKLY_BACKUPS_PATH}/db/*.tgz -mtime +28 -exec rm {} \;
|
||||
|
||||
if ! cd "${path}"; then
|
||||
warning "Failed to cd into ${path}"
|
||||
else
|
||||
# clean old daily db backups
|
||||
find "${path}"/*.tgz -mtime +6 -exec rm {} \;
|
||||
|
||||
sync_from_daily "${WEEKLY_BACKUPS_PATH}/db/"
|
||||
fi
|
||||
else
|
||||
warning "Cannot locate ${WEEKLY_BACKUPS_PATH}/db/"
|
||||
fi
|
||||
else
|
||||
warning "Cannot locate ${WEEKLY_BACKUPS_PATH}/"
|
||||
fi
|
||||
}
|
||||
|
||||
process_with_dbs
|
||||
10
scripts/backup/read_settings.sh
Executable file
10
scripts/backup/read_settings.sh
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
FILENAME="/var/www/html/3drepository/sites/default/settings.php"
|
||||
|
||||
test -f ../.env && source "$_"
|
||||
|
||||
DATABASE=$(php -r "error_reporting(0); \$filename = '$FILENAME'; error_reporting(0); (require(\$filename)); echo \$databases[\"default\"][\"default\"][\"database\"];")
|
||||
DATABASE_HOST=$(php -r "error_reporting(0); \$filename = '$FILENAME'; error_reporting(0); (require(\$filename)); echo \$databases[\"default\"][\"default\"][\"host\"];")
|
||||
DATABASE_PASS=$(php -r "error_reporting(0); \$filename = '$FILENAME'; error_reporting(0); (require(\$filename)); echo \$databases[\"default\"][\"default\"][\"password\"];")
|
||||
DATABASE_USER=$(php -r "error_reporting(0); \$filename = '$FILENAME'; error_reporting(0); (require(\$filename)); echo \$databases[\"default\"][\"default\"][\"username\"];")
|
||||
Loading…
Add table
Add a link
Reference in a new issue