#!/bin/bash
#日期
if [ ! $1 ]; then
echo -e '日期必传,样例:20220620'
exit;
fi
date=$1
#日志总文件
logFile='/home/work/errorlog/error_'$date'.log'
#用户
user='daiyuanpei'
#删除原来的log总文件
rm -rf $logFile
#获取所有机器的ip和序号
iplist=``
#for的分隔符设为换行,原本是空格和换行
IFS=$'\n'
#循环所有机器
for i in $iplist
do
#获取每个机器的ip和序号
ip=`echo $i | awk '{print $2}'`;
offset=`echo $i | awk '{print $3}'`;
eachLogFile='/home/work/errorlog/log_'$offset'.log'
#scp把log文件拷贝过来
scp $user@$ip:/home/work/project-name/logs/$date/error.log $eachLogFile
#判断如果不是文件则跳出本次循环
if [ ! -f "/home/work/errorlog/log_$offset.log" ];then
continue
fi
#把每个日志汇入到总日志当中
awk -v fileno=${offset} '{print fileno,"--",$0}' $eachLogFile >> $logFile
#删除每个小日志文件
rm -rf $eachLogFile
done
11-23
1725