#!/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