Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Initialize Global Variables
- db_name=
- mysql_root=
- server_ip=
- server_user=
- server_pass=
- path=
- project=
- current_dir=$(pwd)
- # Read the values parsed from json file
- read -p "DB Name: " db_name
- read -p "Mysql root pass: " mysql_root
- read -p "Backup Server IP: " server_ip
- read -p "Backup Server User: " server_user
- read -p "Backup Server User-pass: " server_pass
- read -p "Backup Server path: " path # path can be relative to user or full-path
- # path should exist on remote server otherwise error will be thrown
- read -p "Project: " project
- push_backup() {
- expect -c "
- set timeout -1
- spawn scp -o StrictHostKeyChecking=no ../${project}.tar ${server_user}@${server_ip}:${path}
- expect password: { send $server_pass\r }
- expect '100%'
- sleep 1
- exit
- "
- }
- backup_mysql() {
- touch ${db_name}.sql
- echo "" > ${db_name}.sql
- expect -c "
- set timeout -1
- spawn mysqldump -u root -p ${db_name}
- expect password: { send $mysql_root\r }
- log_file ${db_name}.sql
- expect 'Dump completed'
- exit
- "
- }
- make_tar() {
- cd ..
- tar -cvzf ${project}.tar ${current_dir##*/}
- rm $current_dir/${db_name}.sql
- cd $current_dir
- }
- logging() {
- output=`date`
- filename=`date +%Y-%m-%d`.txt
- mkdir -p ~/backup_logs
- touch ~/backup_logs/$filename
- echo "Backup for '$project' Completed on $output" >> ~/backup_logs/$filename
- }
- backup_mysql > /dev/null
- make_tar
- push_backup
- logging
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement