176

Odp: Skrypt /sbin/sysinfo.sh

Rafciq napisał/a:

Aby informacja wyświetlała się automatycznie po zalogowaniu należy do pliku /etc/profile dodać na końcu linie (o ile jej już tam nie ma) :

[ -x /sbin/sysinfo.sh ] && /sbin/sysinfo.sh -sr

OpenWrt AA 12.09, wrzuciłem ten skrypt od Rafciq do /sbin oraz dodałem linijkę do /etc/profile ale nie uruchamia się automatycznie sad
Gdzieś wyczytałem, że trzeba dodać jakieś 2 linijki a nie jedną w /etc/profile tylko jakie?

177

Odp: Skrypt /sbin/sysinfo.sh

/etc/profile wykonuje się po zalogowaniu. Więc po prostu uruchamia to co tam jest. Uruchom ręcznie  /etc/profile i zobacz co zrobi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

178 (edytowany przez jzef 2016-08-21 12:07:43)

Odp: Skrypt /sbin/sysinfo.sh

Już działa. Musiałem zmienić prawa dostępu do pliku:

cd /sbin
chmod +x sysinfo.sh

oraz dodać taką linijkę do /etc/profile:

[ -f /tmp/.failsafe -a -f /etc/banner.failsafe ] && cat /etc/banner.failsafe || /sbin/sysinfo.sh

tylko, że w AA nie mam plików /tmp/.failsafe ani /etc/banner.failsafe

Działa też jak po prostu dodam linijkę:

/sbin/sysinfo.sh

więc nie wiem do czego są te opcje -f lub -x

179 (edytowany przez jzef 2016-08-21 12:53:54)

Odp: Skrypt /sbin/sysinfo.sh

Podobają mi się kolory i porządek w skrypcie Rafciq 1.12 który działa na AA. Najnowszy skrypt nie działa niestety w AA. Mam, prośbę - czy mógłby ktoś przerobić wersję 1.12 skryptu tak aby zamiast Machine: n/a, Name: OpenWrt wyświetlało informację system type z cat /proc/cpuinfo tak jak w skrypcie Cezarego? Teraz mam tak:

----------------------------------------------------------------
| Machine: n/a, Name: OpenWrt                                  |
| System uptime: 00:28:56, Now: 2016-08-21 12:34:26            |
| System load: 0.00, 0.01, 0.05                                |

a żeby było tak:

----------------------------------------------------------------
| System type: bcm63xx/HW553 (0x6358/0x00A1)                   |
| System uptime: 00:28:56, Now: 2016-08-21 12:34:26            |
| System load: 0.00, 0.01, 0.05                                |

Z góry Dzięki.

180

Odp: Skrypt /sbin/sysinfo.sh

https://github.com/obsy/packages/blob/m … sysinfo.sh

linie 14-18

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

181

Odp: Skrypt /sbin/sysinfo.sh

Mam po prostu skopiować i wkleić te linie z Twojego skryptu do skryptu Rafciq ?

182

Odp: Skrypt /sbin/sysinfo.sh

Nie, pokazałem ci sposób w jaki ja to odczytuje. Skrypt Rafciq podstawia to pod inną zmienną.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

183 (edytowany przez jzef 2016-08-21 21:30:25)

Odp: Skrypt /sbin/sysinfo.sh

Cezary napisał/a:

Nie, pokazałem ci sposób w jaki ja to odczytuje. Skrypt Rafciq podstawia to pod inną zmienną.

Przeglądałem oba kody skryptów ale nie wiem jak zmodyfikować kod Rafciq aby osiągnąć oczekiwany rezultat - dlatego napisałem tutaj w tej sprawie.

P.S. Trzeba zwiększyć szerokość z 60 na 70 bo czasami nie mieści się linijka WLAN:

local Width=70

184

Odp: Skrypt /sbin/sysinfo.sh

Zmień to :

print_machine() {
    local Machine=""
    local HostName=$(uci -q get system.@system[0].hostname)
    [ -e /tmp/sysinfo/model ] && Machine=$(cat /tmp/sysinfo/model)
    print_line     "Machine: $MachineColor${Machine:-n/a}$NormalColor,"\
                "Name: $MachineColor${HostName:-n/a}$NormalColor"
}

na to i będzie Ci czytać z  cat /proc/cpuinfo

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"
}
Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

185 (edytowany przez jzef 2023-11-12 15:30:38)

Odp: Skrypt /sbin/sysinfo.sh

manguscik napisał/a:

Zmień to ... na to...

Nic to nie dało sad

Ale poprawiłem sam i działa na AA:

print_machine() {
    local Machine=$(awk -F: '/system type/ {print $2}' /proc/cpuinfo)
    print_line     "System type:$MachineColor$Machine$NormalColor"
}

Skrypt testowany w AA i CC: sysinfo.sh by Gelip

186

Odp: Skrypt /sbin/sysinfo.sh

Troszeczkę przebobiłem skrypt pod swoje potrzeby (głównie wywalenie kolorowania składni + nieco inne formatowanie taktu) i niestety coś się musiało oczywiście zepsuć gdyż po wywołaniu skryptu dostaję takie info:

RootFS:
T: 975.9MB, U: 43.5MB, F: 932.4MB
Memory:
T: 123.1MB, U: 29.1MB, F: 94.0MB
T: 0B, U: 0B, F: 0B

Ostatnia linijka pokazuje same zera hmm a tu kawałek skryptu:

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 Free=$(echo "$DeviceInfo" | cut -f 4)
    [ "$Total" -gt 0 ] && echo "$2:"
    echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
}

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 Free=$(echo "$Memory" | cut -f 4)
    echo "Memory:"
    echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
}

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 Free=$(echo "$Swap" | cut -f 4)
    [ "$Total" -gt 0 ] && echo "Swap:"
              echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
              echo ""
}

Co jest tu nie tak? Posiadam najnowsze wydanie WRT Cezarego.

WinISO.pl - Archiwum polskich wersji systemów Windows, Windows Serwer i Office

187

Odp: Skrypt /sbin/sysinfo.sh

Cały skrypt pokaż.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

188

Odp: Skrypt /sbin/sysinfo.sh

Proszę

#!/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 StartRuler="1"
local EndRuler="1"
local LastErrors="1"
local ExtraName=""
local ExtraValue=""

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: $(human_readable $(echo "$RXTX" | cut -f 1))/$(human_readable $(echo "$RXTX" | cut -f 2))"
}

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_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
    echo "Machine: ${Machine:-n/a}, Name: ${HostName:-n/a}"
}

print_times() {
    local SysUptime=$(cut -d. -f1 /proc/uptime)
    local Uptime=$(uptime_str $SysUptime)
    local Now=$(date +'%Y-%m-%d %H:%M:%S')
    echo "System uptime: $Uptime, Now: $Now"
}

print_loadavg() {
    local LoadAvg=$(awk '{printf" %s, %s, %s",$1,$2,$3}' /proc/loadavg 2>/dev/null)
    echo "System load: $LoadAvg"
    echo ""
}

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 Free=$(echo "$DeviceInfo" | cut -f 4)
    [ "$Total" -gt 0 ] && echo "$2:"
    echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
}

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 Free=$(echo "$Memory" | cut -f 4)
    echo "Memory:"
    echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
}

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 Free=$(echo "$Swap" | cut -f 4)
    [ "$Total" -gt 0 ] && echo "Swap:"
              echo "T: $(human_readable $Total), U: $(human_readable $Used), F: $(human_readable $Free)"
              echo ""
}

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" != "" ] && echo "WAN: $IP4($Iface), Brama: ${Gateway4:-n/a}"
                        [ "$IP6" != "" ] && echo "WAN: $IP6($Iface), Brama: ${Gateway6:-n/a}"
                        echo "Prot.: ${Protocol:-n/a}, Uptime: $(uptime_str $Uptime)$(device_rx_tx $Iface)"
                        [ "$DNS" != "" ] && echo "DNS: $DNS"
                        echo ""
                    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)
                                        local DHCPClientList=$(wc /var/dhcp.leases | cut -d' ' -f9)
                    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" != "" ] && echo "LAN: $IP4($Iface),"
                                        [ "$IP4" != "" ] && echo "DHCP: ${DHCP:-n/a}, Dzierzawy: $DHCPClientList"
                    [ "$IP6" != "" ] && echo "LAN: $IP6($Iface)"
                    echo ""
                fi
            done
        fi
    done
}

print_wlan() {
    echo "WiFi status"
    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)
        echo "SSID: $SSID($MODE),"
        echo "Kanal: $CHANNEL, Polacz.: ${CNT:-0}"
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="$VPN(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="$VPN(cli)"
                Connection="Down"
                ifconfig $Device &>/dev/null && Connection="Up"
            fi
            echo "VPN: $Mode, conn: $Connection$(device_rx_tx $Device)"
        fi
    done
}

print_machine
print_times
print_loadavg
print_disk
print_memory
print_swap
print_wan
print_lan
print_wlan
print_vpn

exit 0
WinISO.pl - Archiwum polskich wersji systemów Windows, Windows Serwer i Office

189

Odp: Skrypt /sbin/sysinfo.sh

@Cezary kiedyś się Ciebie pytałem odnośnie tego "local" na shoutboxie i nie mogę sobie przypomnieć co mi doradziłeś

root@TurrisOmnia:~# /home/sysinfo.sh
/home/sysinfo.sh: local: line 24: not in a function
/home/sysinfo.sh: local: line 25: not in a function
/home/sysinfo.sh: local: line 26: not in a function
/home/sysinfo.sh: local: line 27: not in a function
/home/sysinfo.sh: local: line 28: not in a function
/home/sysinfo.sh: local: line 29: not in a function
/home/sysinfo.sh: local: line 30: not in a function
/home/sysinfo.sh: local: line 31: not in a function
/home/sysinfo.sh: local: line 32: not in a function
expr: syntax error
BusyBox v1.25.1 (2017-10-17 15:28:21 CEST) multi-call binary.

Usage: seq [-w] [-s SEP] [FIRST [INC]] LAST

Print numbers from FIRST to LAST, in steps of INC.
FIRST, INC default to 1.

        -w      Pad to last with leading zeros
        -s SEP  String separator
 | System type:
 | System uptime: 5d 01:02:08, Now: 2017-11-10 12:06:33
 | System load: 0.04, 0.01, 0.00
df: /overlay: can't find mount point
sh: 0: unknown operand
sh: 0: unknown operand
sh: 0: unknown operand
 | Flash: total: 0B, used: 0B, %, free: 0B
 | Memory: total: 2.0GB, used: 114.2MB, 5.6%, free: 1.9GB
 | WAN: 192.168.0.2/24(eth1), gateway: 192.168.0.1
 | proto: static, uptime: 2d 16:08:47, rx/tx: 13.7GB/791.4MB
 | LAN: 192.168.1.1/24
Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

190

Odp: Skrypt /sbin/sysinfo.sh

Używasz skryptu od Rafciq, zamień na #!/bin/bash wskazanie shella w pliku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

191

Odp: Skrypt /sbin/sysinfo.sh

Cezary napisał/a:

Używasz skryptu od Rafciq, zamień na #!/bin/bash wskazanie shella w pliku.

Coś troszkę zmieniło:

/home/sysinfo.sh: line 24: local: can only be used in a function
/home/sysinfo.sh: line 25: local: can only be used in a function
/home/sysinfo.sh: line 26: local: can only be used in a function
/home/sysinfo.sh: line 27: local: can only be used in a function
/home/sysinfo.sh: line 28: local: can only be used in a function
/home/sysinfo.sh: line 29: local: can only be used in a function
/home/sysinfo.sh: line 30: local: can only be used in a function
/home/sysinfo.sh: line 31: local: can only be used in a function
/home/sysinfo.sh: line 32: local: can only be used in a function
expr: syntax error
BusyBox v1.25.1 (2017-10-17 15:28:21 CEST) multi-call binary.

