| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #!/bin/bash
- #########################################################################
- # Script for extract PVE backup VM status #
- # Created by Pavol Macko - DoIT #
- # ver 0.4 #
- #########################################################################
- #---------------------------- VARIABLES --------------------------------#
- SRV=$(hostname -s)
- 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
- LST=$(egrep -lRi "backup" /var/log/pve/tasks/* | grep pam)
- for b in $LST;
- do
- cat $b | grep "Starting Backup" | awk '{print $6}' > /tmp/pbi
- 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
- 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
- }
- #--------------------------- 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]"
|