export_log_k8s.sh 1.2 KB
Newer Older
1
#!/bin/bash
2 3

# Exit immediately for non zero status
4 5 6 7
set -e

ns_name=$1
prefix_name=$2
8
log_dir=${3:-"k8s_logs"}
9 10 11 12 13 14 15 16 17 18 19

array=($(kubectl get pod -n ${ns_name} -l "app.kubernetes.io/name=etcd" | grep ${prefix_name} | awk '{print $1}'))
echo ${array[@]}
mkdir -p $log_dir/etcd_session
for pod in ${array[*]}
do
echo "check session for etcd pod $pod "
kubectl exec $pod -n ${ns_name} -- etcdctl get --prefix by-dev/meta/session > ./$log_dir/etcd_session/$pod.log || echo "export session for pod $pod failed"
done
echo "check session done"

20
array=($(kubectl get pod -n ${ns_name}|grep ${prefix_name}|awk '{print $1}'))
21
echo ${array[@]}
Z
zhuwenxing 已提交
22
if [ ! -d $log_dir/pod_log ] || [ ! -d $log_dir/pod_describe ];
23
then
24
    mkdir -p $log_dir/pod_log
25
    mkdir -p $log_dir/pod_log_previous
26
    mkdir -p $log_dir/pod_describe
27
fi
28 29 30 31
echo "export logs start"
for pod in ${array[*]}
do
echo "export logs for pod $pod "
32
kubectl logs $pod -n ${ns_name} > ./$log_dir/pod_log/$pod.log 2>&1
33
kubectl logs $pod --previous -n ${ns_name} > ./$log_dir/pod_log_previous/$pod.log 2>&1 || echo "pod $pod has no previous log"
34
kubectl describe pod $pod -n ${ns_name} > ./$log_dir/pod_describe/$pod.log
35
done
36
echo "export logs done"