#!/bin/bash
function isAlarm()
{
alarmDescrption=$1
alarmFile=$2
alarmDate=`date`
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=ddea3f5f-fbfc-4c21-994a-71e9fc50e4ef' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "**'"$alarmDescrption"'**\n
> 错误文件:'"$alarmFile"'生成错误,请立即查看
> 告警时间:'"$alarmDate"'"
}
} ' > /dev/null 2>&1
}
function domain_list() {
# ----------------------------------------------------------------------------------------
# 获取平台全量域名信息
let count=0
while [[ $count -lt 3 ]]; do
curl 'https://bs.ctcdn.cn/api/v3/manageDomain/export' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOjI1NH0.9Zw66R0R85avd92qzO-3KQ4DJ2zYXL4ght5bH41iTfA' -H 'content-type: application/json;charset=UTF-8' -vo $data/domain.list > $data/domain.list.response 2>&1
# 判断响应是否200
line_number=`cat $data/domain.list | wc -l`
cat $data/domain.list.response | grep -Eq 'HTTP/(1.1|2) 200 OK'
if [[ $? -ne 0 || $line_number -lt 20000 ]]; then
count=$((count+1))
else
exit
fi
done
isAlarm '【严重】获取全量域名信息失败' 'domain.list'
exit 248
}
function renew_backup() {
cd $data
lakes_bak > $data/lakes
curl -so $data/ip.group "http://150.223.254.77:5044/download/ip.group"
# backups
cd $toolbox
[[ -d '/home/fanmf11/.backups/' ]] && rm -rf /home/fanmf11/.backups/*.tgz || mkdir '/home/fanmf11/.backups/'
cd $toolbox & bt=$(date +%Y%m%d%H%M%S)
# cp $data/lakes $data/lakes-$(date +%d)
# cp $data/ip.group $data/ip.group-$(date +%d)
tar -czf /home/fanmf11/.backups/toolbox-${bt}.tgz ./*
[[ ! -s $data/lakes ]] && isAlarm '【严重】基础文件生成错误告警' 'lakes'
[[ ! -s $data/ip.group ]] && isAlarm '【严重】基础文件生成错误告警' 'ip.group'
[[ ! -s $backups/toolbox-${bt}.tgz ]] && isAlarm '备份失败告警' "toolbox-${bt}.tgz"
}
function view_check() {
maps=`cat $data/maps`
> $data/area.new
for map in $maps; do
getlastcover $map > $map
cat $map | awk '{print $3}' | sed '1d' | sort | uniq >> $data/area.new
rm $map
done
news=`cat $data/area.new | sort | uniq`
olds=`cat $data/area | awk '{print $1}' | sort | uniq`
> $data/area.new
> $data/area.diff
for new in $news; do
[[ $new == 'find' ]] && continue
echo $new >> $data/area.new
echo $olds | grep -wq $new
[[ $? -ne 0 ]] && { isAlarm '有新的View需要添加' "$new"; echo $new >> $data/area.diff; sleep 1; }
done
}
data='/usr/local/script/fanmf11/data'
host=`whoami`
toolbox='/usr/local/script/fanmf11'
backups='/home/fanmf11/.backups'
[[ $1 == '--renew_backup' ]] && renew_backup
[[ $1 == '--domain_list' ]] && domain_list
[[ $1 == '--new_area' ]] && view_check