Odp: Skrypt /sbin/sysinfo.sh
-n jeszcze
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Skrypt /sbin/sysinfo.sh
Strony Poprzednia 1 … 5 6 7 8 9 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
-n jeszcze
Ok, wszystko działa ![]()
Co prawda metoda z tr -d '\r' <sysinfo.sh >sysinfo1.sh nie zadziałała, ale... poprzez vim usunąłem zbędne znaki.
Teraz działa sysinfo. Nie rozumiem jeszcze tylko jednej kwestii - podobno można wyświetlić ten skrypt za pomocą html. Czy wynik tego skryptu zapisuje się w pliku html? Jak to ustawic?
Ok, cofam pytanie. W php wystarczy wywołać ten skrypt a wynik sam sie pokaże - super ![]()
CC i skrypt Rafciq'a, wynik kończy się tak:
| Machine: TP-Link TL-MR3420 v2, Name: Openwrt_TP |
| System uptime: 3d 03:43:27, Now: 2016-08-13 23:47:04 |
| System load: 0.37, 0.25, 0.10 |
| RootFS: total: 12.4MB, used: 3.0MB, 24.3%, free: 9.4MB |
| Memory: total: 59.6MB, used: 19.1MB, 32.0%, free: 40.6MB |
| WAN: 192.168.1.10/24(eth0), gateway: 192.168.1.1 |
| proto: static, uptime: 10:46:49, rx/tx: 1.1GB/86.9MB |
| dns: 8.8.8.8 |
| WAN: 192.168.8.10/24(eth2), gateway: 192.168.8.1 |
| proto: dhcp, uptime: 12:18:47, rx/tx: 711.8MB/191.3MB |
| dns: 192.168.8.1 192.168.8.1 |
| LAN: 192.168.2.1/24(br-lan), dhcp: n/a |
----------------------------------------------------------------Nie wiem, czemu tak wyświetla się dhcp i brakuje radia. Później już ostatnie błędy normalnie.
Zakładam, że nieco się zmieniło w temacie pobierania danych z systemu od ostatnich aktualizacji, czy ktoś może to sobie poprawił i chciałby się podzielić?
Działające radio skopiowałem z skryptu Cezarego sysinfo.sh i powinno działać :
#!/bin/sh
#
# sysinfo.sh dla OpenWRT AA Cezary Jackiewicz 2013
#
# 1.00 CJ Pierwsza wersja kodu
# 1.01 RD Drobna przebudowa
# 1.02 RD Korekta b³êdu wyœw. zajetoœci Flash-a, dodanie kolorów
# 1.03 RD Dodanie nazwy routera, zmiana formatowania
# 1.04 RD Kosmetyka, sugestie @mikhnal. Zmiana przetwarzania info. o wan.
# 1.05 RD Zmiana algorytmu pobierania danych dla wan i lan
# 1.06 RD Parametryzacja kolorów i pojawiania siê podkreœleñ
# 1.07 RD Modyfikacja zwi¹zana z poprawnym wyœwietlaniem interfejsu dla prot.3g
# 1.08 RD Modyfikacja wyœwietlania DNS-ów dla wan, dodanie uptime dla interfejsów
# 1.09 RD Dodanie statusu "Down" dla wy³¹czonego wifi, zmiana wyœwietlania dla WLAN(sta)
# 1.10 RD Korekta wyœwietlania dla WLAN(sta)
# 1.11 RD Korekta wyœwietlania stanu pamiêci, sugestie @dopsz
# 1.12 RD Zmiana kolejnoœci wyœwietlania wartoœci stanu pamiêci + kosmetyka
# 1.13 RD Dodanie info o dhcp w LAN, zmiana sposobu wyœwietlania informacji o LAN
# 1.14 RD Dodanie informacji o ostatnich 5 b³êdach
# 1.15 RD Zmiana stderr
# 1.16 RD Dodanie wyœwietlania informacji o swap
# 1.17 RD Zmiana wyliczania informacji o flash
# 1.18 RD Zmiana wyœwietlania informacji o flash
# 1.19 RD Zmiana wyœwietlania informacji o sprzêcie
#
# Destination /sbin/sysinfo.sh
#
. /usr/share/libubox/jshn.sh
local Width=60
local StartRuler="1"
local EndRuler="1"
local LastErrors="1"
local NormalColor=""
local MachineColor=""
local ValueColor=""
local AddrColor=""
local RXTXColor=""
local ErrorColor=""
local ExtraName=""
local ExtraValue=""
initialize() { # <Script Parameters>
local ColorMode="c"
while [ -n "$1" ]; do
case "$1" in
-h|--help) echo -e "Usage: $0 [-h|--help] [[-m|--mono]|[-bw|-black-white]|[-c2|--color-2]] [-sr|--no-start-ruler] [-er|--no-end-ruler]"\
"[-w N|--width N] [-en Name|--extra-name Name] [-ev Value|--extra-value Value] [-le|--no-last-err]"\
"\n\t-h\t\tThis help,"\
"\n\t-m\t\tDisplay mono version,"\
"\n\t-bw\t\tDisplay black-white version,"\
"\n\t-c2\t\tDisplay alternative color version 2,"\
"\n\t-sr\t\tWithout start horizontal ruler,"\
"\n\t-er\t\tWithout end horizontal ruler,"\
"\n\t-w N\t\tSet width of text area to N characters (minimum 60)"\
"\n\t-en Name\tPrint extra name"\
"\n\t-ev Value\tPrint extra value"\
"\n\t-le\t\tDon't display last errors"
exit 1;;
-m|--mono) ColorMode="m";;
-bw|--black-white) ColorMode="bw";;
-c2|--color-2) ColorMode="c2";;
-sr|--no-start-ruler) StartRuler="0";;
-er|--no-end-ruler) EndRuler="0";;
-w|--width) shift; Width=$1;;
-en|--extra-name) while [ -n "$2" ] && [ "${2:0:1}" != "-" ]; do
shift
[ "$ExtraName" != "" ] && ExtraName="$ExtraName "
ExtraName="$ExtraName$1"
done;;
-ev|--extra-value) while [ -n "$2" ] && [ "${2:0:1}" != "-" ]; do
shift
[ "$ExtraValue" != "" ] && ExtraValue="$ExtraValue "
ExtraValue="$ExtraValue$1"
done;;
-le|--no-last-err) LastErrors="0";;
*) echo "Invalid option: $1. Use -h for help";;
esac
shift;
done
case "$ColorMode" in
c) NormalColor="\e[0m"
MachineColor="\e[0;33m"
ValueColor="\e[1;36m"
AddrColor="\e[1;31m"
RXTXColor="\e[2;32m"
ErrorColor="\e[0;31m";;
c2) NormalColor="\e[0m"
MachineColor="\e[0;31m"
ValueColor="\e[0;33m"
AddrColor="\e[0;35m"
RXTXColor="\e[0;36m"
ErrorColor="\e[0;31m";;
m) NormalColor="\e[0m"
MachineColor="\e[7m"
ValueColor="\e[1m"
AddrColor="\e[4m"
RXTXColor="\e[1m"
ErrorColor="\e[4";;
*) ;;
esac
([ "$Width" == "" ] || [ "$Width" -lt 60 ]) && Width=60
}
human_readable() { # <Number of bytes>
if [ $1 -gt 0 ]; then
printf "$(awk -v n=$1 'BEGIN{for(i=split("B KB MB GB TB PB",suffix);s<1;i--)s=n/(2**(10*i));printf (int(s)==s)?"%.0f%s":"%.1f%s",s,suffix[i+2]}' 2>/dev/null)"
else
printf "0B"
fi
}
device_rx_tx() { # <Device>
local RXTX=$(awk -v Device=$1 '$1==Device ":"{printf "%.0f\t%.0f",$2,$10}' /proc/net/dev 2>/dev/null)
[ "$RXTX" != "" ] && printf ", rx/tx: $RXTXColor$(human_readable $(echo "$RXTX" | cut -f 1))$NormalColor/$RXTXColor$(human_readable $(echo "$RXTX" | cut -f 2))$NormalColor"
}
uptime_str() { # <Time in Seconds>
local Uptime=$1
if [ $Uptime -gt 0 ]; then
local Days=$(expr $Uptime / 60 / 60 / 24)
local Hours=$(expr $Uptime / 60 / 60 % 24)
local Minutes=$(expr $Uptime / 60 % 60)
local Seconds=$(expr $Uptime % 60)
if [ $Days -gt 0 ]; then
Days=$(printf "%dd " $Days)
else
Days=""
fi 2>/dev/null
printf "$Days%02d:%02d:%02d" $Hours $Minutes $Seconds
fi
}
print_line() { # <String to Print>, [[<String to Print>] ...]
local Line="$@"
printf " | %-${Width}s |\r | $Line\n" 2>/dev/null
}
print_horizontal_ruler() {
printf "/%$(expr $Width + 4 )s\n" | tr ' /' '- ' 2>/dev/null
}
print_machine() {
local Machine=""
local HostName=$(uci -q get system.@system[0].hostname)
if [ -e /tmp/sysinfo/model ]; then
Machine=$(cat /tmp/sysinfo/model 2>/dev/null)
elif [ -e /proc/cpuinfo ]; then
Machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo 2>/dev/null)
fi
print_line "Machine: $MachineColor${Machine:-n/a}$NormalColor,"\
"Name: $MachineColor${HostName:-n/a}$NormalColor"
}
print_times() {
local SysUptime=$(cut -d. -f1 /proc/uptime)
local Uptime=$(uptime_str $SysUptime)
local Now=$(date +'%Y-%m-%d %H:%M:%S')
print_line "System uptime: $ValueColor$Uptime$NormalColor,"\
"Now: $ValueColor$Now$NormalColor"
}
print_loadavg() {
local LoadAvg=$(awk '{printf"'$ValueColor'%s'$NormalColor', '$ValueColor'%s'$NormalColor', '$ValueColor'%s'$NormalColor'",$1,$2,$3}' /proc/loadavg 2>/dev/null)
print_line "System load: $LoadAvg"
}
print_fs_summary() { # <Mount point> <Label>
local DeviceInfo=$(df -k $1 2>/dev/null| awk 'BEGIN{Total=0;Free=0} NR>1 && $6=="'$1'"{Total=$2;Free=$4}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' 2>/dev/null)
local Total=$(echo "$DeviceInfo" | cut -f 1)
local Used=$(echo "$DeviceInfo" | cut -f 2)
local UsedPercent=$(echo "$DeviceInfo" | cut -f 3)
local Free=$(echo "$DeviceInfo" | cut -f 4)
[ "$Total" -gt 0 ] && print_line "$2:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_disk() {
local Overlay=$(awk '$3=="overlayfs"{print $2}' /proc/mounts 2>/dev/null)
if [ "$Overlay" != "" ]; then
print_fs_summary /overlay "Flash"
fi
if [ "$Overlay" == "" ] || [ "$Overlay" != "/" ]; then
print_fs_summary / "RootFS"
fi
}
print_memory() {
local Memory=$(awk 'BEGIN{Total=0;Free=0}$1~/^MemTotal:/{Total=$2}$1~/^MemFree:|^Buffers:|^Cached:/{Free+=$2}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' /proc/meminfo 2>/dev/null)
local Total=$(echo "$Memory" | cut -f 1)
local Used=$(echo "$Memory" | cut -f 2)
local UsedPercent=$(echo "$Memory" | cut -f 3)
local Free=$(echo "$Memory" | cut -f 4)
print_line "Memory:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_swap() {
local Swap=$(awk 'BEGIN{Total=0;Free=0}$1~/^SwapTotal:/{Total=$2}$1~/^SwapFree:/{Free=$2}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' /proc/meminfo 2>/dev/null)
local Total=$(echo "$Swap" | cut -f 1)
local Used=$(echo "$Swap" | cut -f 2)
local UsedPercent=$(echo "$Swap" | cut -f 3)
local Free=$(echo "$Swap" | cut -f 4)
[ "$Total" -gt 0 ] && print_line "Swap:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_wan() {
local Zone
local Device
for Zone in $(uci -q show firewall | grep .masq= | cut -f2 -d.); do
if [ "$(uci -q get firewall.$Zone.masq)" == "1" ]; then
for Device in $(uci -q get firewall.$Zone.network); do
local Status="$(ubus call network.interface.$Device status 2>/dev/null)"
if [ "$Status" != "" ]; then
local State=""
local Iface=""
local Uptime=""
local IP4=""
local IP6=""
local Subnet4=""
local Subnet6=""
local Gateway4=""
local Gateway6=""
local DNS=""
local Protocol=""
json_load "${Status:-{}}"
json_get_var State up
json_get_var Uptime uptime
json_get_var Iface l3_device
json_get_var Protocol proto
if json_get_type Status ipv4_address && [ "$Status" = array ]; then
json_select ipv4_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP4 address
json_get_var Subnet4 mask
[ "$IP4" != "" ] && [ "$Subnet4" != "" ] && IP4="$IP4/$Subnet4"
fi
fi
json_select
if json_get_type Status ipv6_address && [ "$Status" = array ]; then
json_select ipv6_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP6 address
json_get_var Subnet6 mask
[ "$IP6" != "" ] && [ "$Subnet6" != "" ] && IP6="$IP6/$Subnet6"
fi
fi
json_select
if json_get_type Status route && [ "$Status" = array ]; then
json_select route
local Index="1"
while json_get_type Status $Index && [ "$Status" = object ]; do
json_select "$((Index++))"
json_get_var Status target
case "$Status" in
0.0.0.0)
json_get_var Gateway4 nexthop;;
::)
json_get_var Gateway6 nexthop;;
esac
json_select ".."
done
fi
json_select
if json_get_type Status dns_server && [ "$Status" = array ]; then
json_select dns_server
local Index="1"
while json_get_type Status $Index && [ "$Status" = string ]; do
json_get_var Status "$((Index++))"
DNS="${DNS:+$DNS }$Status"
done
fi
if [ "$State" == "1" ]; then
[ "$IP4" != "" ] && print_line "WAN: $AddrColor$IP4$NormalColor($Iface),"\
"gateway: $AddrColor${Gateway4:-n/a}$NormalColor"
[ "$IP6" != "" ] && print_line "WAN: $AddrColor$IP6$NormalColor($Iface),"\
"gateway: $AddrColor${Gateway6:-n/a}$NormalColor"
print_line "proto: $ValueColor${Protocol:-n/a}$NormalColor,"\
"uptime: $ValueColor$(uptime_str $Uptime)$NormalColor$(device_rx_tx $Iface)"
[ "$DNS" != "" ] && print_line "dns: $AddrColor$DNS$NormalColor"
fi
fi
done
fi
done
}
print_lan() {
local Zone
local Device
for Zone in $(uci -q show firewall | grep []]=zone | cut -f2 -d. | cut -f1 -d=); do
if [ "$(uci -q get firewall.$Zone.masq)" != "1" ]; then
for Device in $(uci -q get firewall.$Zone.network); do
local Status="$(ubus call network.interface.$Device status 2>/dev/null)"
if [ "$Status" != "" ]; then
local State=""
local Iface=""
local IP4=""
local IP6=""
local Subnet4=""
local Subnet6=""
json_load "${Status:-{}}"
json_get_var State up
json_get_var Iface device
if json_get_type Status ipv4_address && [ "$Status" = array ]; then
json_select ipv4_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP4 address
json_get_var Subnet4 mask
[ "$IP4" != "" ] && [ "$Subnet4" != "" ] && IP4="$IP4/$Subnet4"
fi
fi
json_select
if json_get_type Status ipv6_address && [ "$Status" = array ]; then
json_select ipv6_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP6 address
json_get_var Subnet6 mask
[ "$IP6" != "" ] && [ "$Subnet6" != "" ] && IP6="$IP6/$Subnet6"
fi
fi
local DHCPConfig=$(uci -q show dhcp | grep .interface=$Device | cut -d. -f2)
if [ "$DHCPConfig" != "" ] && [ "$(uci -q get dhcp.$DHCPConfig.ignore)" != "1" ]; then
local DHCPStart=$(uci -q get dhcp.$DHCPConfig.start)
local DHCPLimit=$(uci -q get dhcp.$DHCPConfig.limit)
[ "$DHCPStart" != "" ] && [ "$DHCPLimit" != "" ] && DHCP="$(echo $IP4 | cut -d. -f1-3).$DHCPStart-$(expr $DHCPStart + $DHCPLimit - 1)"
fi
[ "$IP4" != "" ] && print_line "LAN: $AddrColor$IP4$NormalColor($Iface), dhcp: $AddrColor${DHCP:-n/a}$NormalColor"
[ "$IP6" != "" ] && print_line "LAN: $AddrColor$IP6$NormalColor($Iface)"
fi
done
fi
done
}
print_wlan() {
IFACES=$(uci -q show wireless | grep "device='radio" | cut -f2 -d. | sort)
for i in $IFACES; do
SSID=$(uci -q get wireless.$i.ssid)
DEV=$(uci -q get wireless.$i.device)
OFF=$(uci -q get wireless.$DEV.disabled)
OFF2=$(uci -q get wireless.$i.disabled)
if [ -n "$SSID" ] && [ "x$OFF" != "x1" ] && [ "x$OFF2" != "x1" ]; then
MODE=$(uci -q -P /var/state get wireless.$i.mode)
CHANNEL=$(uci -q get wireless.$DEV.channel)
SEC1=$(echo $i | sed 's/\[/\\[/g;s/\]/\\]/g')
IFNAME=$(wifi status $DEV | grep -A 1 $SEC1 | awk '/ifname/ {gsub(/[",]/,"");print $2}')
[ -n "$IFNAME" ] && CNT=$(iw dev $IFNAME station dump | grep Station | wc -l)
print_line "WLAN: $ValueColor$SSID$NormalColor($MODE),"\
"ch: $ValueColor$CHANNEL$NormalColor,"\
"conn: $ValueColor${CNT:-0}$NormalColor"
fi
done
}
print_vpn() {
local VPN
for VPN in $(uci -q show openvpn | grep .ca= | cut -f2 -d.); do
local Device=$(uci -q get openvpn.$VPN.dev)
local Enabled=$(uci -q get openvpn.$VPN.enabled)
if [ "$Enabled" == "1" ] || [ "$Enabled" == "" ]; then
local Mode=$(uci -q get openvpn.$VPN.mode)
local Connection="n/a"
if [ "$Mode" == "server" ]; then
Mode="$ValueColor$VPN$NormalColor(svr):$(uci -q get openvpn.$VPN.port)"
Status=$(uci -q get openvpn.$VPN.status)
Connection=$(awk 'BEGIN{FS=",";c=0;l=0}{if($1=="Common Name")l=1;else if($1=="ROUTING TABLE")exit;else if (l==1) c=c+1}END{print c}' $Status 2>/dev/null)
else
Mode="$ValueColor$VPN$NormalColor(cli)"
Connection="Down"
ifconfig $Device &>/dev/null && Connection="Up"
fi
print_line "VPN: $Mode,"\
"conn: $ValueColor$Connection$NormalColor$(device_rx_tx $Device)"
fi
done
}
print_extra() {
([ "$ExtraName" != "" ] || [ "$ExtraValue" != "" ]) && print_line "$ExtraName $ValueColor$ExtraValue$NormalColor"
}
print_error() {
logread | awk '/\w{3}+\.(err|warn|alert|emerg|crit)/{err[++i]=$0}END{j=i-4;j=j>=1?j:1;while(j<=i)print" '$ErrorColor'"err[j++]"'$NormalColor'"}' 2>/dev/null
}
initialize $@
[ "$StartRuler" == "1" ] && print_horizontal_ruler
print_machine
print_times
print_loadavg
print_disk
print_memory
print_swap
print_wan
print_lan
print_wlan
print_vpn
print_extra
[ "$EndRuler" == "1" ] && print_horizontal_ruler
[ "$LastErrors" == "1" ] && print_error
exit 0Hm...
Wydawało mi się, że robiłem to samo... ehh..
Dzięki - działa wlan, ale dalej nie mam pomysłu na dhcp.
Co jest niby źle w dhcp ?
Z wątku - spodziewałem się czegoś w tym stylu:
LAN: 192.168.10.1/24(br-lan), dhcp: 192.168.10.100-249Zobacz w interfejs LAN i zauważ że DHCP masz wyłączone masz przypisany stały adres IP więc pokazuje dobrze ![]()
DHCP Leases
Hostname IPv4-Address MAC-Address Leasetime remaining
BB-Passport 192.168.2.136 48:9d:24:c7:11:d9 20h 47m 12s
Dell 192.168.2.123 18:3d:a2:67:c2:14 15h 15m 14s?
Aby pokazywał pule przypisanych adresów trzeba by było przerobić skrypt aby pobrał nam potrzebne dane.
Na to wygląda. W sumie - może mało potrzebne, ale ja na bazie tego skryptu stworzyłem sobie taki monitor stanu, który co 2h wędruje na maila i obecność urządzeń w DHCP byłaby dość wartościową informacją. Może coś wymyślę, dzięki za pomoc.
wc /var/dhcp.leases i masz zliczone ile adresów ip jest przydzielone.
edit:
wc /var/dhcp.leases | cut -d' ' -f9
axelf wymyśliłeś już coś ? o takie coś Ci chodziło ?
Nowa wersja skryptu dodałem status ilości dzierżaw dhcp
#!/bin/sh
#
# sysinfo.sh dla OpenWRT AA Cezary Jackiewicz 2013
#
# 1.00 CJ Pierwsza wersja kodu
# 1.01 RD Drobna przebudowa
# 1.02 RD Korekta b³êdu wyœw. zajetoœci Flash-a, dodanie kolorów
# 1.03 RD Dodanie nazwy routera, zmiana formatowania
# 1.04 RD Kosmetyka, sugestie @mikhnal. Zmiana przetwarzania info. o wan.
# 1.05 RD Zmiana algorytmu pobierania danych dla wan i lan
# 1.06 RD Parametryzacja kolorów i pojawiania siê podkreœleñ
# 1.07 RD Modyfikacja zwi¹zana z poprawnym wyœwietlaniem interfejsu dla prot.3g
# 1.08 RD Modyfikacja wyœwietlania DNS-ów dla wan, dodanie uptime dla interfejsów
# 1.09 RD Dodanie statusu "Down" dla wy³¹czonego wifi, zmiana wyœwietlania dla WLAN(sta)
# 1.10 RD Korekta wyœwietlania dla WLAN(sta)
# 1.11 RD Korekta wyœwietlania stanu pamiêci, sugestie @dopsz
# 1.12 RD Zmiana kolejnoœci wyœwietlania wartoœci stanu pamiêci + kosmetyka
# 1.13 RD Dodanie info o dhcp w LAN, zmiana sposobu wyœwietlania informacji o LAN
# 1.14 RD Dodanie informacji o ostatnich 5 b³êdach
# 1.15 RD Zmiana stderr
# 1.16 RD Dodanie wyœwietlania informacji o swap
# 1.17 RD Zmiana wyliczania informacji o flash
# 1.18 RD Zmiana wyœwietlania informacji o flash
# 1.19 RD Zmiana wyœwietlania informacji o sprzêcie
# 1.20 Zmiana odczytu radia Wlan
# 1.21 Dodanie statusu ilośći dzierżaw dhcp
#
# Destination /sbin/sysinfo.sh
#
. /usr/share/libubox/jshn.sh
local Width=60
local StartRuler="1"
local EndRuler="1"
local LastErrors="1"
local NormalColor=""
local MachineColor=""
local ValueColor=""
local AddrColor=""
local RXTXColor=""
local ErrorColor=""
local ExtraName=""
local ExtraValue=""
initialize() { # <Script Parameters>
local ColorMode="c"
while [ -n "$1" ]; do
case "$1" in
-h|--help) echo -e "Usage: $0 [-h|--help] [[-m|--mono]|[-bw|-black-white]|[-c2|--color-2]] [-sr|--no-start-ruler] [-er|--no-end-ruler]"\
"[-w N|--width N] [-en Name|--extra-name Name] [-ev Value|--extra-value Value] [-le|--no-last-err]"\
"\n\t-h\t\tThis help,"\
"\n\t-m\t\tDisplay mono version,"\
"\n\t-bw\t\tDisplay black-white version,"\
"\n\t-c2\t\tDisplay alternative color version 2,"\
"\n\t-sr\t\tWithout start horizontal ruler,"\
"\n\t-er\t\tWithout end horizontal ruler,"\
"\n\t-w N\t\tSet width of text area to N characters (minimum 60)"\
"\n\t-en Name\tPrint extra name"\
"\n\t-ev Value\tPrint extra value"\
"\n\t-le\t\tDon't display last errors"
exit 1;;
-m|--mono) ColorMode="m";;
-bw|--black-white) ColorMode="bw";;
-c2|--color-2) ColorMode="c2";;
-sr|--no-start-ruler) StartRuler="0";;
-er|--no-end-ruler) EndRuler="0";;
-w|--width) shift; Width=$1;;
-en|--extra-name) while [ -n "$2" ] && [ "${2:0:1}" != "-" ]; do
shift
[ "$ExtraName" != "" ] && ExtraName="$ExtraName "
ExtraName="$ExtraName$1"
done;;
-ev|--extra-value) while [ -n "$2" ] && [ "${2:0:1}" != "-" ]; do
shift
[ "$ExtraValue" != "" ] && ExtraValue="$ExtraValue "
ExtraValue="$ExtraValue$1"
done;;
-le|--no-last-err) LastErrors="0";;
*) echo "Invalid option: $1. Use -h for help";;
esac
shift;
done
case "$ColorMode" in
c) NormalColor="\e[0m"
MachineColor="\e[0;33m"
ValueColor="\e[1;36m"
AddrColor="\e[1;31m"
RXTXColor="\e[2;32m"
ErrorColor="\e[0;31m";;
c2) NormalColor="\e[0m"
MachineColor="\e[0;31m"
ValueColor="\e[0;33m"
AddrColor="\e[0;35m"
RXTXColor="\e[0;36m"
ErrorColor="\e[0;31m";;
m) NormalColor="\e[0m"
MachineColor="\e[7m"
ValueColor="\e[1m"
AddrColor="\e[4m"
RXTXColor="\e[1m"
ErrorColor="\e[4";;
*) ;;
esac
([ "$Width" == "" ] || [ "$Width" -lt 60 ]) && Width=60
}
human_readable() { # <Number of bytes>
if [ $1 -gt 0 ]; then
printf "$(awk -v n=$1 'BEGIN{for(i=split("B KB MB GB TB PB",suffix);s<1;i--)s=n/(2**(10*i));printf (int(s)==s)?"%.0f%s":"%.1f%s",s,suffix[i+2]}' 2>/dev/null)"
else
printf "0B"
fi
}
device_rx_tx() { # <Device>
local RXTX=$(awk -v Device=$1 '$1==Device ":"{printf "%.0f\t%.0f",$2,$10}' /proc/net/dev 2>/dev/null)
[ "$RXTX" != "" ] && printf ", rx/tx: $RXTXColor$(human_readable $(echo "$RXTX" | cut -f 1))$NormalColor/$RXTXColor$(human_readable $(echo "$RXTX" | cut -f 2))$NormalColor"
}
uptime_str() { # <Time in Seconds>
local Uptime=$1
if [ $Uptime -gt 0 ]; then
local Days=$(expr $Uptime / 60 / 60 / 24)
local Hours=$(expr $Uptime / 60 / 60 % 24)
local Minutes=$(expr $Uptime / 60 % 60)
local Seconds=$(expr $Uptime % 60)
if [ $Days -gt 0 ]; then
Days=$(printf "%dd " $Days)
else
Days=""
fi 2>/dev/null
printf "$Days%02d:%02d:%02d" $Hours $Minutes $Seconds
fi
}
print_line() { # <String to Print>, [[<String to Print>] ...]
local Line="$@"
printf " | %-${Width}s |\r | $Line\n" 2>/dev/null
}
print_horizontal_ruler() {
printf "/%$(expr $Width + 4 )s\n" | tr ' /' '- ' 2>/dev/null
}
print_machine() {
local Machine=""
local HostName=$(uci -q get system.@system[0].hostname)
if [ -e /tmp/sysinfo/model ]; then
Machine=$(cat /tmp/sysinfo/model 2>/dev/null)
elif [ -e /proc/cpuinfo ]; then
Machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo 2>/dev/null)
fi
print_line "Machine: $MachineColor${Machine:-n/a}$NormalColor,"\
"Name: $MachineColor${HostName:-n/a}$NormalColor"
}
print_times() {
local SysUptime=$(cut -d. -f1 /proc/uptime)
local Uptime=$(uptime_str $SysUptime)
local Now=$(date +'%Y-%m-%d %H:%M:%S')
print_line "System uptime: $ValueColor$Uptime$NormalColor,"\
"Now: $ValueColor$Now$NormalColor"
}
print_loadavg() {
local LoadAvg=$(awk '{printf"'$ValueColor'%s'$NormalColor', '$ValueColor'%s'$NormalColor', '$ValueColor'%s'$NormalColor'",$1,$2,$3}' /proc/loadavg 2>/dev/null)
print_line "System load: $LoadAvg"
}
print_fs_summary() { # <Mount point> <Label>
local DeviceInfo=$(df -k $1 2>/dev/null| awk 'BEGIN{Total=0;Free=0} NR>1 && $6=="'$1'"{Total=$2;Free=$4}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' 2>/dev/null)
local Total=$(echo "$DeviceInfo" | cut -f 1)
local Used=$(echo "$DeviceInfo" | cut -f 2)
local UsedPercent=$(echo "$DeviceInfo" | cut -f 3)
local Free=$(echo "$DeviceInfo" | cut -f 4)
[ "$Total" -gt 0 ] && print_line "$2:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_disk() {
local Overlay=$(awk '$3=="overlayfs"{print $2}' /proc/mounts 2>/dev/null)
if [ "$Overlay" != "" ]; then
print_fs_summary /overlay "Flash"
fi
if [ "$Overlay" == "" ] || [ "$Overlay" != "/" ]; then
print_fs_summary / "RootFS"
fi
}
print_memory() {
local Memory=$(awk 'BEGIN{Total=0;Free=0}$1~/^MemTotal:/{Total=$2}$1~/^MemFree:|^Buffers:|^Cached:/{Free+=$2}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' /proc/meminfo 2>/dev/null)
local Total=$(echo "$Memory" | cut -f 1)
local Used=$(echo "$Memory" | cut -f 2)
local UsedPercent=$(echo "$Memory" | cut -f 3)
local Free=$(echo "$Memory" | cut -f 4)
print_line "Memory:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_swap() {
local Swap=$(awk 'BEGIN{Total=0;Free=0}$1~/^SwapTotal:/{Total=$2}$1~/^SwapFree:/{Free=$2}END{Used=Total-Free;printf"%.0f\t%.0f\t%.1f\t%.0f",Total*1024,Used*1024,(Total>0)?((Used/Total)*100):0,Free*1024}' /proc/meminfo 2>/dev/null)
local Total=$(echo "$Swap" | cut -f 1)
local Used=$(echo "$Swap" | cut -f 2)
local UsedPercent=$(echo "$Swap" | cut -f 3)
local Free=$(echo "$Swap" | cut -f 4)
[ "$Total" -gt 0 ] && print_line "Swap:"\
"total: $ValueColor$(human_readable $Total)$NormalColor,"\
"used: $ValueColor$(human_readable $Used)$NormalColor, $ValueColor$UsedPercent$NormalColor%%,"\
"free: $ValueColor$(human_readable $Free)$NormalColor"
}
print_wan() {
local Zone
local Device
for Zone in $(uci -q show firewall | grep .masq= | cut -f2 -d.); do
if [ "$(uci -q get firewall.$Zone.masq)" == "1" ]; then
for Device in $(uci -q get firewall.$Zone.network); do
local Status="$(ubus call network.interface.$Device status 2>/dev/null)"
if [ "$Status" != "" ]; then
local State=""
local Iface=""
local Uptime=""
local IP4=""
local IP6=""
local Subnet4=""
local Subnet6=""
local Gateway4=""
local Gateway6=""
local DNS=""
local Protocol=""
json_load "${Status:-{}}"
json_get_var State up
json_get_var Uptime uptime
json_get_var Iface l3_device
json_get_var Protocol proto
if json_get_type Status ipv4_address && [ "$Status" = array ]; then
json_select ipv4_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP4 address
json_get_var Subnet4 mask
[ "$IP4" != "" ] && [ "$Subnet4" != "" ] && IP4="$IP4/$Subnet4"
fi
fi
json_select
if json_get_type Status ipv6_address && [ "$Status" = array ]; then
json_select ipv6_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP6 address
json_get_var Subnet6 mask
[ "$IP6" != "" ] && [ "$Subnet6" != "" ] && IP6="$IP6/$Subnet6"
fi
fi
json_select
if json_get_type Status route && [ "$Status" = array ]; then
json_select route
local Index="1"
while json_get_type Status $Index && [ "$Status" = object ]; do
json_select "$((Index++))"
json_get_var Status target
case "$Status" in
0.0.0.0)
json_get_var Gateway4 nexthop;;
::)
json_get_var Gateway6 nexthop;;
esac
json_select ".."
done
fi
json_select
if json_get_type Status dns_server && [ "$Status" = array ]; then
json_select dns_server
local Index="1"
while json_get_type Status $Index && [ "$Status" = string ]; do
json_get_var Status "$((Index++))"
DNS="${DNS:+$DNS }$Status"
done
fi
if [ "$State" == "1" ]; then
[ "$IP4" != "" ] && print_line "WAN: $AddrColor$IP4$NormalColor($Iface),"\
"gateway: $AddrColor${Gateway4:-n/a}$NormalColor"
[ "$IP6" != "" ] && print_line "WAN: $AddrColor$IP6$NormalColor($Iface),"\
"gateway: $AddrColor${Gateway6:-n/a}$NormalColor"
print_line "proto: $ValueColor${Protocol:-n/a}$NormalColor,"\
"uptime: $ValueColor$(uptime_str $Uptime)$NormalColor$(device_rx_tx $Iface)"
[ "$DNS" != "" ] && print_line "dns: $AddrColor$DNS$NormalColor"
fi
fi
done
fi
done
}
print_lan() {
dhcp2=$(wc /var/dhcp.leases | cut -d' ' -f9)
local Zone
local Device
for Zone in $(uci -q show firewall | grep []]=zone | cut -f2 -d. | cut -f1 -d=); do
if [ "$(uci -q get firewall.$Zone.masq)" != "1" ]; then
for Device in $(uci -q get firewall.$Zone.network); do
local Status="$(ubus call network.interface.$Device status 2>/dev/null)"
if [ "$Status" != "" ]; then
local State=""
local Iface=""
local IP4=""
local IP6=""
local Subnet4=""
local Subnet6=""
json_load "${Status:-{}}"
json_get_var State up
json_get_var Iface device
if json_get_type Status ipv4_address && [ "$Status" = array ]; then
json_select ipv4_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP4 address
json_get_var Subnet4 mask
[ "$IP4" != "" ] && [ "$Subnet4" != "" ] && IP4="$IP4/$Subnet4"
fi
fi
json_select
if json_get_type Status ipv6_address && [ "$Status" = array ]; then
json_select ipv6_address
json_get_type Status 1
if [ "$Status" = object ]; then
json_select 1
json_get_var IP6 address
json_get_var Subnet6 mask
[ "$IP6" != "" ] && [ "$Subnet6" != "" ] && IP6="$IP6/$Subnet6"
fi
fi
local DHCPConfig=$(uci -q show dhcp | grep .interface=$Device | cut -d. -f2)
if [ "$DHCPConfig" != "" ] && [ "$(uci -q get dhcp.$DHCPConfig.ignore)" != "1" ]; then
local DHCPStart=$(uci -q get dhcp.$DHCPConfig.start)
local DHCPLimit=$(uci -q get dhcp.$DHCPConfig.limit)
[ "$DHCPStart" != "" ] && [ "$DHCPLimit" != "" ] && DHCP="$(echo $IP4 | cut -d. -f1-3).$DHCPStart-$(expr $DHCPStart + $DHCPLimit - 1)"
fi
[ "$IP4" != "" ] && print_line "LAN: $AddrColor$IP4$NormalColor($Iface), dhcp: $AddrColor${DHCP:-n/a}$NormalColor, dhcp.leases: $AddrColor$dhcp2$NormalColor "
[ "$IP6" != "" ] && print_line "LAN: $AddrColor$IP6$NormalColor($Iface)"
fi
done
fi
done
}
print_wlan() {
IFACES=$(uci -q show wireless | grep "device='radio" | cut -f2 -d. | sort)
for i in $IFACES; do
SSID=$(uci -q get wireless.$i.ssid)
DEV=$(uci -q get wireless.$i.device)
OFF=$(uci -q get wireless.$DEV.disabled)
OFF2=$(uci -q get wireless.$i.disabled)
if [ -n "$SSID" ] && [ "x$OFF" != "x1" ] && [ "x$OFF2" != "x1" ]; then
MODE=$(uci -q -P /var/state get wireless.$i.mode)
CHANNEL=$(uci -q get wireless.$DEV.channel)
SEC1=$(echo $i | sed 's/\[/\\[/g;s/\]/\\]/g')
IFNAME=$(wifi status $DEV | grep -A 1 $SEC1 | awk '/ifname/ {gsub(/[",]/,"");print $2}')
[ -n "$IFNAME" ] && CNT=$(iw dev $IFNAME station dump | grep Station | wc -l)
print_line "WLAN: $ValueColor$SSID$NormalColor($MODE),"\
"ch: $ValueColor$CHANNEL$NormalColor,"\
"conn: $ValueColor${CNT:-0}$NormalColor"
fi
done
}
print_vpn() {
local VPN
for VPN in $(uci -q show openvpn | grep .ca= | cut -f2 -d.); do
local Device=$(uci -q get openvpn.$VPN.dev)
local Enabled=$(uci -q get openvpn.$VPN.enabled)
if [ "$Enabled" == "1" ] || [ "$Enabled" == "" ]; then
local Mode=$(uci -q get openvpn.$VPN.mode)
local Connection="n/a"
if [ "$Mode" == "server" ]; then
Mode="$ValueColor$VPN$NormalColor(svr):$(uci -q get openvpn.$VPN.port)"
Status=$(uci -q get openvpn.$VPN.status)
Connection=$(awk 'BEGIN{FS=",";c=0;l=0}{if($1=="Common Name")l=1;else if($1=="ROUTING TABLE")exit;else if (l==1) c=c+1}END{print c}' $Status 2>/dev/null)
else
Mode="$ValueColor$VPN$NormalColor(cli)"
Connection="Down"
ifconfig $Device &>/dev/null && Connection="Up"
fi
print_line "VPN: $Mode,"\
"conn: $ValueColor$Connection$NormalColor$(device_rx_tx $Device)"
fi
done
}
print_extra() {
([ "$ExtraName" != "" ] || [ "$ExtraValue" != "" ]) && print_line "$ExtraName $ValueColor$ExtraValue$NormalColor"
}
print_error() {
logread | awk '/\w{3}+\.(err|warn|alert|emerg|crit)/{err[++i]=$0}END{j=i-4;j=j>=1?j:1;while(j<=i)print" '$ErrorColor'"err[j++]"'$NormalColor'"}' 2>/dev/null
}
initialize $@
[ "$StartRuler" == "1" ] && print_horizontal_ruler
print_machine
print_times
print_loadavg
print_disk
print_memory
print_swap
print_wan
print_lan
print_wlan
print_vpn
print_extra
[ "$EndRuler" == "1" ] && print_horizontal_ruler
[ "$LastErrors" == "1" ] && print_error
exit 0@axelf Aby naprawić wyświetlanie informacji o DHCP musisz zmienić w skrypcie definicję zmiennej DHCPConfig.
Najpierw (dla sprawdzenia wykorzystywanego w definicji ciągu znaków) wpisz w konsoli polecenie
uci show dhcp | grep .interfaceZapewne wyświetli Ci się następujący wynik
dhcp.lan.interface='lan'
dhcp.wan.interface='wan'Jak widać wyświetlone ciągi znaków zawierają znak
'Jeśli u Ciebie będzie podobnie, to dla sprawdzenia wpisz jeszcze w konsoli polecenie
uci show dhcp | grep .interface="'lan'" | cut -d. -f2Powinieneś otrzymać następujący wynik
lanJeśli tak, to jesteś gotowy do modyfikacji skryptu sysinfo.sh.
Znajdź w skrypcie sysinfo.sh linię
local DHCPConfig=$(uci -q show dhcp | grep .interface=$Device | cut -d. -f2)i zamień ją na
local DHCPConfig=$(uci -q show dhcp | grep .interface="'$Device'" | cut -d. -f2)Zapisz i wykonaj skrypt. Powinien się wyświetlić zakres numerów przydzielonych w ramach DHCP.
Możesz jeszcze dokonać kosmetycznej zmiany wyświetlania wyników i zmienić wielkość liter w skrótowcu DHCP, aby zapisywany był on wielkimi literami, jak przystało na skrótowiec.
W tym celu możesz zamienić linię
[ "$IP4" != "" ] && print_line "LAN: $AddrColor$IP4$NormalColor($Iface), dhcp: $AddrColor${dhcp:-n/a}$NormalColor"na
[ "$IP4" != "" ] && print_line "LAN: $AddrColor$IP4$NormalColor($Iface), DHCP: $AddrColor${DHCP:-n/a}$NormalColor"**************************************
Nie wiem tylko po co jest następujący warunek
"$(uci -q get dhcp.$DHCPConfig.ignore)" != "1"gdyż u mnie (włączony DHCP) wynik polecenia
uci -q show dhcpnie zawiera
dhcp.lan.ignore='1'a zamiast tego zawiera
dhcp.wan.ignore='1'Może Cezary lub Rafciq wypowie się, czy ten warunek w ogóle jest potrzebny.
Jak jest ignore to on nie przydziela tej klasy adresowej, więc pewnie wyświetlanie przydzielanego zakresu też po prostu nie ma sensu.
Rafciq używa takiego warunku
if [ "$DHCPConfig" != "" ] && [ "$(uci -q get dhcp.$DHCPConfig.ignore)" != "1" ]Możliwe, że sensem tego warunku jest sprawdzenie, czy DHCP jest włączony. Akurat u mnie DHCP jest włączony (i nie zamierzam tego zmieniać nawet dla celów testowych), więc nie mam jak sprawdzić co wyświetli skrypt, gdy DHCP jest wyłączony.
W każdym razie, po wprowadzeniu poprawki w definicji zmiennej $DHCPConfig skrypt wyświetla zakres numerów przydzielonych w ramach DHCP.
Ups... Przestało mnie powiadamiać, a tu się dużo dzieje - dzięki za pomoc.
DHCP wyświetlam w tej chwili po prostu z /tmp/dhcp.leases ale widzę, że jeszcze kilka rzeczy będę dodawał i poprawiał..
Btw - z tego, co widzę na github, Rafciq popełnił trochę więcej wersji, zanim porzucił Openwrt.
Dziękuję wszystkim za wskazówki i zaangażowanie, postaram się wszystko sprawdzić, gdy tylko uporam się z anteną do modemu LTE.
Edit:
Znajdź w skrypcie sysinfo.sh linię
local DHCPConfig=$(uci -q show dhcp | grep .interface=$Device | cut -d. -f2)
i zamień ją na
local DHCPConfig=$(uci -q show dhcp | grep .interface="'$Device'" | cut -d. -f2)
Zapisz i wykonaj skrypt. Powinien się wyświetlić zakres numerów przydzielonych w ramach DHCP.
Potwierdzam, działa ![]()
P.s.
Właśnie odkryłem, że nagle nie mogę zaktualizować listy pakietów.
Wiem, że to nie ten wątek, ale ktoś może znać przyczyny
Bad Gateway
The process did not produce any response?
witam
po tych poprawkach u mnie tak wglada :
root@Gargoyle:~# sysinfo.sh
----------------------------------------------------------------
| Machine: TP-Link TL-WDR3600 v1, Name: Gargoyle |
| System uptime: 2d 01:34:44, Now: 2016-08-16 22:28:09 |
| System load: 0.11, 0.17, 0.20 |
| RootFS: total: 707.9MB, used: 119.1MB, 16.8%, free: 588.8MB |
| Memory: total: 123.1MB, used: 39.5MB, 32.1%, free: 83.6MB |
| Swap: total: 245.0MB, used: 0B, 0.0%, free: 245.0MB |
| WAN: xx.xxx.xxx.164/24(eth0.2), gateway: xx.xxx.xxx.1 |
| proto: dhcp, uptime: 2d 01:34:04, rx/tx: 18.3GB/570.8MB |
| dns: 208.67.222.222 208.67.220.220 |
| proto: none, uptime: 2d 01:34:09, rx/tx: 18.3GB/570.8MB |
| LAN: 192.168.1.1/24(br-lan) |
| DHCP: 192.168.1.100-117, Biezace dzierżawy DHCP: 5 |
| WLAN: H2O(ap), ch: 1, conn: 3 |
----------------------------------------------------------------
Tue Aug 16 21:52:58 2016 daemon.err tvheadend[19904]: epgdb: unable to open epgdb fileustawilem to tak :
[ "$IP4" != "" ] && print_line "LAN: $AddrColor$IP4$NormalColor($Iface) "
[ "$IP4" != "" ] && print_line "DHCP: $AddrColor${DHCP:-n/a}$NormalColor, Biezace dzierżawy DHCP: $AddrColor$dhcp2$NormalColor "
[ "$IP6" != "" ] && print_line "LAN: $AddrColor$IP6$NormalColor($Iface)"Nie masz czasami za dużo? Ta linia:
proto: none, uptime: 2d 01:34:09, rx/tx: 18.3GB/570.8MB
Świetny skrypt ale u mnie wywala takie błędy:
Wed Aug 17 08:33:13 2016 daemon.err uhttpd[7594]: PHP Warning: Module 'session' already loaded in Unknown on line 0
Wed Aug 17 08:37:15 2016 daemon.err uhttpd[7594]: PHP Warning: Module 'json' already loaded in Unknown on line 0
Wed Aug 17 08:37:15 2016 daemon.err uhttpd[7594]: PHP Warning: Module 'session' already loaded in Unknown on line 0
Wed Aug 17 09:12:44 2016 daemon.err uhttpd[7594]: PHP Warning: Module 'json' already loaded in Unknown on line 0
Wed Aug 17 09:12:44 2016 daemon.err uhttpd[7594]: PHP Warning: Module 'session' already loaded in Unknown on line 0I czy ktoś może się podzielić całym skryptem ze wszystkimi zmianami?
Ale co ma ten skrypt wspólnego z uhttpd i php? Przecież do zamiennik mojego sysinfo jest, do uruchomienia w konsoli.
Cezary a bo ja wiem. Po wywołaniu w konsoli pod koniec pokazuje takie błędy.
No to masz błędy w php/konfiguracji, nic wspólnego z tym skryptem to nie ma.
Też tak sądzę. Trzeba się chyba go pozbyć.
Nie masz czasami za dużo? Ta linia:
proto: none, uptime: 2d 01:34:09, rx/tx: 18.3GB/570.8MB
no tak to wyglada - nie bardzo wiem gdzie jest bląd w skrypcie - patrzac na uptime sa 3 wartosci :
System uptime: 2d 01:34:44
proto: dhcp, uptime: 2d 01:34:04
proto: none, uptime: 2d 01:34:09
Strony Poprzednia 1 … 5 6 7 8 9 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Skrypt /sbin/sysinfo.sh
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc