Compare commits
2 Commits
2ce0534cbb
...
07ae17a686
| Author | SHA1 | Date | |
|---|---|---|---|
| 07ae17a686 | |||
| e6362e6fa8 |
527
sevpn/test.sh
Executable file
527
sevpn/test.sh
Executable file
@ -0,0 +1,527 @@
|
||||
#!/bin/bash
|
||||
# ABOUT softether vpn for zabbix
|
||||
# author mikedmorto 2026 year
|
||||
export LC_ALL=""
|
||||
export LANG="en_US.UTF-8"
|
||||
version="3.3"
|
||||
|
||||
. /etc/zabbix/scripts/sevpn3.cfg
|
||||
|
||||
JSON=""
|
||||
##### PARAMETERS#####
|
||||
METRIC="$1"
|
||||
ITEM="$2"
|
||||
|
||||
API_URL="https://${URL}/api/"
|
||||
CURL_OPTS="-s -k"
|
||||
[ "$API_INSECURE" = "1" ] && CURL_OPTS="$CURL_OPTS -k"
|
||||
|
||||
api_call() {
|
||||
local method=$1
|
||||
local params=$2
|
||||
[ -z "$params" ] && params="{}"
|
||||
local id="1"
|
||||
local data=$(cat <<EOF
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": "$id",
|
||||
"method": "$method",
|
||||
"params": $params
|
||||
}
|
||||
EOF
|
||||
)
|
||||
curl $CURL_OPTS -X POST "$API_URL" \
|
||||
-H "X-VPNADMIN-HUBNAME: " \
|
||||
-H "X-VPNADMIN-PASSWORD: $PWD" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$data" 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
case "$METRIC" in
|
||||
|
||||
discovery)
|
||||
hubs_json=$(api_call "EnumHub")
|
||||
# ... проверка ошибок
|
||||
hubs=$(echo "$hubs_json" | jq -r '.result.HubList[].HubName_str' 2>/dev/null)
|
||||
|
||||
JSON='{"data":['
|
||||
|
||||
first_hub=1
|
||||
for hub in $hubs; do
|
||||
# Добавляем сам хаб
|
||||
if [ $first_hub -eq 1 ]; then first_hub=0; else JSON="${JSON},"; fi
|
||||
JSON="${JSON}{\"{#HUB_NAME}\":\"$hub\"}"
|
||||
|
||||
# Пользователи хаба
|
||||
users_json=$(api_call "EnumUser" "{\"HubName_str\":\"$hub\"}")
|
||||
if ! echo "$users_json" | jq -e '.error' >/dev/null 2>&1; then
|
||||
users=$(echo "$users_json" | jq -r '.result.UserList[].Name_str' 2>/dev/null)
|
||||
for user in $users; do
|
||||
JSON="${JSON},{\"{#HUB_USER_NAME}\":\"$hub,$user\"}"
|
||||
done
|
||||
fi
|
||||
|
||||
# Каскады хаба
|
||||
links_json=$(api_call "EnumLink" "{\"HubName_str\":\"$hub\"}")
|
||||
if ! echo "$links_json" | jq -e '.error' >/dev/null 2>&1; then
|
||||
links=$(echo "$links_json" | jq -r '.result.LinkList[].AccountName_utf' 2>/dev/null)
|
||||
for link in $links; do
|
||||
JSON="${JSON},{\"{#HUB_CASCADE_NAME}\":\"$hub,$link\"}"
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
# --- Локальные мосты (один раз после цикла по хабам) ---
|
||||
bridges_json=$(api_call "EnumLocalBridge")
|
||||
if ! echo "$bridges_json" | jq -e '.error' >/dev/null 2>&1; then
|
||||
while IFS= read -r bridge_entry; do
|
||||
# bridge_entry имеет формат "hub,device"
|
||||
JSON="${JSON},{\"{#HUB_BRIDGE_NAME}\":\"$bridge_entry\"}"
|
||||
done < <(echo "$bridges_json" | jq -r '.result.LocalBridgeList[] | "\(.HubNameLB_str),\(.DeviceName_str)"' 2>/dev/null)
|
||||
fi
|
||||
|
||||
JSON="${JSON}]}"
|
||||
echo "$JSON"
|
||||
;;
|
||||
|
||||
|
||||
script.version)
|
||||
echo ${version}
|
||||
;;
|
||||
|
||||
srv.uptime)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
# Проверка на ошибку API
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
# Извлекаем дату запуска из поля StartTime_dt
|
||||
start_date_iso=$(echo "$resp" | jq -r '.result.StartTime_dt' 2>/dev/null)
|
||||
if [ -z "$start_date_iso" ] || [ "$start_date_iso" = "null" ]; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
# Преобразуем ISO8601 в timestamp
|
||||
start_ts=$(date -d "$start_date_iso" +%s 2>/dev/null)
|
||||
if [ -z "$start_ts" ]; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
now=$(date +%s)
|
||||
uptime=$((now - start_ts))
|
||||
echo "$uptime"
|
||||
;;
|
||||
|
||||
srv.number_of_users)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
# Извлекаем количество пользователей (поле Users)
|
||||
users=$(echo "$resp" | jq -r '.result.NumUsers_u32' 2>/dev/null)
|
||||
# Если поле отсутствует или null, выводим 0
|
||||
if [ -z "$users" ] || [ "$users" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$users"
|
||||
fi
|
||||
;;
|
||||
|
||||
srv.number_of_ip_address_tables)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
echo "$resp" | jq -r '.result.NumIpTables_u32' 2>/dev/null || echo 0
|
||||
;;
|
||||
|
||||
srv.number_of_mac_address_tables)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
echo "$resp" | jq -r '.result.NumMacTables_u32' 2>/dev/null || echo 0
|
||||
;;
|
||||
|
||||
srv.number_of_sessions)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
echo "$resp" | jq -r '.result.NumSessionsTotal_u32' 2>/dev/null || echo 0
|
||||
;;
|
||||
|
||||
srv.number_of_virtual_hubs)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
echo "$resp" | jq -r '.result.NumHubTotal_u32' 2>/dev/null || echo 0
|
||||
;;
|
||||
|
||||
srv.number_of_active_sockets)
|
||||
resp=$(api_call "GetServerStatus")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
echo "$resp" | jq -r '.result.NumTcpConnections_u32' 2>/dev/null || echo 0
|
||||
;;
|
||||
|
||||
srv.l2tp_status)
|
||||
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD IPsecGet | grep "L2TP over IPsec Server Function Enabled" | awk -F"|" '{print $2}'`
|
||||
;;
|
||||
|
||||
srv.openvpn_status)
|
||||
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD openvpnget | grep "OpenVPN Clone Server Enabled" | awk -F"|" '{print $2}'`
|
||||
;;
|
||||
|
||||
|
||||
|
||||
srv.version)
|
||||
resp=$(api_call "GetServerInfo")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | awk 'FNR==3'
|
||||
else
|
||||
version=$(echo "$resp" | jq -r '.result.ServerVersionString_str' 2>/dev/null)
|
||||
[ -n "$version" ] && [ "$version" != "null" ] && echo "$version" || $VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | awk 'FNR==3'
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.if.out.broad
|
||||
hub.if.out.broad)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.if.in.broad
|
||||
hub.if.in.broad)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.if.out.uni
|
||||
hub.if.out.uni)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.if.in.uni
|
||||
hub.if.in.uni)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.sessions-bridge
|
||||
hub.sessions-bridge)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result.NumSessionsBridge_u32' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.sessions-client
|
||||
hub.sessions-client)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result.NumSessionsClient_u32' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.sessions-all
|
||||
hub.sessions-all)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result.NumSessions_u32' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.securenat
|
||||
hub.securenat)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo "false"
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result.SecureNATEnabled_bool' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo "false"
|
||||
else
|
||||
# Приводим к строке true/false (Zabbix ожидает строку)
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
# hub.type
|
||||
hub.type)
|
||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
val=$(echo "$resp" | jq -r '.result.HubType_u32' 2>/dev/null)
|
||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo "$val"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
cas.status)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
status=$(echo "$resp" | jq -r '.result.Connected_bool' 2>/dev/null)
|
||||
if [ "$status" = "true" ]; then
|
||||
echo "Connection Completed (Session Established)"
|
||||
else
|
||||
echo "offline"
|
||||
fi
|
||||
;;
|
||||
|
||||
cas.if.out.broad)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
cas.if.in.broad)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
cas.if.out)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result.TotalSendSize_u64' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
cas.if.in)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result.TotalRecvSize_u64' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
cas.if.out.uni)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
cas.if.in.uni)
|
||||
HUB=${ITEM%,*}
|
||||
CAS=${ITEM##*,}
|
||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
;;
|
||||
|
||||
br.status)
|
||||
HUB=${ITEM%,*}
|
||||
BR=${ITEM##*,}
|
||||
resp=$(api_call "EnumLocalBridge")
|
||||
online=$(echo "$resp" | jq -r --arg hub "$HUB" --arg br "$BR" '.result.LocalBridgeList[] | select(.HubNameLB_str == $hub and .DeviceName_str == $br) | .Online_bool' 2>/dev/null | head -1)
|
||||
if [ "$online" = "true" ]; then
|
||||
echo "Operating"
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
|
||||
usr.if.out.broad)
|
||||
HUB=${ITEM%,*}
|
||||
USER=${ITEM##*,}
|
||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Broadcast Total Size" | sed -e 's/[^0-9]//g'
|
||||
else
|
||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
fi
|
||||
;;
|
||||
|
||||
# usr.if.in.broad
|
||||
usr.if.in.broad)
|
||||
HUB=${ITEM%,*}
|
||||
USER=${ITEM##*,}
|
||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Broadcast Total Size" | sed -e 's/[^0-9]//g'
|
||||
else
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
fi
|
||||
;;
|
||||
|
||||
# usr.if.out.uni
|
||||
usr.if.out.uni)
|
||||
HUB=${ITEM%,*}
|
||||
USER=${ITEM##*,}
|
||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Unicast Total Size" | sed -e 's/[^0-9]//g'
|
||||
else
|
||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
fi
|
||||
;;
|
||||
|
||||
# usr.if.in.uni
|
||||
usr.if.in.uni)
|
||||
HUB=${ITEM%,*}
|
||||
USER=${ITEM##*,}
|
||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Unicast Total Size" | sed -e 's/[^0-9]//g'
|
||||
else
|
||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
||||
echo "${val:-0}"
|
||||
fi
|
||||
;;
|
||||
|
||||
# usr.lastlogin
|
||||
usr.lastlogin)
|
||||
HUB=${ITEM%,*}
|
||||
USER=${ITEM##*,}
|
||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
||||
$VCMD /SERVER ${URL} /adminhub:"$HUB" /PASSWORD:"${PWD}" /CMD UserGet "${USER}" | grep "Updated on" | awk -F"|" '{print $2}'
|
||||
else
|
||||
updated=$(echo "$resp" | jq -r '.result.UpdatedTime_dt' 2>/dev/null)
|
||||
if [ -n "$updated" ] && [ "$updated" != "null" ]; then
|
||||
# Преобразуем ISO дату в timestamp
|
||||
ts=$(date -d "$updated" +%s 2>/dev/null)
|
||||
echo "${ts:-0}"
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
|
||||
help)
|
||||
echo "please use these params
|
||||
{
|
||||
discovery
|
||||
srv.uptime
|
||||
srv.number_of_users
|
||||
srv.number_of_ip_address_tables
|
||||
srv.number_of_mac_address_tables
|
||||
srv.number_of_sessions
|
||||
srv.number_of_virtual_hubs
|
||||
srv.number_of_active_sockets
|
||||
srv.l2tp_status
|
||||
srv.openvpn_status
|
||||
srv.version
|
||||
hub.if.out.broad
|
||||
hub.if.in.broad
|
||||
hub.if.out.uni
|
||||
hub.if.in.uni
|
||||
hub.sessions-bridge
|
||||
hub.sessions-client
|
||||
hub.sessions-all
|
||||
hub.securenat
|
||||
hub.type
|
||||
cas.status
|
||||
cas.if.in.broad
|
||||
cas.if.out.broad
|
||||
cas.if.out
|
||||
cas.if.in
|
||||
cas.if.in.uni
|
||||
cas.if.out.uni
|
||||
br.status
|
||||
usr.lastlogin
|
||||
usr.if.out.broad
|
||||
usr.if.in.broad
|
||||
usr.if.in.uni
|
||||
usr.if.out.uni
|
||||
script.version
|
||||
}"
|
||||
;;
|
||||
|
||||
|
||||
*)
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user