Skip to content

Instantly share code, notes, and snippets.

@esmiz
Last active February 6, 2017 10:15
Show Gist options
  • Save esmiz/00b6300241c1d1f7272015d2bb55444f to your computer and use it in GitHub Desktop.
Save esmiz/00b6300241c1d1f7272015d2bb55444f to your computer and use it in GitHub Desktop.
Simple backup script
#!/bin/bash
echo "OK, starting now..."
#######################
# Set environment variables
#######################
SOURCE_FILES="/home/* /etc/*"
SOURCE_TEMPDIR=<temporary_files_directory>
TARGET_USER=<target_backup_server_user>
TARGET_SERVER=<target_backup_host>
TARGET_PATH=<target_path_on_backup_server>
MYSQL_USER=<mysql_user>
MYSQL_PASS=<mysql_password>
MYSQL_HOST=localhost
if [ `date +%d` -eq "28" ]; then
DAY=`date +%m%d`
else
DAY=`date +%d`
fi
echo Backup for Day: $DAY
mkdir -p $SOURCE_TEMPDIR
#######################
# MySQL Operations
#######################
echo Starting Mysql
mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases > $SOURCE_TEMPDIR/mysql-latest.sql
echo Mysql is finished
#######################
# File Operations
#######################
echo Starting compressed tarball generation
tar -chvzf $SOURCE_TEMPDIR/files_back_$DAY.tgz $SOURCE_FILES
tar -chvzf $SOURCE_TEMPDIR/mysql_back_$DAY.tgz $SOURCE_TEMPDIR/mysql-latest.sql
#####################
# Copy files
##################
echo File Copying
scp $SOURCE_TEMPDIR/files_back_$DAY.tgz $TARGET_USER@$TARGET_SERVER:$TARGET_PATH
scp $SOURCE_TEMPDIR/mysql_back_$DAY.tgz $TARGET_USER@$TARGET_SERVER:$TARGET_PATH
#####################
# Erase files
##################
echo Removing backup files
rm $SOURCE_TEMPDIR/files_back_$DAY.tgz
rm $SOURCE_TEMPDIR/mysql_back_$DAY.tgz
echo Hoooorayyyyy! Backup completed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment