创建文件pull
复制下面脚本(日志路径自己修改),然后更改权限chmod 777 pull
#!/bin/bash
# 需要读取的文件
source=/opt/logs/catalina.out
# 生成文件
dist=log
# 快速截取,有冒号根据时间匹配截取,没有截取行数
if [[ $1 != *:* ]]
then
tail -n $1 $source > $dist
else
# 日期 0当天 -1昨天 1明天,依次类推
d=0
if [ -n "$3" ]; then
d=$3
fi
pre="`date -d ''$d' days' +%Y-%m-%d` "
echo -e "日期: 33[32m$pre 33[0m"
# 开始时间
a=$1
# 结束时间,默认当前时间
b=`date +%H:%M`
if [ -n "$2" ]; then
b=$2
fi
echo 时间: "$a ~ $b"
echo ==============
start=`grep "${pre}${a}" $source -n | head -n 1 | awk -F: '{print $1}'`
end=`grep "${pre}${b}" $source -n | tail -n 1 | awk -F: '{print $1}'`
# 如果结束行为空,默认最后
if [[ $start == "" ]]
then
echo 该时间节点无数据
exit 1
fi
# 如果结束行为空,默认最后
if [[ $end == "" ]]
then
end=`wc -l $source | awk '{print $1}'`
fi
echo 起始行: $start
echo 结束行: $end
sed -n ''$start','$end'p' $source > $dist
fi
# 删除数据
curl -XDELETE "http://127.0.0.1:9200/de*"
# 导入elk
nc 127.0.0.1 8081 < $dist
echo
echo -e " 33[31m>>-完成->