2021-09-29 06:11:59 +00:00
|
|
|
#!/bin/bash
|
2021-11-10 11:24:18 +00:00
|
|
|
|
|
|
|
# Exit immediately for non zero status
|
2021-09-29 06:11:59 +00:00
|
|
|
set -e
|
|
|
|
|
|
|
|
ns_name=$1
|
|
|
|
prefix_name=$2
|
2021-11-06 11:42:58 +00:00
|
|
|
log_dir=${3:-"k8s_logs"}
|
2022-06-01 09:32:02 +00:00
|
|
|
|
|
|
|
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"
|
|
|
|
|
2021-09-29 06:11:59 +00:00
|
|
|
array=($(kubectl get pod -n ${ns_name}|grep ${prefix_name}|awk '{print $1}'))
|
2021-09-16 10:53:49 +00:00
|
|
|
echo ${array[@]}
|
2021-12-31 06:33:35 +00:00
|
|
|
if [ ! -d $log_dir/pod_log ] || [ ! -d $log_dir/pod_describe ];
|
2021-09-29 06:11:59 +00:00
|
|
|
then
|
2021-12-30 12:01:24 +00:00
|
|
|
mkdir -p $log_dir/pod_log
|
2022-03-07 11:35:58 +00:00
|
|
|
mkdir -p $log_dir/pod_log_previous
|
2021-12-30 12:01:24 +00:00
|
|
|
mkdir -p $log_dir/pod_describe
|
2021-09-29 06:11:59 +00:00
|
|
|
fi
|
2021-09-16 10:53:49 +00:00
|
|
|
echo "export logs start"
|
|
|
|
for pod in ${array[*]}
|
|
|
|
do
|
|
|
|
echo "export logs for pod $pod "
|
2021-12-30 12:01:24 +00:00
|
|
|
kubectl logs $pod -n ${ns_name} > ./$log_dir/pod_log/$pod.log 2>&1
|
2022-03-07 11:35:58 +00:00
|
|
|
kubectl logs $pod --previous -n ${ns_name} > ./$log_dir/pod_log_previous/$pod.log 2>&1 || echo "pod $pod has no previous log"
|
2021-12-30 12:01:24 +00:00
|
|
|
kubectl describe pod $pod -n ${ns_name} > ./$log_dir/pod_describe/$pod.log
|
2021-09-16 10:53:49 +00:00
|
|
|
done
|
2021-09-23 07:08:00 +00:00
|
|
|
echo "export logs done"
|