这篇文章上次修改于 506 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
$ cat toolbox.sh
#!/bin/sh
SCRIPT_DIR="$(cd "$(dirname "$0")"; pwd)"
DATA_FILE="${SCRIPT_DIR}/data"
# Default display of system summary information
echo "System Summary Information"
uname -a
echo
# 公共方法, 输出颜色文字
color_output() {
local msg_type=$1
local msg=$2
case $msg_type in
"info")
echo -e "\e[32m$msg\e[0m"
;;
"warning")
echo -e "\e[33m$msg\e[0m"
;;
"error")
echo -e "\e[31m$msg\e[0m"
;;
*)
echo $msg
;;
esac
}
# Provide different options for the user to choose different operations
i=1
declare -a LOG_ARRAY
while read line
do
# echo "LINE:"$line
# ss-ef|优钱SaaS-智能拓客|/data/saas/ss-ef/ss-ef.jar|/data/saas/ss-ef/logs/ss-ef.jar.log
project_code=`echo $line|awk -F '|' '{print $1}'`
project_name=`echo $line|awk -F '|' '{print $2}'`
project_file=`echo $line|awk -F '|' '{print $3}'`
grep_string=`echo $project_file | awk -F '/' '{print $NF}'`
LOG_ARRAY[$i]=`echo $line|awk -F '|' '{print $4}'`
# 判断文件是否存在
if [ ! -f "$project_file" ]; then
color_output error "Error: $project_file 文件不存在 "
fi
# echo $project_name $grep_string
if ps aux | grep $grep_string | grep -v grep > /dev/null
then
_status=`color_output info running`
else
_status=`color_output error down`
fi
echo -e "`printf "|%2s | %-20s | %-30s | %-55s | %s |\n" $i $project_code $project_name $project_file $_status`"
i=$(($i+1))
done < "${DATA_FILE}"
function show_log()
{
# 檢查長度
echo -e "\n\n"
if [ "$1" -gt ${#LOG_ARRAY[*]} ]; then
echo "无效输入"
exit 1
fi
index=$1
# echo $index "${LOG_ARRAY[$index]}"
echo -e "${LOG_ARRAY[$index]} \n" && tail -f ${LOG_ARRAY[$index]}
}
# ------------------------------
echo
while true
do
#read -p "请输入有效的输入: " choice
read -p "输入对应选项,查看日志: [1-${#LOG_ARRAY[*]}] " choice
if [ -z "$choice" ] || [ "$choice" -gt ${#LOG_ARRAY[*]} ]
then
color_output warning "输入无效,请重新输入"
else
show_log $choice
fi
done
#show_log $choice
没有评论