staging.inyokaproject.org

bash.bashrc - Sysinfos - ethtool ohne root o. STDERR filtern

Status: Ungelöst | Ubuntu-Version: Kubuntu 16.04 (Xenial Xerus)
Antworten |

herrmeier

Anmeldungsdatum:
5. Oktober 2006

Beiträge: 297

Danke fürs Lesen vorab! Ich suche eine Möglichkeit den Befehl

1
ethtool eth0|grep Speed|awk '{print $1, $2}'

ohne die folgende Fehlermeldung auszugeben (STDERR umzuleiten):

1
Cannot get wake-on-lan settings: Operation not permitted

Nun könnte ich ein script erstellen

1
$ sudo vi /usr/local/bin/myethtool.sh

mit dem Inhalt:

1
2
3
#!/bin/bash
exec 2>/dev/null
ethtool eth0|grep Speed|awk '{print $1, $2}'

und ausführbar machen

1
sudo chmod u+x /usr/local/bin/myethtool.sh

Aber eigentlich müsste es doch in der bash.bashrc direkt möglich sein die Fehlermeldung gar nicht erst passieren zu lassen (als root kommt der Fehler nicht) oder direkt im Befehl nur die Fehlermeldung zu filtern. Irgendwie will es aber nicht...Der Fehler sitzt leider vor dem Rechner 😉

Hier die restlichen Sysinfos die ich der bash.bashrc angehängt habe. Nopaste funktiert leider gerade nicht. .

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

echo -e "\033[1;33m Systeminformationen:\033[0m"
echo -e "\033[1;33m erstellt von xxxx am xxxxx (/etc/bash.bashrc)    \033[0m"
echo -e "==================================================================="
echo -e "\033[1;33m Hostname:               \033[0m" `hostname`
echo -e "\033[1;33m Ubuntu Version:         \033[0m"  `lsb_release -d|awk '{print $2, $3, $4}'`
echo -e "\033[1;33m Kernel Version:         \033[0m"  `uname -a | awk '{print $3}'`
echo -e "\033[1;33m CPU-Temperatur:         \033[0m"  `sensors|grep "Core 0" | xargs`
echo -e "==================================================================="
echo -e "\033[1;33m Eingeloggt seit:        \033[0m"  `uptime | awk '{print $1}'`
echo -e "\033[1;33m Systemzeit:             \033[0m"  `date | awk '{print $4}'`
echo -e "\033[1;33m Uptime:                 \033[0m"  `uptime | awk '{print $3 " " $4}' | sed s'/.$//'`
echo -e "==================================================================="
echo -e "\033[1;33m RAM:                    \033[0m" `cat /proc/meminfo|grep 'MemTotal'| awk '{RAM = $2 / 1024 ;print RAM " MB"}'`
echo -e "\033[1;33m Benutzer Speicher       \033[0m" `free|grep Speicher|awk '{used = $3 / 1024 ; print used " MB"}'`
echo -e "\033[1;33m Plattenbelegung ROOT(/) \033[0m" `df -h|grep "sdxx" | awk '{print $3, " von", $2}'`
echo -e "\033[1;33m Plattenbelegung RAID    \033[0m" `df -h|grep "md0" | awk '{print $3, " von", $2}'`
echo -e "\033[1;33m CPU-Auslastung:         \033[0m" `cat /proc/loadavg | awk '{print $1" (1 minute) "$2" (5 minutes) "$3" (15 minutes)"}'`
echo -e "==================================================================="
echo -e "\033[1;33m Benutzer-ID:            \033[0m" `/usr/bin/id`
echo -e "\033[1;33m Benutzername:           \033[0m" `/usr/bin/whoami`
echo -e "\033[1;33m Gruppe:                 \033[0m" `/usr/bin/groups`
echo -e "\033[1;33m Wer ist eingeloggt:     \033[0m" `/usr/bin/users`
echo -e "==================================================================="
echo -e "\033[1;33m WAN-IP(IPv4):           \033[0m" `wget -q -O - "http://ipinfo.io/ip"`
echo -e "\033[1;33m LAN-IP(IPv4):           \033[0m" `ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1`
echo -e "\033[1;33m Netzwerknutzung:        \033[0m" `netstat -N -i | grep eth0 | awk '{if ($4 > 0 && $8 > 0) print $1,sprintf("%.2f",($4/100000))"GiB down",sprintf("%.2f",($8/100000))"GiB up"}' || No Connection!`

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

herrmeier schrieb:

Aber eigentlich müsste es doch in der bash.bashrc direkt möglich sein die Fehlermeldung gar nicht erst passieren zu lassen (als root kommt der Fehler nicht) oder direkt im Befehl nur die Fehlermeldung zu filtern. Irgendwie will es aber nicht...Der Fehler sitzt leider vor dem Rechner 😉

1
2
3
4
5
6
$ ethtool eth0|grep Speed|awk '{print $1, $2}'
Cannot get wake-on-lan settings: Operation not permitted
Speed: 10Mb/s
$ ethtool eth0 2>/dev/null|grep Speed|awk '{print $1, $2}'
Speed: 10Mb/s
$ 

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

rklm schrieb:

Noch etwas einfacher:

1
2
3
4
5
$ ethtool eth0 2>/dev/null|awk '/Speed:/ {print $1, $2}'
Speed: 10Mb/s
$ ethtool eth0 2>/dev/null|awk '/^\tSpeed:/ {print $1, $2}'
Speed: 10Mb/s
$ 

Was auch geht: ich habe einen Alias so definiert:

1
alias noerr='2>/dev/null'

Damit dann

1
2
$ noerr ethtool eth0|awk '/Speed:/ {print $1, $2}'
Speed: 10Mb/s
Antworten |