| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/bash
- #########################################################################
- # Script for global backup main folders of ARM devices #
- # Created by PM-DoIT #
- # ver 0.1 #
- #########################################################################
- #----------------------------- VARIABLES -------------------------------#
- CAT="HTSNMC02|HTSNMC03|HTSCONPI|propiv1|thcpiv2"
- DAY="30"
- DAT=$(date +%y%m%d)
- SRV=/etc/hosts
- TMP=/tmp/hosts
- BCK=/opt/backup
- #---------------------------- CREDENTIALS ------------------------------#
- source /root/.credentials
- #------------------------------ CHECK ----------------------------------#
- check(){
- test -f $TMP && rm -rf $TMP
- cat $SRV | awk '{print $2}' | egrep "$CAT" | grep "$READSITE" | sort | uniq | while read output
- do
- ping -c 1 "$output" > /dev/null
- if [ $? -eq 0 ]; then
- echo "$output" >> $TMP
- else
- echo -e "- $output is \e[1;31mDOWN\e[0m"
- fi
- done
- }
- #------------------------------ BACKUP ---------------------------------#
- backup(){
- test -d $BCK || mkdir $BCK
- echo -e "Starting backup [\e[1;33mmain\e[0m] folders:"
- for i in `cat $TMP`
- do
- echo -e "- \e[1;32m$i\e[0m start backup [\e[1;33metc\e[0m]"
- 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"
- echo -e "- \e[1;32m$i\e[0m download backup [\e[1;33metc\e[0m]"
- 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
- echo -e "- \e[1;32m$i\e[0m start backup [\e[1;34mhome\e[0m]"
- 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"
- 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"
- echo -e "- \e[1;32m$i\e[0m download backup [\e[1;34mhome\e[0m]"
- 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
- echo -e "- \e[1;32m$i\e[0m start backup [\e[1;35mwww\e[0m]"
- 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"
- echo -e "- \e[1;32m$i\e[0m download backup [\e[1;35mwww\e[0m]"
- 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
- done
- }
- #------------------------------ BACKUP ---------------------------------#
- status(){
- SZ=$(du -h -d1 /opt/ | grep backup | awk '{print $1}')
- echo -e "- Removing [\e[1;33m$DAY\e[0m] old days backups"
- find $BCK/* -mtime +$DAY -exec rm {} \;
- echo -e "- Backups saved to [\e[1;36m/opt/backup\e[0m] size [\e[1;33m$SZ\e[0m]"
- }
- #------------------------------- CORE ----------------------------------#
- check
- backup
- status
|