Usage: seq [-w] [-s SEP] [FIRST [INC]] LAST

Print numbers from FIRST to LAST, in steps of INC.
FIRST, INC default to 1.

        -w      Pad to last with leading zeros
        -s SEP  String separator
 | System type:
 | System uptime: 5d 06:03:04, Now: 2017-11-10 17:07:29
 | System load: 0.00, 0.00, 0.00
df: /overlay: can't find mount point
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
 | Flash: total: 0B, used: 0B, %, free: 0B
 | Memory: total: 2.0GB, used: 109.5MB, 5.4%, free: 1.9GB
 | WAN: 192.168.0.2/24(eth1), gateway: 192.168.0.1
 | proto: static, uptime: 2d 21:09:43, rx/tx: 14.1GB/811.9MB
 | LAN: 192.168.1.1/24
Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

192

Odp: Skrypt /sbin/sysinfo.sh

Masz basha zainstalowanego?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

193

Odp: Skrypt /sbin/sysinfo.sh

Cezary napisał/a:

Masz basha zainstalowanego?

raczej tak:

root@TurrisOmnia:/mnt/sda1/leech_1.6-1_all# opkg list-installed |grep bash
bash - 4.4.11-1
Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

194

Odp: Skrypt /sbin/sysinfo.sh

Wystaw gdzieś ten skrypt którego używasz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

195

Odp: Skrypt /sbin/sysinfo.sh

Używam ostatniej wersji skryptu użytkownika @Rafciq i jedynie zmieniłem ten #!/bin/bash

https://github.com/Rafciq/openwrt/blob/ … sysinfo.sh

Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

196

Odp: Skrypt /sbin/sysinfo.sh

Pobierz, skasuj słówka local. Działa, sprawdzałem na lede.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

197

Odp: Skrypt /sbin/sysinfo.sh

Faktycznie, już lepiej to wygląda:

root@TurrisOmnia:/# /home/sysinfo.sh
/home/sysinfo.sh: line 27: Rouler: command not found
/home/sysinfo.sh: line 28: NormalColor: command not found
/home/sysinfo.sh: line 29: MachineColor: command not found
/home/sysinfo.sh: line 30: ValueColor: command not found
/home/sysinfo.sh: line 31: AddrColor: command not found
/home/sysinfo.sh: line 32: RXTXColor: command not found
 --------------------------------------------------------------------------
 | System type:                                                           |
 | System uptime: 5d 11:12:12, Now: 2017-11-10 22:17:12                   |
 | System load: 0.03, 0.01, 0.00                                          |
