Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- set -e
- ## Constant Variables
- bkpdir=/var/auto_backup # be sure this folder exists
- servername=
- mysqlpwd=
- mysql_user=root
- archive_password= # Password of the backup archive
- ## IRC Reporting script settings
- ## You can use the same server that the gazelle code (in config.php) uses
- ## Comment out the echo "PRIVMSG.." lines if you don't use this
- ircreport_server=
- ircreport_port=
- ## Check if the backup dir exists
- if [ ! -d "$bkpdir" ]
- then
- echo "Specified backup directory '$bkpdir' does NOT exist!"
- exit 0
- fi
- echo "Backing up selected items on $servername"
- ## Send IRC Messages
- echo "PRIVMSG #admin :/002Backup:/002 Backup script starting..." | netcat -q0 $ircreport_server $ircreport_port
- echo "PRIVMSG #staff :Backup script starting..." | netcat -q0 $ircreport_server $ircreport_port
- echo "PRIVMSG #staff :This may take a few minutes. During that time, the script will compress the backup and upload it to the backup server." | netcat -q0 $ircreport_server $ircreport_port
- echo "PRIVMSG #staff :Please be patient, I will tell you when it completes." | netcat -q0 $ircreport_server $ircreport_port
- ##
- ## Make the file names
- ##
- # New file
- curdate=`date +%m-%d-%Y`
- outdir=$servername"_"$curdate
- # Last backup's file
- yesterday=`date -d "yesterday" +"%m-%d-%Y"`
- olddir=$servername"_"$yesterday
- ##
- ## Start backing up files/directories
- ##
- echo "Copying files and folders..."
- echo "PRIVMSG #admin :/002Backup:/002 Copying files and folders" | netcat -q0 $ircreport_server $ircreport_port
- cd $bkpdir
- sudo rm -fr $servername*
- sudo mkdir $outdir
- cd $outdir
- ## These are the temporary sub directories in the backup folder
- ## Edit this to match your backup copying commands below
- sudo mkdir etc
- sudo mkdir usr
- ## These are the dirs to backup
- ## Edit this to match your server
- sudo cp -r /etc/update-motd.d/ etc/update-motd.d/
- sudo cp -r /etc/group etc/group
- sudo cp -r /etc/fstab etc/fstab
- sudo cp -r /etc/motd.tail etc/motd.tail
- sudo cp -r /etc/proftpd/ etc/proftpd/
- sudo cp -r /etc/apache2/ etc/apache2/
- sudo cp -r /usr/local/etc/sphinx.conf usr/sphinx.conf
- sudo cp -r /etc/memcached.conf etc/memcached.conf
- sudo cp -r /etc/init.d etc/init.d/
- sudo cp -r /var/www www/
- sudo cp -r /usr/local/Unreal3.2 usr/Unreal3.2/
- sudo cp -r /usr/local/services usr/services/
- sudo cp -r /usr/local/xbtt usr/xbtt/
- echo "Copying files and folders: DONE"
- ##
- ## Backup MySQL databases
- ##
- echo "Backing up MySQL..."
- echo "PRIVMSG #admin :/002Backup:/002 Backing up MySQL" | netcat -q0 $ircreport_server $ircreport_port
- sudo mysqldump -u $mysql_user -p$mysqlpwd --all-databases > all-databases.sql
- echo "Backing up MySQL: DONE"
- ##
- ## Compress backup with 7zip
- ##
- cd $bkpdir
- echo "Compressing backup..."
- echo "PRIVMSG #admin :/002Backup:/002 Compressing backup" | netcat -q0 $ircreport_server $ircreport_port
- 7z a -t7z $outdir.7z $outdir -mx9 -mmt=2 -p80486Dx4_
- sudo rm -fr $outdir
- echo "Compressing backup: DONE"
- ##
- ## Upload the backup to the backup server(s)
- ##
- FILE=$outdir.7z
- OLDFILE=$olddir.7z
- backupToServer1()
- {
- echo "PRIVMSG #admin :/002Backup:/002 Uploading to Server 1" | netcat -q0 $ircreport_server $ircreport_port
- echo "Transferring backup to Server 1 for safe keeping."
- /root/sendtoserver1.sh $FILE
- echo "Transferring backup to Server 1 for safe keeping: DONE"
- }
- backupToServer2()
- {
- echo "PRIVMSG #admin :/002Backup:/002 Uploading to Server 2" | netcat -q0 $ircreport_server $ircreport_port
- echo "Transferring backup to Server 2 Slice for safe keeping."
- /root/sendtoserver2.sh $FILE $OLDFILE
- echo "Transferring backup to Server 2 Slice for safe keeping: DONE"
- }
- # Check arguments
- case "$1" in
- --noftp)
- echo "\n--noftp switch used, not backing up backup server(s)\n"
- ;;
- -f)
- echo "Uploading backup to backup server(s)..."
- echo "PRIVMSG #admin :/002Backup:/002 Begining upload to backup server(s)..." | netcat -q0 $ircreport_server $ircreport_port
- case "$2" in
- server1)
- backupToServer1
- ;;
- server2)
- backupToServer2
- ;;
- all)
- backupToServer1
- backupToServer2
- ;;
- *)
- echo "/nINCORRECT ARGUMENT VALUE!"
- echo "You must specify what server(s) to backup to!\n"
- ;;
- esac
- echo "Uploading backup to backup server(s): DONE"
- ;;
- *)
- echo "\nArgument '$1' not found! Continuing with defaults...\n"
- echo "PRIVMSG #admin :/002Backup:/002 Begining upload to backup server(s)..." | netcat -q0 $ircreport_server $ircreport_port
- backupToServer1
- backupToServer2
- echo "Uploading backup to backup server(s): DONE"
- ;;
- esac
- ##
- ## Finished backup
- ##
- echo "Backing script: DONE!"
- ## Send finished IRC messages
- echo "PRIVMSG #admin :/002Backup:/002 Backup script FINISHED!" | netcat -q0 $ircreport_server $ircreport_port
- echo "PRIVMSG #staff :The backup is complete, thank you for your patience." | netcat -q0 $ircreport_server $ircreport_port
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement