50 lines
No EOL
1.5 KiB
Bash
Executable file
50 lines
No EOL
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
if [ -z "$SSH_ORIGINAL_COMMAND" ] ; then
|
|
echo ""
|
|
echo "Usage: ssh logs <namespace> <container_name_pattern> <lines> [grep pattern]"
|
|
echo "Example: ssh logs shared matches-front 100"
|
|
echo ""
|
|
exit
|
|
fi
|
|
|
|
NSPACE=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $1}'`
|
|
|
|
if [ "$NSPACE" = "kube-system" ] || [ "$NSPACE" = "monitoring" ]; then
|
|
echo "Access denied."
|
|
exit
|
|
fi
|
|
|
|
SERVICE=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $2}'`
|
|
|
|
if [ -z $SERVICE ]; then
|
|
KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} get pods
|
|
exit
|
|
fi
|
|
|
|
CONTAINER_NAME=`KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} get pods | grep "${SERVICE}" | awk '{print $1}'`
|
|
num_lines=$(echo "$CONTAINER_NAME" | wc -l)
|
|
if [ $num_lines -gt 1 ]; then
|
|
echo "Specify exact container name from:"
|
|
echo ""
|
|
echo "$CONTAINER_NAME"
|
|
echo ""
|
|
echo "Usage: ssh logs ${NSPACE} $SERVICE-rnd123 <lines>"
|
|
exit
|
|
fi
|
|
echo $CONTAINER_NAME
|
|
|
|
TAIL=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $3}'`
|
|
if [ -n "$TAIL" ] && [ "$TAIL" -eq "$TAIL" ] 2>/dev/null; then
|
|
TAIL="--tail $TAIL"
|
|
else
|
|
TAIL=''
|
|
fi
|
|
|
|
GREP_PATTERN=`echo "$SSH_ORIGINAL_COMMAND" | awk '{print $4}'`
|
|
|
|
if [ -n "$GREP_PATTERN" ]; then
|
|
KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} logs --timestamps --follow $TAIL $CONTAINER_NAME --all-containers | grep -E $GREP_PATTERN
|
|
else
|
|
KUBECONFIG=/home/logs/k8s-admin-conf /usr/local/bin/kubectl -n ${NSPACE} logs --timestamps --follow $TAIL $CONTAINER_NAME --all-containers
|
|
fi; |