Advertisement
Guest User

Untitled

a guest
Apr 7th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Initialize Global Variables
  4. db_name=
  5. mysql_root=
  6. server_ip=
  7. server_user=
  8. server_pass=
  9. path=
  10. project=
  11. current_dir=$(pwd)
  12.  
  13. # Read the values parsed from json file
  14. read -p "DB Name: " db_name
  15. read -p "Mysql root pass: " mysql_root
  16. read -p "Backup Server IP: " server_ip
  17. read -p "Backup Server User: " server_user
  18. read -p "Backup Server User-pass: " server_pass
  19. read -p "Backup Server path: " path # path can be relative to user or full-path
  20. # path should exist on remote server otherwise error will be thrown
  21.  
  22. read -p "Project: " project
  23.  
  24. push_backup() {
  25. expect -c "
  26. set timeout -1
  27. spawn scp -o StrictHostKeyChecking=no ../${project}.tar ${server_user}@${server_ip}:${path}
  28. expect password: { send $server_pass\r }
  29. expect '100%'
  30. sleep 1
  31. exit
  32. "
  33. }
  34.  
  35. backup_mysql() {
  36. touch ${db_name}.sql
  37. echo "" > ${db_name}.sql
  38. expect -c "
  39. set timeout -1
  40. spawn mysqldump -u root -p ${db_name}
  41. expect password: { send $mysql_root\r }
  42. log_file ${db_name}.sql
  43. expect 'Dump completed'
  44. exit
  45. "
  46. }
  47.  
  48. make_tar() {
  49. cd ..
  50. tar -cvzf ${project}.tar ${current_dir##*/}
  51. rm $current_dir/${db_name}.sql
  52. cd $current_dir
  53. }
  54.  
  55. logging() {
  56. output=`date`
  57. filename=`date +%Y-%m-%d`.txt
  58. mkdir -p ~/backup_logs
  59. touch ~/backup_logs/$filename
  60. echo "Backup for '$project' Completed on $output" >> ~/backup_logs/$filename
  61. }
  62.  
  63. backup_mysql > /dev/null
  64. make_tar
  65. push_backup
  66. logging
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement