02-工程实践:kubernetes:tools:router_log
lsapp脚本
- lsapp.sh
#!/bin/bash
function color()
{
echo -e "\033[41m$1\033[0m"
}
NETNSPRE="/var/run/docker/netns/"
function lsapp() {
echo "CONTAINER-ID NETNS CPU MEM APP NAMESPACE"
for id in `docker ps |awk 'NR!=1{print $1}'`;do
LOG="/tmp/docker_inspect_$id.log"
docker inspect $id > $LOG
dockerType=`cat $LOG |grep io.kubernetes.docker.type |awk -F'"' '{print $4}'`
if [ "$dockerType"x == "container"x ];then
ns=`cat $LOG |grep "io.kubernetes.pod.namespace" |awk -F'"' '{print $4}'`
sandboxId=`cat $LOG |grep io.kubernetes.sandbox.id |awk -F'"' '{print $4}'`
SANDLOG="/tmp/docker_inspect_$sandboxId.log"
docker inspect $sandboxId > $SANDLOG
app=`cat $SANDLOG |grep -w '"app"' |awk -F'"' '{print $4}'`
if [ "$app"x == ""x ];then
app=`cat $LOG |grep -w '"io.kubernetes.pod.name"' |awk -F'"' '{print $4}'`
fi
cpu=`cat $LOG |grep -w '"CpuShares"' |awk '{print $NF}' |tr -d ','`
mem=`cat $LOG |grep -w '"Memory"' |awk '{print $NF}' |tr -d ',' |awk '{print int($0/1024/1024)"MB"}'`
netns=`cat $SANDLOG |grep -w "SandboxKey" |awk -F'"' '{print $4}' |awk -F'/' '{print $NF}'`
printf "%s %-12s %-15s %-15s %-15s %-15s %s\n" "$id" "$netns" "`color $cpu`" "$mem" "$app" "$ns"
else
continue
fi
done
}
function taillog() {
[ $# -lt 1 ] && helpinfo
logpath=`docker inspect $1 2>/dev/null|grep "LogPath" |awk -F'"' '{print $4}'`
if [ "$logpath"x == ""x ];then
dockerid=`docker ps |grep "$1" |head -n1 |awk '{print $1}'`
logpath=`docker inspect $dockerid 2>/dev/null|grep "LogPath" |awk -F'"' '{print $4}'`
fi
if [ "$logpath"x != ""x ];then
tail -f $logpath
fi
}
function helpinfo() {
echo "$0 ls list apps"
echo "$0 log containerid or app tail log of container"
echo "$0 ss app run ss in container net namespace"
echo "$0 cd containerid cd container mergedir"
exit 1
}
function ssant() {
[ $# -lt 1 ] && helpinfo
sandboxid=`docker ps |grep $1 |grep "POD" |head -n1 |awk '{print $1}'`
netns=`docker inspect $sandboxid | grep -w "SandboxKey" |awk -F'"' '{print $4}'`
nsenter --net=$netns ss -ant
}
function mergedir() {
[ $# -lt 1 ] && helpinfo
merge=`docker inspect $1 | grep "MergedDir" |awk -F'"' '{print $4}'`
cd $merge
}
case $1 in
ls) lsapp;;
log) taillog $2;;
ss) ssant $2;;
cd) mergedir $2;;
*) helpinfo;;
esac
02-工程实践/kubernetes/tools/router_log.txt · 最后更改: 2020/04/07 06:34 由 annhe