df: /overlay: can't find mount point
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
/home/sysinfo.sh: line 73: [: -gt: unary operator expected
 | Flash: total: 0B, used: 0B, %, free: 0B                                |
 | Memory: total: 2.0GB, used: 110.8MB, 5.5%, free: 1.9GB                 |
 | WAN: 192.168.0.2/24(eth1), gateway: 192.168.0.1                        |
 | proto: static, uptime: 3d 02:18:51, rx/tx: 15.6GB/905.6MB              |
 | LAN: 192.168.1.1/24                                                    |
 --------------------------------------------------------------------------
Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

198

Odp: Skrypt /sbin/sysinfo.sh

Nie nie. Ma być Width=0 itd bez spacji na początku itd.

Inna sprawa że /overlay nie masz, wiec popraw sobie skrypt.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

199 (edytowany przez DarioX7 2017-11-11 01:11:21)

Odp: Skrypt /sbin/sysinfo.sh

Jednak musiałem się pofatygować z WinSCP i oto rezultat:

root@TurrisOmnia:/# /home/sysinfo.sh
 ----------------------------------------------------------------
 | Machine: Turris Omnia, Name: TurrisOmnia                     |
 | System uptime: 5d 11:32:44, Now: 2017-11-10 22:37:43         |
 | System load: 0.01, 0.02, 0.00                                |
 | RootFS: total: 7.3GB, used: 228.9MB, 3.1%, free: 7.1GB       |
 | Memory: total: 2.0GB, used: 114.6MB, 5.7%, free: 1.9GB       |
 | WAN: 192.168.0.2/24(eth1), gateway: 192.168.0.1              |
 | proto: static, uptime: 3d 02:39:23, rx/tx: 15.6GB/906.2MB    |
 | LAN: 192.168.1.1/24(br-lan), dhcp: n/a                       |
 ----------------------------------------------------------------
Failed to find log object: Not found
Failed to find log object: Not found
Failed to find log object: Not found
Failed to find log object: Not found
Failed to find log object: Not found
Failed to find log object: Not found

Ciekawe czemu nie pokazuje WLAN

Edit 1:

Udało mi się poprawić działanie:

root@TurrisOmnia:/# /home/sysinfo.sh
 ----------------------------------------------------------------
 | Machine: Turris Omnia, Name: TurrisOmnia                     |
 | System uptime: 5d 12:59:59, Now: 2017-11-11 00:04:58         |
 | System load: 0.02, 0.02, 0.00                                |
 | RootFS: total: 7.3GB, used: 228.9MB, 3.1%, free: 7.1GB       |
 | Memory: total: 2.0GB, used: 113.5MB, 5.6%, free: 1.9GB       |
 | WAN: 192.168.0.2/24(eth1), gateway: 192.168.0.1              |
 | proto: static, uptime: 3d 04:06:38, rx/tx: 15.6GB/906.8MB    |
 | LAN: 192.168.1.1/24(br-lan), dhcp: n/a                       |
 | WLAN: Turris5.0(ap), ch: 36, conn: Down                      |
 | WLAN: Turris2.4(ap), ch: auto, conn: Down                    |
 ----------------------------------------------------------------

w skrypcie u @Rafciq w funkcji print_wlan()  w warunku pętli brakowało cudzysłowowy i apostrofa, gdzie wypatrzyłem w oryginalnym skrypcie u Cezarego

Topton Intel Core i3-N305 16GB RAM 6x i226-V 2.5GbE
Turris Omnia 2GB
D-LINK DIR3060
WR1043ND

200 (edytowany przez jzef 2023-11-12 15:07:36)

Odp: Skrypt /sbin/sysinfo.sh

Czy ten skrypt - mój z pastebin.com dobrze pokazuje wolną pamięć 31.3MB:

| Memory: total: 59.8MB, used: 28.5MB, 47.7%, free: 31.3MB               |

bo jak dam df -h to pokazuje iż w folderze /tmp mam dostępne 13.4M:

Filesystem                Size      Used Available Use% Mounted on
rootfs                   12.5M      8.4M      4.1M  67% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    29.9M     16.5M     13.4M  55% /tmp
/dev/mtdblock3           12.5M      8.4M      4.1M  67% /overlay
overlayfs:/overlay       12.5M      8.4M      4.1M  67% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 7.5G      5.2M      7.5G   0% /tmp/extstor

Polecenie top pokazuje iż wolnego jest tylko około 2MB:

Mem: 59388K used, 1884K free

Polecenie cat /proc/meminfo | grep MemFree pokazuje podobnie jak top:

MemFree:            2036 kB

Polecenie free pokazuje podobnie:

             total         used         free       shared      buffers
Mem:         61272        59244         2028        16900         6476
-/+ buffers:              52768         8504
Swap:            0            0            0

To już nie wiem ile faktycznie mam wolnej pamięci - pytam w związku z tym postem gdzie przeniosłem montowanie pendrive'a do RAM i nie wiem czy napisałem prawdę z tym 1000 plików .jpg które może zapisać motion w RAM: https://eko.one.pl/forum/viewtopic.php? … 15#p292415