Move .scripts -> .local/bin
This commit is contained in:
Executable
+95
@@ -0,0 +1,95 @@
|
||||
#!/bin/sh
|
||||
|
||||
BACKUP_COUNT_MAX=5
|
||||
|
||||
# Backup individual files
|
||||
FILES="
|
||||
/etc/netctl/eth0-dhcp
|
||||
"
|
||||
|
||||
# Backup all files from folder
|
||||
FOLDER_FILES="
|
||||
/etc/netctl
|
||||
"
|
||||
|
||||
# Backup complete folder (recursively)
|
||||
FOLDERS="
|
||||
/etc/netctl
|
||||
"
|
||||
|
||||
# Database credentials
|
||||
USER="username"
|
||||
PASSWORD="password"
|
||||
HOST="127.0.0.1"
|
||||
|
||||
# Database names
|
||||
DATABASES="
|
||||
example
|
||||
example2
|
||||
"
|
||||
|
||||
# ------------------------------------ #
|
||||
|
||||
### Remove / create backup directories ###
|
||||
|
||||
if [ "$(dirname "$0")" != "." ]; then
|
||||
echo "Please run this script from the directory it resides."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# All directories
|
||||
BACKUP_FILES="$(find . -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | sort -r)"
|
||||
|
||||
# Current amount of backups
|
||||
BACKUP_COUNT=$(echo "$BACKUP_FILES" | wc -l)
|
||||
|
||||
# Remove the oldest backup folders
|
||||
if [ "$BACKUP_COUNT" -ge $BACKUP_COUNT_MAX ]; then
|
||||
BACKUPS_OLDEST="$(echo "$BACKUP_FILES" | sed -nE "
|
||||
1,${BACKUP_COUNT_MAX}d;
|
||||
s/^([0-9]{2}|-|_|:){12}$/\0/p
|
||||
")"
|
||||
|
||||
printf "%s\n%s\n" "Removing directories:" "$BACKUPS_OLDEST"
|
||||
rm -rf $BACKUPS_OLDEST
|
||||
fi
|
||||
|
||||
# Execution location
|
||||
DIR="$(pwd)"
|
||||
|
||||
# Create new backup folder
|
||||
BACKUP_NAME="$(date +%Y-%m-%d_%H:%M:%S)"
|
||||
mkdir "$DIR/$BACKUP_NAME"
|
||||
|
||||
### Start backup procedure ###
|
||||
|
||||
# Individual files
|
||||
for FILE in $FILES; do
|
||||
mkdir -p "$DIR/$BACKUP_NAME/$(dirname "$FILE")"
|
||||
cp -a "$FILE" "$DIR/$BACKUP_NAME/$FILE"
|
||||
done
|
||||
|
||||
# All files inside folder
|
||||
for FOLDER_FILE in $FOLDER_FILES; do
|
||||
mkdir -p "$DIR/$BACKUP_NAME/$FOLDER_FILE"
|
||||
|
||||
# Usind find -> read ensures filename space support
|
||||
find "$FOLDER_FILE" -maxdepth 1 -type f | while read -r FILE; do
|
||||
cp "$FILE" "$DIR/$BACKUP_NAME/$FILE"
|
||||
done
|
||||
done
|
||||
|
||||
# Complete folder
|
||||
for FOLDER in $FOLDERS; do
|
||||
mkdir -p "$DIR/$BACKUP_NAME/$FOLDER"
|
||||
cp -r "$FOLDER" "$DIR/$BACKUP_NAME/$(dirname "$FOLDER")"
|
||||
done
|
||||
|
||||
# Set default file permissions
|
||||
umask 177
|
||||
# MYSQL Dump
|
||||
for DATABASE in $DATABASES; do
|
||||
# mysqldump --user=$USER --protocol=socket -S /var/run/mysqld/mysqld.sock "$DATABASE" \
|
||||
mysqldump --user=$USER --password=$PASSWORD --host=$HOST "$DATABASE" \
|
||||
> "$DIR/$BACKUP_NAME/$DATABASE-$BACKUP_NAME.sql"
|
||||
done
|
||||
Reference in New Issue
Block a user