需求描述:
研发人员经常需要导出应用日志,将操作傻瓜化,有助于运维休假。
问题分析:
应用名称设置编号,脚本接收输入编号,导出对应的日志并保存。
应用场景:
重复操作,简单化、傻瓜化让非技术人员也可以操作。
如下图脚本执行界面效果图。
具体shell脚本如下:
#!/bin/bash
#AUTHOR : Created by YaoButing
#PLATFORM : CentOS Linux release 7.8.2003(2003)
#VERSION : 3.0
#DATE : 2021-09-08
#DESCRIPTION : This script is used to muanual download k8s logs.
###############################################################################
NUMBER=100
cd /data/logs
while (($NUMBER>0))
do
echo " 请选择需要导出日志的应用序号 "
echo "*********************************************************************"
echo "* *"
echo "* [ 101 ].AAAAA [ 111 ].BBBBB *"
echo "* *"
echo "* [ 102 ].CCCCC [ 112 ].DDDDD *"
echo "* *"
echo "*********************************************************************"
echo " 按 0 推出脚本 "
echo " "
read -p "请输入将要执行的动作序号:" NUMBER
echo " "
echo " "
if (($NUMBER==101))
then
echo "####-- 101 --### 导出 AAAAA 日志 #######################"
for pod in `kubectl get pod -n CSDN | grep AAAAA | awk '{print $1}'`
do
timeout 15 kubectl logs -f $pod -n CSDN > /data/logs/AAAAA-`date "+%Y-%m-%d-%H-%M-%S"`.log
echo " $pod 日志已导出......"
done
tar -zcPvf /data/logs/AAAAA-`date "+%Y-%m-%d-%H"`.tar.gz /data/logs/AAAAA-`date "+%Y-%m-%d-%H"`*.log
rm -rf /data/logs/*.log
echo "####-- 101 --### 导出 AAAAA 日志 #######################"
elif (($NUMBER==102))
then
echo "####-- 102 --### 导出 BBBBB 日志 #######################"
for pod in `kubectl get pod -n CSDN | grep BBBBB | awk '{print $1}'`
do
timeout 15 kubectl logs -f $pod -n CSDN > /data/logs/BBBBB-`date "+%Y-%m-%d-%H-%M-%S"`.log
echo " $pod 日志已导出......"
done
tar -zcPvf /data/logs/BBBBB-`date "+%Y-%m-%d-%H"`.tar.gz /data/logs/BBBBB-`date "+%Y-%m-%d-%H"`*.log
rm -rf /data/logs/*.log
echo "####-- 102 --### 导出 BBBBB 日志 #######################"
elif (($NUMBER==111))
then
echo "####-- 111 --### 导出 CCCCC 日志 #######################"
for pod in `kubectl get pod -n CSDN | grep CCCCC | awk '{print $1}'`
do
timeout 15 kubectl logs -f $pod -n CSDN > /data/logs/CCCCC-`date "+%Y-%m-%d-%H-%M-%S"`.log
echo " $pod 日志已导出......"
done
tar -zcPvf /data/logs/CCCCC-`date "+%Y-%m-%d-%H"`.tar.gz /data/logs/CCCCC-`date "+%Y-%m-%d-%H"`*.log
rm -rf /data/logs/*.log
echo "####-- 111 --### 导出 CCCCC 日志 #######################"
elif (($NUMBER==112))
then
echo "####-- 112 --### 导出 DDDDD 日志 #######################"
for pod in `kubectl get pod -n CSDN | grep DDDDD | awk '{print $1}'`
do
timeout 15 kubectl logs -f $pod -n CSDN > /data/logs/DDDDD-`date "+%Y-%m-%d-%H-%M-%S"`.log
echo " $pod 日志已导出......"
done
tar -zcPvf /data/logs/AAAAA-`date "+%Y-%m-%d-%H"`.tar.gz /data/logs/DDDDD-`date "+%Y-%m-%d-%H"`*.log
rm -rf /data/logs/*.log
echo "####-- 112 --### 导出 DDDDD 日志 #######################"
elif (($NUMBER==0))
then
echo "###################--- 程序即将退出 ---##################"
else
echo "##############---输入错误,请按照指定应用序号输入---################"
fi
echo " "
echo "--- 导出日志存放路径 /data/logs/ 等待返回选择页面或者按 0 退出 -------"
echo " "
sleep 10
done
本文转载自: https://blog.csdn.net/tiger0310119/article/details/138424931
版权归原作者 藥瓿亭 所有, 如有侵权,请联系我们删除。
版权归原作者 藥瓿亭 所有, 如有侵权,请联系我们删除。