import borgthismachine and mysqlBackup
This commit is contained in:
parent
89a293efe0
commit
de9207112b
2 changed files with 126 additions and 0 deletions
86
borgthismachine.sh
Executable file
86
borgthismachine.sh
Executable file
|
@ -0,0 +1,86 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [[ "$HOME" == "/" ]] ; then
|
||||||
|
HOME="/root/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
HOME=${HOME:-"/root/"}
|
||||||
|
|
||||||
|
PERSONALCONFIG="$HOME/.config/borg.conf"
|
||||||
|
|
||||||
|
BORGHOST=""
|
||||||
|
USER=""
|
||||||
|
REPO=""
|
||||||
|
MAC=""
|
||||||
|
BORG_PASSPHRASE=""
|
||||||
|
BORG_EXCLUDE_FILE=""
|
||||||
|
BORG_EXCLUDE_PATTERN=("/var/cache/*"
|
||||||
|
"/var/tmp/*"
|
||||||
|
)
|
||||||
|
BORG_BACKUP_DIRS=(
|
||||||
|
"/etc"
|
||||||
|
"/var"
|
||||||
|
"/home"
|
||||||
|
"/usr/local"
|
||||||
|
)
|
||||||
|
|
||||||
|
APPENDONLY="YES" #unset if not used
|
||||||
|
BORG_PRUNEARG=("--keep-daily=7" "--keep-weekly=4" "--keep-monthly=12")
|
||||||
|
MYREPO=${USER}@${BORGHOST}:${REPO}
|
||||||
|
BORG_ARGS=""
|
||||||
|
|
||||||
|
if [[ -e "$PERSONALCONFIG" ]] ; then
|
||||||
|
ls -l "$PERSONALCONFIG"
|
||||||
|
#shellcheck disable=SC1090
|
||||||
|
source "$PERSONALCONFIG"
|
||||||
|
else
|
||||||
|
echo "$PERSONALCONFIG not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
MYREPO="${USER}@${BORGHOST}:${REPO}"
|
||||||
|
|
||||||
|
|
||||||
|
export BORG_PASSPHRASE
|
||||||
|
export HOME
|
||||||
|
echo using repo: $MYREPO
|
||||||
|
|
||||||
|
SNAPSHOT="$(date +%a-%Y-%m-%d)"
|
||||||
|
|
||||||
|
echo #### borg backup ####
|
||||||
|
if [[ -n "${MAC}" ]] ; then
|
||||||
|
if ! ping -c 1 $BORGHOST &> /dev/null ; then
|
||||||
|
wakeonlan $MAC
|
||||||
|
#wakup may take some time
|
||||||
|
sleep 10
|
||||||
|
else
|
||||||
|
echo $BORGHOST is up
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#wordsplitting is needed for arguments
|
||||||
|
#shellcheck disable=SC2046
|
||||||
|
nice ionice -c 3 borg create --stats \
|
||||||
|
--exclude-caches \
|
||||||
|
--one-file-system \
|
||||||
|
${BORG_ARGS} \
|
||||||
|
$([[ -n "${BORG_EXCLUDE_PATTERN[*]}" ]] && printf " --exclude \"%s\" " "${BORG_EXCLUDE_PATTERN[@]}" ) \
|
||||||
|
$([[ -n "$BORG_EXCLUDE_FILE" ]] && printf " --exclude-from \"%s\" " "${BORG_EXCLUDE_FILE}" ) \
|
||||||
|
"${MYREPO}::${SNAPSHOT}" \
|
||||||
|
"${BORG_BACKUP_DIRS[@]}"
|
||||||
|
|
||||||
|
echo RetVal = $?
|
||||||
|
|
||||||
|
if [[ "${APPENDONLY}" != "YES" ]] ; then
|
||||||
|
time borg prune -v "$MYREPO" "${BORG_PRUNEARG[@]}"
|
||||||
|
|
||||||
|
echo RetVal = $?
|
||||||
|
|
||||||
|
time borg list -v $MYREPO
|
||||||
|
echo RetVal = $?
|
||||||
|
else
|
||||||
|
echo "#############"
|
||||||
|
echo "You should purge the repository from time to time"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ##### borg end ######
|
40
mysqlBackup.sh
Executable file
40
mysqlBackup.sh
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
MYSQLDIR="/var/lib/backups/mysql"
|
||||||
|
MYSQLOPTIONFILE="/root/.my.cnf"
|
||||||
|
DAYS="30"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
umask 0077
|
||||||
|
|
||||||
|
if ! pgrep mysqld > /dev/null ; then
|
||||||
|
echo "no mysqld running!"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
mkdir -p "$MYSQLDIR"
|
||||||
|
for db in $(mysql "--defaults-file=$MYSQLOPTIONFILE" -u backupuser -s -N -e 'SHOW DATABASES;'); do
|
||||||
|
#echo -e "==> Backing up database $db"
|
||||||
|
BACKEDUP="$BACKEDUP $db"
|
||||||
|
file=$MYSQLDIR/mysqldump-$db-$(date +%F_%H-%M).sql
|
||||||
|
mysqldump "--defaults-file=$MYSQLOPTIONFILE" -u backupuser --opt --single-transaction --databases "$db" | bzip2 > "$file.bz2"
|
||||||
|
done
|
||||||
|
|
||||||
|
count=0
|
||||||
|
#echo -e "\n==> Searching $MYSQLDIR for backups older than $DAYS days..."
|
||||||
|
for file in $(find "$MYSQLDIR" -type f -mtime "+$DAYS"); do
|
||||||
|
#echo "rm $file"
|
||||||
|
DELETED="$DELETED $(basename "$file")"
|
||||||
|
rm "$file"
|
||||||
|
count=$(($count+1))
|
||||||
|
done
|
||||||
|
if [[ -n "$BACKEDUP" ]] ; then
|
||||||
|
echo "Backed up databases: $BACKEDUP"
|
||||||
|
else
|
||||||
|
echo "no database backed up"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$DELETED" ]] ; then
|
||||||
|
echo "<== End: $count backups removed: ${DELETED}"
|
||||||
|
else
|
||||||
|
echo "No old backups removed!"
|
||||||
|
fi
|
||||||
|
|
Loading…
Add table
Reference in a new issue