|
Conky + Lan + SSH
Skorpion1980 - 02-06-2009 19:33
Witam
Chciałbym wyświetlić 3 obrazy conky na swoim komputerze: 1. Lokalny 2. Maszyna odległa ale na Lanie 3. Maszyna odległa poza moim netem.
i doszedłem do tego momentu że umiem podłączyć się do maszyn odległych komendą: ssh -X konto@adres ~$conky
no i tutaj następuje problem, bo kiedy mam ustawione że conky wyświetla się na pulpicie to mrugają na zmianę z conky'm z mojej maszyny lokalnej, więc muszę oba odpalać jako oddzielne okna own_window yes
a chciałbym zgrać to z pulpitem.
Z góry mówię że nie mam na myśli nachodzenie się obrazów conky bo każdy ma ustawioną inna pozycje wyświetlania gap_x X gap_y Y
Jeśli ktoś ma na to jakieś rozwiązanie to byłbym wdzięczny za pomoc :-) Za wszelaką pomoc z góry dziękuje :-)
sigo - 02-06-2009 19:45
Uruchamianie w ten sposób conky'ego nie ma sensu. Powiedz jakie informacje potrzebujesz mieć wyświetlane na swoim pulpicie.
Skorpion1980 - 02-06-2009 20:17
Tak więc najważniejsze co bym chciał widzieć z tych odległych maszyn to: 1. uptime 2. obciążenie CPU 3. trzy najbardziej obciążające procesy 4. Obciążenie Ram 5. Obciążenie Swap 6. trzy najbardziej zajmujące Ram procesy 7. Ilość zajętego miejsca na dysku "/" 8. Ilość zajętego miejsca na dysku "/home" 9. Zalogowani użytkownicy 10.Aktualny transfer internetowy Do i Z 11. Totalny transfer internetowy Do i Z
Myśle że to wszystkie potrzebne dla mnie dane które bym potrzebował widzieć :)
lis6502 - 02-06-2009 21:56
Najwygodniej byłoby poczytać ten temat. Jeśli koniecznie upierasz się na conkym, proponuję napisać skrypt, który zrzuci te dane (ze zdalnych maszyn) do jednego loga. Następnie loga możesz nawet netcatnąć czy telnetować do siebie, sparsować i przerobić dane dla conky (polecam funkcję ${tail}).
sigo - 02-06-2009 22:48
Ja na Twoi miejscu napisałbym skrypt wyciągający te dane, a do dwóch ostatnich punktów użył vnstat. Wszystko generowałoby się na serwerze, a conky co określoną ilość czasu pobierałby ten plik i wyświetlał dane u Ciebie na pulpicie.
Tylko od Twojej inwencji zależy w jaki sposób to rozwiążesz - można nawet dodać autoryzację (by ograniczyć dostęp do pliku niepożądanym osobnikom - conky robił by to automatycznie).
Zastanawiam się, czy czegoś podobnego nie zastosować u siebie. Jeżeli napiszę taki skrypt, umieszczę go tutaj.
Skorpion1980 - 03-06-2009 15:43
No dzięki za rady, wybiorę zaraz jedną z opcji i spróbuje sam powalczyć. Co do autoryzacji to mam użyty na swoich serwerach klucze publiczne więc myślę że bezpieczeństwo jest w miarę zapewnione, choć nigdy nic nie wiadomo. Co do pisania skryptów to moja wiedza dopiero raczkuje w tej kwestii, ale jak to mówią, dla chcącego nic trudnego.
sigo - 03-06-2009 16:05
Jeżeli masz na serwerze postawiony apache, to możesz generować statystyki do katalogu dostępnego po www, który będzie zabezpieczony poprzez pliki .ht~, czyli najzwyklejsza autoryzacja http. Taki plik możesz pobrać za pomocą wgeta (jest parametr odpowiadający za autoryzację).
Nie kombinuj z uruchamianiem conky'ego na serwerze, bo to jest naprawdę zły pomysł.
Skorpion1980 - 03-06-2009 16:31
I tak właśnie chce zrobić idąc za twoją radą, chce stworzyć statystyki poprzez www, które zapisze do logów i pobiorę na swoją maszyna, po czym będę próbować wyświetlić to na pulpicie. Oczywiście zdaje sobie sprawę że łatwo powiedzieć a trudniej wykonać, ale nie poddam się tak łatwo ;-)
sigo - 04-06-2009 01:59
Napisałem trochę kodu (nie jest ładny, gdyż nie potrafię pisać w bashu). Pokazuje datę wygenerowania, średnie obciążenie, 3 procesy najbardziej obciążające procesor, zajętą pamięć ram (z pominięciem pamięci zbuforowanej oraz cached - przeszkadza w wiarygodnych wynikach) oraz listę zalogowanych użytkowników.
#!/bin/bash
date=`date +"%d.%m.%Y %H:%M:%S"` load=`awk '{print $1" "$2" "$3}' /proc/loadavg` pcpu=`ps --sort pcpu -eo pid,pcpu,pmem,args | tail -n3 | awk '{print $1"\t"$2"%\t"$3"%\t"$4}'` mtotal=`grep -i memtotal /proc/meminfo | awk '{print $2}'` mfree=`grep -i memfree /proc/meminfo | awk '{print $2}'` mbuffers=`grep -i buffers /proc/meminfo | awk '{print $2}'` mcached=`grep -i cached /proc/meminfo | head -n1 | awk '{print $2}'`
echo -e "Generate:\t${date}" echo -e "Load average:\t${load}\n" echo "Top processes (cpu)" echo -e "PID\tCPU\tMem\tName\n${pcpu}\n" echo -e "Ram:\t$[(${mtotal}-(${mfree}+${mbuffers}+${mcached}))/1024]MiB / $[${mtotal}/1024]MiB\n" echo -e "Users logged on:\n`who`"
Skorpion1980 - 04-06-2009 19:12
Dziękuję, sigo na pewno skrypcik się przyda, jeszcze go dopracuje pod swoje "widzi mi się" i będzie grać. A teraz pytanie jak lepiej pobrać to do conky, czy zrobić zapis skryptu do pliku i pobranie z wyświetleniem czy pobranie bezpośrednie z serwera bez zapisu? Na chwile obecną wiem jak zapisać, pobrać i wyświetlić, ale pobranie bezpośrednie to jakoś nie mogę sobie wyobrazić, a jak wiadomo bez wyobrażenia trudno coś wyrzeźbić ;-)
sigo - 04-06-2009 19:29
Skrypt skonfiguruj i wrzuć na wszystkie serwery, tam uruchamiaj crontabem co jakiś czas (statystyki muszą się generować się do miejsca dostępnego poprzez www). Na swój komputer regularnie (także z użyciem crontaba) pobieraj te statystyki, a conky niech wyświetla wszystko na Twoim pulpicie. W ten sposób niestety nie uzyskasz bardzo aktualnych statystyk - to zależy przede wszystkim, czy masz ograniczony transfer i małą przepustowość łącza do dyspozycji.
Do całego skryptu możesz dodać funkcję ostatnio zalogowanych użytkowników (oraz ich adresy IP) lub ostatnio zablokowanych, którzy próbowali się włamać... co tylko sobie człowiek wymyśli.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|