Guest User

Untitled

a guest
Jan 20th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #!/bin/bash
  2. # Simple backup script
  3. #
  4.  
  5. ############ config ################
  6. ### backup folder (local)
  7. backupPath=/backup/localhost
  8.  
  9. ### mysql
  10. mysqlUser=user
  11. mysqlPassword=password
  12.  
  13. ### postgres
  14. psqlHost=localhost
  15. psqlPort=5432
  16. psqlUser=postgres
  17. psqlPassword=password
  18.  
  19. ### remote server
  20. remoteUser=user
  21. remoteHost=remoteserver
  22. remotePort=22
  23. remotePath=/home/backup/localServerName
  24.  
  25. ############ end config ############
  26. #######################################
  27.  
  28. cat > ~/.pgpass << ^D
  29. $psqlHost:$psqlPort:*:$psqlUser:$psqlPassword
  30. ^D
  31.  
  32. chmod 600 ~/.pgpass
  33.  
  34. ssh-keygen -t rsa
  35. ### hit return three times
  36.  
  37. ### copy public key to the remote machine
  38. ### NOTE: make sure ~/.ssh exists on remote server
  39. ### and it has permissions 700
  40. ssh-copy-id -i ~/.ssh/id_rsa.pub "-p $remotePort $remoteUser@$remoteHost"
  41. ### enter your password for username on remote_host
  42.  
  43. ######################################
  44. ######### START BACKUP SCRIPT ########
  45. ######################################
  46.  
  47. cat > /etc/cron.weekly/remote_backup << ^D
  48. #!/bin/sh
  49. ### current date
  50. date=\`date +%Y-%m-%d\`
  51.  
  52. ### current backup location
  53. path=$backupPath/\$date
  54. mysqlBackup=\$path/mysql
  55. psqlBackup=\$path/psql
  56.  
  57. ### create path if doesn't exist #####
  58. function validateDir {
  59. if [ ! -d \$1 ]
  60. then
  61. mkdir -p \$1
  62. fi
  63. }
  64.  
  65. validateDir \$path
  66.  
  67. ######### backup mysql ###############
  68. validateDir \$mysqlBackup
  69. #mysqldump -u $mysqlUser -p$mysqlPassword --all-databases > \$mysqlBackup/dumpall.sql
  70.  
  71. ######### backup postgres ############
  72. validateDir \$psqlBackup
  73. pg_dumpall -U $psqlUser > \$psqlBackup/dumpall.sql
  74.  
  75. ######### backup archive #############
  76. #tar zcvf \$path/etc.tgz /etc/
  77. #validateDir \$path/var
  78. #tar zcvf \$path/var/named.tgz /var/named/
  79. #tar zcvf \$path/home.tgz /home/
  80.  
  81. ######### save to remote server #######
  82. rsync -e "ssh -p $remotePort" -avrp $path $remoteUser@$remoteHost:$remotePath
  83.  
  84.  
  85. ^D
  86. ######################################
  87. ######### END BACKUP SCRIPT ########
  88. ######################################
  89.  
  90. chmod 700 /etc/cron.weekly/remote_backup
  91.  
  92. ### create remote backup path
  93. ssh -p $remotePort $remoteUser@$remoteHost mkdir -p $remotePath
Add Comment
Please, Sign In to add comment