1
0
Quellcode durchsuchen

Script for backup main folders with retentions

pmacko vor 2 Wochen
Ursprung
Commit
0f2861531b
1 geänderte Dateien mit 67 neuen und 0 gelöschten Zeilen
  1. 67 0
      gbackup.sh

+ 67 - 0
gbackup.sh

@@ -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