CasperSecurity
| Current Path : /usr/local/bin/ |
|
|
| Current File : //usr/local/bin/backup_app_server.sh |
#!/bin/bash
# -----------------------------
# Variables
# -----------------------------
APP_FILES="/var/www"
BACKUP_USER="uietadmin"
BACKUP_SERVER="192.168.0.140"
REMOTE_BASE="/backups/uiet-app-server/backups"
DATE=$(date +%F)
LOCAL_TMP="/tmp/backup_$DATE"
DB_USER="backupuser"
DB_PASS="P@ssw0rd@2025"
DB_LIST=("acasv2_db") # Add other critical DBs here
RETENTION_DAYS=15
# -----------------------------
# Create temporary backup directory
# -----------------------------
mkdir -p $LOCAL_TMP/files
mkdir -p $LOCAL_TMP/db
# -----------------------------
# Backup website/app files
# -----------------------------
tar -czf $LOCAL_TMP/files/www_$DATE.tar.gz -C / $APP_FILES
# -----------------------------
# Backup MySQL databases
# -----------------------------
for db in "${DB_LIST[@]}"; do
mysqldump -u $DB_USER -p$DB_PASS --no-tablespaces --databases $db > $LOCAL_TMP/db/${db}_$DATE.sql
done
# -----------------------------
# Transfer backups to backup server
# -----------------------------
rsync -avz $LOCAL_TMP/files/ $BACKUP_USER@$BACKUP_SERVER:$REMOTE_BASE/uiet/backup_$DATE/files/
rsync -avz $LOCAL_TMP/db/ $BACKUP_USER@$BACKUP_SERVER:$REMOTE_BASE/db/mysql/
# -----------------------------
# Cleanup local temporary backup
# -----------------------------
rm -rf $LOCAL_TMP
# -----------------------------
# Remove old backups on backup server
# -----------------------------
ssh $BACKUP_USER@$BACKUP_SERVER "find $REMOTE_BASE/uiet/ -maxdepth 1 -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;"
ssh $BACKUP_USER@$BACKUP_SERVER "find $REMOTE_BASE/db/mysql/ -type f -mtime +$RETENTION_DAYS -exec rm -f {} \;"
echo "Backup completed successfully on $DATE"