gbackup.sh 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. #########################################################################
  3. # Script for global backup main folders of ARM devices #
  4. # Created by PM-DoIT #
  5. # ver 0.1 #
  6. #########################################################################
  7. #----------------------------- VARIABLES -------------------------------#
  8. CAT="HTSNMC02|HTSNMC03|HTSCONPI|propiv1|thcpiv2"
  9. DAY="30"
  10. DAT=$(date +%y%m%d)
  11. SRV=/etc/hosts
  12. TMP=/tmp/hosts
  13. BCK=/opt/backup
  14. #---------------------------- CREDENTIALS ------------------------------#
  15. source /root/.credentials
  16. #------------------------------ CHECK ----------------------------------#
  17. check(){
  18. test -f $TMP && rm -rf $TMP
  19. cat $SRV | awk '{print $2}' | egrep "$CAT" | grep "$READSITE" | sort | uniq | while read output
  20. do
  21. ping -c 1 "$output" > /dev/null
  22. if [ $? -eq 0 ]; then
  23. echo "$output" >> $TMP
  24. else
  25. echo -e "- $output is \e[1;31mDOWN\e[0m"
  26. fi
  27. done
  28. }
  29. #------------------------------ BACKUP ---------------------------------#
  30. backup(){
  31. test -d $BCK || mkdir $BCK
  32. echo -e "Starting backup [\e[1;33mmain\e[0m] folders:"
  33. for i in `cat $TMP`
  34. do
  35. echo -e "- \e[1;32m$i\e[0m start backup [\e[1;33metc\e[0m]"
  36. sshpass -p $password ssh -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no $localuser@${i} 2> /dev/null "sudo -S tar cf /opt/etc.tar /etc > /dev/null 2>&1"
  37. echo -e "- \e[1;32m$i\e[0m download backup [\e[1;33metc\e[0m]"
  38. sshpass -p $password scp -r -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no -o LogLevel=quiet $localuser@${i}:/opt/etc.tar /opt/backup/${i}_etc_$DAT.tar > /dev/null 2>&1
  39. echo -e "- \e[1;32m$i\e[0m start backup [\e[1;34mhome\e[0m]"
  40. sshpass -p $password ssh -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no $localuser@${i} 2> /dev/null "sudo -S cp /var/spool/cron/crontabs/root /home/crontab"
  41. sshpass -p $password ssh -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no $localuser@${i} 2> /dev/null "sudo -S tar cf /opt/home.tar /home > /dev/null 2>&1"
  42. echo -e "- \e[1;32m$i\e[0m download backup [\e[1;34mhome\e[0m]"
  43. sshpass -p $password scp -r -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no -o LogLevel=quiet $localuser@${i}:/opt/home.tar /opt/backup/${i}_home_$DAT.tar > /dev/null 2>&1
  44. echo -e "- \e[1;32m$i\e[0m start backup [\e[1;35mwww\e[0m]"
  45. sshpass -p $password ssh -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no $localuser@${i} 2> /dev/null "test -d /var/www && sudo -S tar cf /opt/www.tar /var/www > /dev/null 2>&1"
  46. echo -e "- \e[1;32m$i\e[0m download backup [\e[1;35mwww\e[0m]"
  47. sshpass -p $password scp -r -o "UserKnownHostsFile=/dev/null" -o StrictHostKeyChecking=no -o LogLevel=quiet $localuser@${i}:/opt/www.tar /opt/backup/${i}_www_$DAT.tar > /dev/null 2>&1
  48. done
  49. }
  50. #------------------------------ BACKUP ---------------------------------#
  51. status(){
  52. SZ=$(du -h -d1 /opt/ | grep backup | awk '{print $1}')
  53. echo -e "- Removing [\e[1;33m$DAY\e[0m] old days backups"
  54. find $BCK/* -mtime +$DAY -exec rm {} \;
  55. echo -e "- Backups saved to [\e[1;36m/opt/backup\e[0m] size [\e[1;33m$SZ\e[0m]"
  56. }
  57. #------------------------------- CORE ----------------------------------#
  58. check
  59. backup
  60. status