pve_backup_II.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/bin/bash
  2. #########################################################################
  3. # Script for extract PVE backup VM status II #
  4. # Created by Pavol Macko - DoIT #
  5. # ver 0.1 #
  6. #########################################################################
  7. #---------------------------- VARIABLES --------------------------------#
  8. SRC="nas"
  9. SRV=$(hostname -s)
  10. FLD="/var/www/backup"
  11. test -d $FLD || mkdir $FLD
  12. WEB="$FLD/index.html"
  13. test -d /mnt/pve/$SRC/ || echo -e "- \e[1;31mWrong\e[0m source variable [\e[1;36m$SRC\e[0m]"
  14. test -d /mnt/pve/$SRC/ || exit 1
  15. #------------------------------- DATE ----------------------------------#
  16. aid(){
  17. date +%s
  18. }
  19. #--------------------------- EXTRACT-ALL -------------------------------#
  20. extall(){
  21. 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 "
  22. echo "---------- --------- ---------- ---------- ---------- -------- -------- -------- ----------" > /tmp/pveb.log
  23. echo "AUTOID HOSTNAME START-DATE START-TIME END-DATE END-TIME HDD-SIZE BCK-SIZE DUR" >> /tmp/pveb.log
  24. echo "---------- --------- ---------- ---------- ---------- -------- -------- -------- ----------" >> /tmp/pveb.log
  25. LST=$(ls /mnt/pve/$SRC/dump/*.log)
  26. for i in $LST;
  27. do
  28. SDAT=$(cat $i | grep "VM Name" | awk '{print $1}')
  29. STIM=$(cat $i | grep "VM Name" | awk '{print $2}')
  30. HST=$(cat $i | grep "VM Name" | awk '{print $NF}')
  31. DSK=$(cat $i | grep "disk" | awk '{print $NF}')
  32. ARC=$(cat $i | grep "archive file" | awk '{print $NF}')
  33. DUR=$(cat $i | grep "Finished" | awk '{print $NF}')
  34. FDAT=$(cat $i | grep "Finished" | awk '{print $1}')
  35. FTIM=$(cat $i | grep "Finished" | awk '{print $2}')
  36. echo "$(aid) $HST $SDAT $STIM $FDAT $FTIM $DSK $ARC $DUR" >> /tmp/pveb.log
  37. sleep 1
  38. done
  39. echo "---------- --------- ---------- ---------- ---------- -------- -------- -------- ----------" >> /tmp/pveb.log
  40. sed -i 's/(//g' /tmp/pveb.log
  41. sed -i 's/)//g' /tmp/pveb.log
  42. }
  43. #-------------------------- GENERATE-WEB -------------------------------#
  44. extweb(){
  45. cat > $WEB <<\EOG
  46. <html>
  47. <head>
  48. <title>PVE-Backups</title>
  49. </head>
  50. <BODY>
  51. <TABLE WIDTH="100%" BORDER=1>
  52. <TBODY>
  53. <TR BGCOLOR="#C0C0C0" VALIGN=center>
  54. <TD WIDTH="20%"><DIV ALIGN=center><B>HOSTNAME</B></DIV></TD>
  55. <TD WIDTH="15%"><DIV ALIGN=center><B>START-DATE</B></DIV></TD>
  56. <TD WIDTH="10%"><DIV ALIGN=center><B>START-TIME</B></DIV></TD>
  57. <TD WIDTH="15%"><DIV ALIGN=center><B>END-DATE</B></DIV></TD>
  58. <TD WIDTH="10%"><DIV ALIGN=center><B>END-TIME</B></DIV></TD>
  59. <TD WIDTH="10%"><DIV ALIGN=center><B>HDD-SIZE</B></DIV></TD>
  60. <TD WIDTH="10%"><DIV ALIGN=center><B>BCK-SIZE</B></DIV></TD>
  61. <TD WIDTH="10%"><DIV ALIGN=center><B>DUR</B></DIV></TD>
  62. </TR>
  63. EOG
  64. IDS=$(cat /tmp/pveb.log | grep "^[0-9]" | awk '{print $1}')
  65. for e in $IDS;
  66. do
  67. HST=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $2}')
  68. SDATE=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $3}')
  69. STIME=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $4}')
  70. EDATE=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $5}')
  71. ETIME=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $6}')
  72. HSIZE=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $7}')
  73. BSIZE=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $8}')
  74. DURA=$(cat /tmp/pveb.log | grep -w "$e" | awk '{print $9}')
  75. echo "<TR VALIGN=center>" >> $WEB
  76. echo "<TD WIDTH=\"20%\"><DIV ALIGN=center>$HST</DIV></TD>" >> $WEB
  77. echo "<TD WIDTH=\"15%\"><DIV ALIGN=center>$SDATE</DIV></TD>" >> $WEB
  78. echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$STIME</DIV></TD>" >> $WEB
  79. echo "<TD WIDTH=\"15%\"><DIV ALIGN=center>$EDATE</DIV></TD>" >> $WEB
  80. echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$ETIME</DIV></TD>" >> $WEB
  81. echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$HSIZE</DIV></TD>" >> $WEB
  82. echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$BSIZE</DIV></TD>" >> $WEB
  83. echo "<TD WIDTH=\"10%\"><DIV ALIGN=center>$DURA</DIV></TD>" >> $WEB
  84. echo "</TR>" >> $WEB
  85. done
  86. cat >> $WEB <<EOX
  87. <TR BGCOLOR="#C0C0C0" VALIGN=center>
  88. <TD COlSPAN="8" WIDTH="100%"><DIV ALIGN=center><B>GENERATED: <I>`date +%d/%m/%Y" "%T`</I></B></DIV></TD>
  89. </TR>
  90. </TBODY>
  91. </TABLE>
  92. </BODY>
  93. EOX
  94. }
  95. #------------------------------- CORE ----------------------------------#
  96. rm -rf /tmp/pveb*
  97. echo ""
  98. extall
  99. extweb
  100. cat /tmp/pveb.log | column -t
  101. echo -e "- \e[1;32mGenerating\e[0m web report [\e[1;33m$WEB\e[0m]"