|
@@ -0,0 +1,67 @@
|
|
|
|
|
+#!/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
|