mysqlbak_check.sh: Truncate file list and show summary
[mgsautils.git] / mysql / mysqlbak_check.sh
1 #!/bin/sh
2 # By MegaBrutal
3 #
4 # Changelog:
5 # 2015-08-15: Truncate file lists and show statistics
6 # 2014-09-13: Changed bzip2 test to tar tvf
7 # 2014-01-03: Last known modification before changelog
8
9 if [ "$#" -eq "0" ]
10 then
11 echo "Usage: $0 list of backup directories"
12 echo "E.g.: $0 vps1 vps2 vps3"
13 exit 1
14 fi
15
16 CURRDAT=$(date +%Y%m%d)
17
18 echo SYSTEM INFO:
19 uname -a
20 echo
21 echo SYSTEM UPTIME:
22 uptime
23 echo
24 echo
25 echo
26
27 while [ "$1" ]
28 do
29 BAKDIR=$1
30 echo CHECKING ${BAKDIR}:
31 echo
32 echo "Checking for today's backup:"
33 if ls -l ${BAKDIR}/*${CURRDAT}*
34 then
35 echo
36 echo "Checking contents & consistency:"
37 if tar tvf ${BAKDIR}/*${CURRDAT}* 2>&1
38 then
39 echo
40 echo 'Today'\''s backup has successfully arrived.'
41 else
42 echo 'TODAY'\''S BACKUP IS PRESENT BUT DAMAGED! MOST LIKELY IT IS ONLY PARTIALLY TRANSFERRED!'
43 echo 'PLEASE RETRANSFER!'
44 fi
45 else
46 echo 'TODAY'\''S BACKUP IS NOT PRESENT!!!'
47 echo 'PROBABLY IT HASN'\''T BEEN TRANSFERRED DUE TO NETWORK PROBLEMS OR IT HAS NEVER BEEN MADE AT ALL!'
48 echo 'PLEASE CHECK SOURCE LOCATION!'
49 fi
50 echo
51 echo
52 echo "Recent 20 backups:"
53 ls -lt ${BAKDIR}/* | head -20
54 echo
55 echo "Oldest 20 backups:"
56 ls -lt ${BAKDIR}/* | tail -20
57 echo
58 echo
59 DU=$(du -sb ${BAKDIR} | cut -f1)
60 echo "Total number of files: $(ls -1 ${BAKDIR} | wc -l), taking ${DU} bytes ($(expr ${DU} / 1048576) megabytes) of disk space."
61 echo
62 echo
63 echo
64 shift
65 done