- #!/bin/bash
- # This program is ...
- # scriptname: check_backup.sh
-
- set -e
- set -u
- TIME_YM=`date +%Y%m`
- TIME_DAY=`date +%d`
- DIR_BACKUP='/tmp/backup'
- DIR_LOG="$DIR_BACKUP/log"
- LOG="$DIR_BACKUP/log/check_backup.$TIME_YM$TIME_DAY.log"
- MAIL='XX@XX.com'
-
- if [ ! -d $DIR_LOG ]; then
- mkdir -p $DIR_LOG
- fi
- #show hosts
- echo "check host's list"|tee -a $LOG
- ls -1 $DIR_BACKUP|tee -a $LOG
- #显示backup目录下面的所有文件
- #list file
- echo "byte filename"|tee -a $LOG
- for HOSTNAMES in ` ls $DIR_BACKUP|xargs `
- do
- DIR_TODAY="$DIR_BACKUP/$HOSTNAMES/$TIME_YM/$TIME_DAY"
- if [ -e $DIR_TODAY ]; then
- cd $DIR_TODAY
- echo "****** $HOSTNAMES"|tee -a $LOG
- ls * -l|gawk '/gz/||/cnf/ {printf "%-20s %s\n",$5,$9}' |tee -a $LOG
- #关键部分,gawk,printf格式化字符串
- else
- echo "****** $HOSTNAMES"|tee -a $LOG
- echo "Hostname: $HOSTNAMES" without the latest backup files |tee -a $LOG
- fi
- done
- #send mail
- if [ -r $LOG ]; then
- cat $LOG |mail -s check_backup_status $MAIL
- else
- echo "backup is error" |mail -s backuperror $MAIL
- fi
- #把日志内容通过邮件发送.