Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Simple backup script
- #
- ############ config ################
- ### backup folder (local)
- backupPath=/backup/localhost
- ### mysql
- mysqlUser=user
- mysqlPassword=password
- ### postgres
- psqlHost=localhost
- psqlPort=5432
- psqlUser=postgres
- psqlPassword=password
- ### remote server
- remoteUser=user
- remoteHost=remoteserver
- remotePort=22
- remotePath=/home/backup/localServerName
- ############ end config ############
- #######################################
- cat > ~/.pgpass << ^D
- $psqlHost:$psqlPort:*:$psqlUser:$psqlPassword
- ^D
- chmod 600 ~/.pgpass
- ssh-keygen -t rsa
- ### hit return three times
- ### copy public key to the remote machine
- ### NOTE: make sure ~/.ssh exists on remote server
- ### and it has permissions 700
- ssh-copy-id -i ~/.ssh/id_rsa.pub "-p $remotePort $remoteUser@$remoteHost"
- ### enter your password for username on remote_host
- ######################################
- ######### START BACKUP SCRIPT ########
- ######################################
- cat > /etc/cron.weekly/remote_backup << ^D
- #!/bin/sh
- ### current date
- date=\`date +%Y-%m-%d\`
- ### current backup location
- path=$backupPath/\$date
- mysqlBackup=\$path/mysql
- psqlBackup=\$path/psql
- ### create path if doesn't exist #####
- function validateDir {
- if [ ! -d \$1 ]
- then
- mkdir -p \$1
- fi
- }
- validateDir \$path
- ######### backup mysql ###############
- validateDir \$mysqlBackup
- #mysqldump -u $mysqlUser -p$mysqlPassword --all-databases > \$mysqlBackup/dumpall.sql
- ######### backup postgres ############
- validateDir \$psqlBackup
- pg_dumpall -U $psqlUser > \$psqlBackup/dumpall.sql
- ######### backup archive #############
- #tar zcvf \$path/etc.tgz /etc/
- #validateDir \$path/var
- #tar zcvf \$path/var/named.tgz /var/named/
- #tar zcvf \$path/home.tgz /home/
- ######### save to remote server #######
- rsync -e "ssh -p $remotePort" -avrp $path $remoteUser@$remoteHost:$remotePath
- ^D
- ######################################
- ######### END BACKUP SCRIPT ########
- ######################################
- chmod 700 /etc/cron.weekly/remote_backup
- ### create remote backup path
- ssh -p $remotePort $remoteUser@$remoteHost mkdir -p $remotePath
Add Comment
Please, Sign In to add comment