1.日志备份脚本
#!/bin/bash
# 日志归档处理
#group_code=`awk -F":" '{if($1 == "app"){print $3 }}' /etc/group`
#USER_LIST=`awk -F":" '{if($4 == '${group_code}'){print $1 }}' /etc/passwd`
USER_LIST=("user" "commons" "advertise" "company" "cronjobcloud" "eurekasv" "filemanage" "manage" "messageserve" "order" "pay" "product" "recruit" "gateway" "infomanage" "marketing")
# 当前日期
nowStr=`date +%Y-%m-%d`
#近7天的日期数组
dayStrs=(`date +%Y-%m-%d` `date -d -1days '+%Y-%m-%d'` `date -d -2days '+%Y-%m-%d'` `date -d -3days '+%Y-%m-%d'` `date -d -4days '+%Y-%m-%d'` `date -d -5days '+%Y-%m-%d'` `date -d -6days '+%Y-%m-%d'`)
#获取本机IP
local_ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
local_ip=`echo "${local_ip}" | tr "\n" "_"`
local_ip=${local_ip%_*}
echo ${local_ip}
function del_old_log()
{
Folder_A="/home/$1/app/log"
for file_a in ${Folder_A}/*
do
#获取文件名
temp_file=${file_a}
isContent="true"
if [[ $temp_file == *logback* ]];then
isContent=""
fi
for dayS in ${dayStrs[@]}
do
if [[ $temp_file == *$dayS* ]];then
isContent="true"
fi
done
if [ "$isContent" == "" ]
then
rm -f $temp_file
#echo "删除文件:"$temp_file
else
echo "7天内的日志:"$temp_file
fi
done
}
function tar_file()
{
Folder_A="/home/$1/app/log"
tar_file_name=""
for file_a in ${Folder_A}/*
do
#获取文件名
temp_file=${file_a}
temp_file=${temp_file##*/}
isContent="true"
if [[ $temp_file == *logback* ]];then
isContent=""
fi
for dayS in ${dayStrs[@]}
do
if [[ $temp_file == *$dayS* ]];then
isContent="true"
fi
done
if [ "$isContent" == "" ]
then
tar_file_name=$tar_file_name" "$temp_file
fi
done
echo $tar_file_name
}
for x in ${USER_LIST[@]}
do
cd /home/${x}/app/log/
# 删除之前归档的压缩包
rm -rf ${x}_${local_ip}*.tar.gz
# 找到要归档的文件名
file_name=$(tar_file $x)
#压缩归档
if [ "$file_name" == "" ]; then
echo "没有需要归档的日志"
else
tar -zcf ${x}_${local_ip}_${nowStr}.tar.gz $file_name
fi
#删除归档后的文件
del_old_log $x
done
2.汇聚脚本(将不同节点上的日志汇聚到一块)
group_code=`awk -F":" '{if($1 == "app"){print $3 }}' /etc/group`
USER_LIST=`awk -F":" '{if($4 == '${group_code}'){print $1 }}' /etc/passwd`
nowStr=`date +%Y-%m-%d`
USER=root
PASSWORD=******
service_ip=("172.18.55.**","172.18.46.**","172.18.46.**")
#先删除原来的
cd /home/logbackups/
rm -rf *.tar.gz
for ip in ${service_ip[@]}
do
for x in ${USER_LIST}
do
lftp -u ${USER},${PASSWORD} sftp://${ip} << EOM
cd /home/$x/app/log/
lcd /home/logbackups/
mget *.tar.gz
bye
EOM
done
done
for x in ${USER_LIST}
do
lftp -u root,ymHc0601Ecs sftp://172.18.22.137 << EOM
cd /home/$x/app/log/
lcd /home/logbackups/
mget *.tar.gz
bye
EOM
done