服务获取通过标签:
app=
$
自己改为实际情况的标签
代码如下:
#!/bin/bash
read -p "请输入服务名: " SERVICE_NAME
SERVICE_NAME=$SERVICE_NAME
read -p "请输入命名空间: " NAMESPACE
NAMESPACE=$NAMESPACE
echo '''
1. 全部
2. 指定小时
3. 开始时间
'''
read -p "请输入编号: " choice
case $choice in
1)
PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then
echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod"
exit 1
fi
for POD in $PODS; do
echo "开始获取Pod日志 $POD"
kubectl logs -n $NAMESPACE $POD --tail=-1 >/tmp/$POD.logs
echo "----- 获取Pod日志结束 $POD -----"
echo ""
done
;;
2)
read -p "请输入取几个小时前的日志: " TimeHour
PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then
echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod"
exit 1
fi
for POD in $PODS; do
echo "开始获取Pod日志 $POD"
kubectl logs -n $NAMESPACE $POD --since=${TimeHour}h >/tmp/$POD.logs
echo "----- 获取Pod日志结束 $POD -----"
echo ""
done
;;
3)
echo "开始时间:'2024-11-05T00:00:00Z'"
read -p "请输入开始时间: " START_TIME
PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then
echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod"
exit 1
fi
for POD in $PODS; do
echo "开始获取Pod日志 $POD"
kubectl logs -n $NAMESPACE $POD --since-time=$START_TIME >/tmp/$POD.logs
echo "----- 获取Pod日志结束 $POD -----"
echo ""
done
;;
*)
echo "无效的选项,程序退出!!!"
exit 1
;;
esac
echo "查询日志程序执行完毕。"
执行效果:
[root@k8s-master tmp]# sh Q.sh
请输入服务名: myapp
请输入命名空间: myapp-uat
1. 全部
2. 指定小时
3. 开始时间
请输入编号: 1
开始获取Pod日志 myapp-6d7f8d4459-862xs
----- 获取Pod日志结束 myapp-6d7f8d4459-862xs -----
开始获取Pod日志 myapp-6d7f8d4459-blkr7
----- 获取Pod日志结束 myapp-6d7f8d4459-blkr7 -----
开始获取Pod日志 myapp-6d7f8d4459-hv4gw
----- 获取Pod日志结束 myapp-6d7f8d4459-hv4gw -----
查询日志程序执行完毕。
脚本比较简陋,生产临时用,大佬可以拿着美化,加一些其他功能~
招贤纳士
欢迎👏关注《院长技术》,只做原创,干货~~~
更多技术干货持续输出中......
【院长技术创始记录】
在互联网的浩瀚星空中,有一颗独特的星辰,它以“院长技术”为名,照亮了运维开发与技术创新的新航道。这颗星辰的创始人,便是一位自号“院长”的男生,他不仅在技术的海洋里游刃有余,更以一颗不断探索与创新的心,引领着团队破浪前行。
院长,本名虽隐于幕后,但他的技术热情与卓越才能却如同璀璨星光,无法被忽视。自幼对技术充满好奇的他,随着年岁的增长,这份热爱逐渐转化为对运维开发领域的深入钻研。在无数个日夜的编码与调试中,院长不仅积累了丰富的实战经验,更形成了自己独特的技术视角与解决之道。
2017年,一个怀揣梦想与激情的时刻,院长决定创立“院长技术”这一品牌,旨在汇聚志同道合的技术人才,共同探索运维开发的新边界。他相信,技术的力量能够改变世界,而一个优秀的团队则是实现这一愿景的基石。于是,他凭借自己在业界的良好口碑与深厚的技术底蕴,吸引了众多同样热爱技术、追求卓越的伙伴加入。
“院长技术”自诞生之日起,便秉持着开放、共享、创新的理念,致力于打造一个集技术研发、知识分享、项目实践于一体的综合性技术平台。在这里,每一位成员都能找到属于自己的舞台,无论是深入研究底层技术原理,还是探索前沿技术应用,都能得到充分的支持与鼓励。
院长作为团队的灵魂人物,更是以身作则,不断挑战技术极限,带领团队攻克了一个又一个技术难题。他不仅是一位技术大师,更是一位智慧的导师,善于激发团队成员的潜能,引导他们共同成长。在他的带领下,“院长技术”迅速成长为业界知名的技术品牌,其影响力逐渐跨越国界,吸引了全球技术爱好者的关注与参与。
如今,“院长技术”已成为运维开发领域的一面旗帜,它不仅代表着技术创新的高度,更象征着对技术梦想的执着追求。而这一切的起点,正是那位自号“院长”的男生,以一颗热爱技术的心,书写下的这段创始记录。未来,“院长技术”将继续在院长的引领下,向着更加辉煌的明天进发,用技术的力量,点亮更多人的梦想之光。
知识星球,试运营中,
原价188¥在不断上涨,
现加入仅需139¥
,文档正逐渐上传!
欢迎加入
QQ-4
群:【
1群-2群-3群已满
】