1
0
Pārlūkot izejas kodu

Added export of last backups, added html report of last backups

pmacko 2 nedēļas atpakaļ
vecāks
revīzija
cda846da62
1 mainītis faili ar 100 papildinājumiem un 7 dzēšanām
  1. 100 7
      pve_backup.sh

+ 100 - 7
pve_backup.sh

@@ -1,13 +1,19 @@
 #!/bin/bash
 #########################################################################
 #                 Script for extract PVE backup VM status               #
-#                            Created by PM-DoIT                         #
-#                                 ver 0.1                               #
+#                      Created by Pavol Macko - DoIT                    #
+#                                 ver 0.4                               #
 #########################################################################
-clear
+
+#---------------------------- VARIABLES --------------------------------#
 SRV=$(hostname -s)
-echo -e "  \e[1;32mACTUAL SUMMARY\e[0m of ALL extracted PROXMOX virtual server \e[1;35mbackups\e[0m from server \e[1;33m$SRV\e[0m "
-test -f /tmp/pveb && rm -rf /tmp/pveb
+SRC="/var/www/backup/"
+test -d $SRC || mkdir $SRC
+WEB="$SRC/index.html"
+
+#--------------------------- EXTRACT-ALL -------------------------------#
+extall(){
+echo -e "  \e[1;32mACTUAL SUMMARY\e[0m of \e[1;36mALL\e[0m extracted PROXMOX virtual server \e[1;35mbackups\e[0m from server \e[1;33m$SRV\e[0m "
 echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" > /tmp/pveb.log
 echo "PID HOSTNAME START-DATE START-TIME END-DATE END-TIME HDD-SIZE DUR(s) BCK-SIZE" >> /tmp/pveb.log
 echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" >> /tmp/pveb.log
@@ -19,9 +25,96 @@ cat $b | grep "Backup started" | awk '{print $5,$6}' > /tmp/pbs
 cat $b | grep "VM Name" | awk '{print $4}' > /tmp/pbn
 cat $b | grep "Backup finished" | awk '{print $5,$6}' > /tmp/pbe
 cat $b | grep "transferred" | awk '{print $3$4,$6}' | sed 's/\.00//g' | sed 's/i//g' > /tmp/pbt
-cat $b | grep "archive file" | awk '{print $5}' > /tmp/pbz
+SIZ=$(cat $b | grep "archive file" | awk '{print $5}')
+if [ ! -z "$SIZ" ];
+then
+        cat $b | grep "archive file" | awk '{print $5}' > /tmp/pbz
+else
+        cat $b | grep "backup is sparse" | awk '{print $5$6}' > /tmp/pbz
+fi
 paste /tmp/pbi /tmp/pbn /tmp/pbs /tmp/pbe /tmp/pbt /tmp/pbz >> /tmp/pveb
 done
 cat /tmp/pveb | sort -n >> /tmp/pveb.log
 echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" >> /tmp/pveb.log
-cat /tmp/pveb.log | column -t
+cat /tmp/pveb.log | column -t
+}
+
+#--------------------------- EXTRACT-LAST -------------------------------#
+extlast(){
+echo -e "  \e[1;32mACTUAL SUMMARY\e[0m of \e[1;36mLAST\e[0m extracted PROXMOX virtual server \e[1;35mbackups\e[0m from server \e[1;33m$SRV\e[0m "
+echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" > /tmp/pvebt.log
+echo "PID HOSTNAME START-DATE START-TIME END-DATE END-TIME HDD-SIZE DUR(s) BCK-SIZE" >> /tmp/pvebt.log
+echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" >> /tmp/pvebt.log
+PID=$(cat /tmp/pveb.log | awk '{print $1}' | egrep -v "\---|PID" | sort | uniq)
+for t in $PID;
+do
+cat /tmp/pveb.log | grep -w $t | tail -1 >> /tmp/pvebt.log
+done
+sed -i "s/[[:space:]]\+/ /g" /tmp/pvebt.log
+echo "--- --------- ---------- ---------- ---------- -------- -------- ------ --------" >> /tmp/pvebt.log
+}
+
+#-------------------------- GENERATE-WEB -------------------------------#
+extweb(){
+cat > $WEB <<\EOG
+<html>
+<head>
+<title>PVE-Backups</title>
+</head>
+<BODY>
+<TABLE WIDTH="100%" BORDER=1>
+<TBODY>
+<TR BGCOLOR="#C0C0C0" VALIGN=center>
+<TD WIDTH="10%"><DIV ALIGN=center><B>PID</B></DIV></TD>
+<TD WIDTH="20%"><DIV ALIGN=center><B>HOSTNAME</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>START-DATE</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>START-TIME</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>END-DATE</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>END-TIME</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>HDD-SIZE</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>DUR(s)</B></DIV></TD>
+<TD WIDTH="10%"><DIV ALIGN=center><B>BCK-SIZE</B></DIV></TD>
+</TR>
+EOG
+IDS=$(cat /tmp/pvebt.log | grep "^[0-9]" | awk '{print $9}')
+for e in $IDS;
+do
+ID=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $1}')
+HST=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $2}')
+SDATE=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $3}')
+STIME=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $4}')
+EDATE=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $5}')
+ETIME=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $6}')
+HSIZE=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $7}')
+DUR=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $8}')
+BSIZE=$(cat /tmp/pvebt.log | grep -w "$e" | awk '{print $9}')
+echo "<TR VALIGN=center>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$ID</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"20%\"><DIV ALIGN=center>$HST</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$SDATE</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$STIME</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$EDATE</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$ETIME</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$HSIZE</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$DUR</DIV></TD>" >> $WEB
+echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$e</DIV></TD>" >> $WEB
+echo "</TR>" >> $WEB
+done
+cat >> $WEB <<EOX
+<TR BGCOLOR="#C0C0C0" VALIGN=center>
+<TD COlSPAN="9" WIDTH="100%"><DIV ALIGN=center><B>GENERATED: <I>`date +%d/%m/%Y" "%T`</I></B></DIV></TD>
+</TR>
+</TBODY>
+</TABLE>
+</BODY>
+EOX
+}
+
+#------------------------------- CORE ----------------------------------#
+rm -rf /tmp/pveb*
+echo ""
+extall
+extlast
+extweb
+cat /tmp/pvebt.log | column -t
+echo -e "- \e[1;32mGenerating\e[0m web report [\e[1;33m$WEB\e[0m]"