Wiem, to jest świetne
Dzięki!
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez Bruno
Wiem, to jest świetne
Dzięki!
Super, dziękuję.
Jeszcze jedna rzecz. Podczas logowania się przez sh, wyświetla się taki fajny monit o parametrach routera, obciążeniu routera. Czy da się go wywołać na żądanie? Czy jedynie podczas pierwszego logowania się do routera?
Ok, bo wyżej wspomniałeś, że tmp mam zawolony, więc co mogę usunąć, żeby poprawić działanie sysupgrade ?
Ideologicznie /bin nie jest odpowiednim miejscem do przechowywania takich rzeczy, tam powinny być tylko binarki. Ideologicznie, bo to linux i możesz sobie to umieścić prawie wszędzie gdzie chcesz, system nie dba o to. Ale ideologicznie powinieneś to zrobić np. w /etc.
Wobec tego będę pamiętać, żeby wrzucić do /etc. czy podczas sysupgrade również muszę wrzucić do wykluczeń plik mail.txt z folderu etc? Rozumiem, że skrypt tester.sh mogę zostawić w bin, czy również powinienem wrzucić do /etc.
Bruno napisał/a:2. Przy Owut check bardzo często router się restartuje, czy to wynika z przepełnienia pamięci urządzenia ?
Owut ściąga pliki i gotowe obrazy do /tmp. Jeżeli masz /tmp zawalony to tak, może się system przekręcać z powodu braku pamięci.
Czy mogę śmiało usunąć cały folder /tmp ?
0.db opkg-lists
TZ overlay
adblock-backup owut-failures-feeds.html
adblock-report resolv.conf
board.json resolv.conf.d
collectd.conf rrd
dhcp.leases run
dnsmasq.d shm
etc spool
hosts state
lib sysinfo
lock tmp
log usr
luci-indexcache.21dd52e2.json
Gdzie są ustawienia systemowe, że np. cat /bin/mail.txt | msmtp - t
msmtp działa bez ścieżki dostępu, a do pliku mai.txt musiałem dodać ścieżkę.
2. Przy Owut check bardzo często router się restartuje, czy to wynika z przepełnienia pamięci urządzenia ?
zrobiłem z komendą --force, bo nie było co aktualizować i jest ok ![]()
Plik mail.txt przeniosłem do /bin w to samo miejsce co tester.sh
Wygląda, że teraz sysupgrade nie kasuje tych moich skryptów. Zobaczę jeszcze przy kolejnym owut upgrade jak się pojawią nowe aktualizacje.
Dodałem dwa pliki: mail.txt i /bin/tester.sh do /etc/sysupgrade.conf
Czy to wystarczy, aby sysupgrade nie skasowało tego skryptu i pliku txt ?
Cezary, przepraszam że zawracam głowę
Ale jesteś dla mnie kompendium wiedzy, wolę się dopytać niż uczyć na błędach. Bardzo dziękuję za każdą Twoją odpowiedź i błyskawiczne wsparcie ![]()
Przy okazji, czy owut upgrade skasuje skrypt z BIN tester.sh ? Mam wrażenie, że tak się teraz stało po aktualizacji owut upgrade.
zastanawiam się czy nie lepiej byłoby zamiast restartu WAN robić restart całego routera? Czy komenda reboot nie byłaby pewniejsza?
Czy tak będzie ok?
#!/bin/sh
logger "[$(date)] CRON: Skrypt dziala"
if ! ping -q -c 1 -W 5 google.com > /dev/null; then
logger "Brak internetu, probuje wznowic"
ifup wan
for i in $(seq 1 20); do
sleep 3
if ping -q -c 1 -W 5 google.com > /dev/null; then
logger "Polaczenie przywrocone, wysylam maila"
cat mail.txt | msmtp - t
break
fi
done
fiDziękuję za wyjaśnienie. Wszystko powinno działać. Czy ten skrypt niżej można rozbudować, żeby w logread był widoczny proces testowania połączenia itp?
Czy da się dodać polskie znaki? W Vi zastępuje mi polskie znaki...
#!/bin/sh
echo "$(date) cron dziala" >> /tmp/tester.log
if ! ping -q -c 1 -W 5 google.com > /dev/null; then
echo "Brak internetu, probuje wznowic" >> /tmp/tester.log
ifup wan
for i in $(seq 1 20); do
sleep 3
if ping -q -c 1 -W 5 google.com > /dev/null; then
echo "Polaczenie przywrocone, wysylam maila" >> /tmp/tester.log
cat mail.txt | msmtp -t >> /tmp/msmtp.log 2>&1
break
fi
done
else
echo "Internet jest OK" >> /tmp/tester.log
fiSugerowałem się Twoim poradnikiem Automatyczny restart połączenia https://eko.one.pl/?p=openwrt-3g#automa … rtpoczenia
Następnie można dodać wywołanie tego skryptu do crona i uruchamiamy go:
# /etc/init.d/cron stop
# echo "*/2 * * * * /bin/tester.sh" >> /etc/crontabs/root
# /etc/init.d/cron enable
# /etc/init.d/cron startOstatecznie crontab wygląda tak:
00 6 * * 1 sleep 70 && touch /etc/banner && reboot
00 7 * * * sync && echo 3 > /proc/sys/vm/drop_caches
00 19 * * * sync && echo 3 > /proc/sys/vm/drop_caches
00 22 * * * sync && echo 3 > /proc/sys/vm/drop_caches
*/1 * * * * /bin/tester.shOprócz moich wcześniejszych ustawień do konserwacji routera dodałem jedynie ostatni zapis.
Teraz widzę w logach, że cron co minutę uruchamia skrypt tester.sh i wszystko działa.
Czy mogę pominąć te opcje jego wyłączania/włączania czyli:
/etc/init.d/cron stop
/etc/init.d/cron enable
/etc/init.d/cron startGdy skrypt uruchomię ręcznie wszystko działa. Po przywróceniu połączenia i po ponownym uruchomieniu WAN , połączenia się wznawia, a mail wysyła. problem był w ścieżce do treści mail.txt. Usunąłem ścieżkę i zostawiłem sam mail.txt i msmtp -t czyli
cat mail.txt | msmtp -t >> /tmp/msmtp.log 2>&1
Niestety przez CRON'a nie chce się uruchomić lub uruchamia się jedynie w zakresie: ifup wan.
Można zweryfikować jakie czynności wykonuje CRON, bo w logoach widzę jedynie jak wystąpi jakiś błąd, ale to widziałem podczas konfiguracji crontab, ale po naprawie błedu, nie widzę czy CRON się wykonuje i co dokładnie robi.
Te komedy muszą być?
/etc/init.d/cron stop
/etc/init.d/cron enable
/etc/init.d/cron start
Walczę dalej i mam pytanie. do tej pory w Cronie miałem ustawione to:
00 6 * * 1 sleep 70 && touch /etc/banner && reboot
00 7 * * * sync && echo 3 > /proc/sys/vm/drop_caches
00 19 * * * sync && echo 3 > /proc/sys/vm/drop_caches
00 22 * * * sync && echo 3 > /proc/sys/vm/drop_cachesCzy po dodaniu poleceń w wątku dot. przywracania połączenia tj.
/etc/init.d/cron stop
echo "*/1 * * * * /bin/tester.sh" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start Będzie działać również raz w tygodniu reboot routera i kasowanie cache'u ?
Czy nie wystarczy jedynie dodać tego:
echo "*/1 * * * * /bin/tester.sh" >> /etc/crontabs/rootNiestety skrypt z dodanym powiadomieniem nie chce się uruchamiać w zakresie wysłania mailu. Trochę go zmodyfikowałem tj.
echo "$(date) cron dziala" >> /tmp/tester.log
if ! ping -q -c 1 -W 5 google.com > /dev/null; then
echo "Brak internetu, probuje wznowic" >> /tmp/tester.log
ifup wan
for i in $(seq 1 20); do
sleep 3
if ping -q -c 1 -W 5 google.com > /dev/null; then
echo "Polaczenie przywrocone, wysylam maila" >> /tmp/tester.log
cat /bin/mail.txt | /usr/bin/msmtp -t >> /tmp/msmtp.log 2>&1
break
fi
done
else
echo "Internet jest OK" >> /tmp/tester.log
fiJeśli chciałbyś mieć natychmiastowe powiadomienia o tym że utraciłeś łączność to poniżej moje rozwiązanie:
- VMka z postawionym Zabbixem w lokalizacji innej niż sam router
- tunel Zerotier łączący router z OpenWRT z tą VMką
- Zabbix odpala co 60sek ping i sprawdza czy host (router) jest dostępny. Jeśli nie, to wysyła info na maila i SlackaW planach integracja tego z Mini-SNMP
Oczywiście ma to sens jeśli do monitoringu masz więcej urządzeń i ta VMka będzie miała jakiś ekonomiczny sens lub gdy możesz ją postawić gdzieś za free. Zamiast Zabbixa można też napisać swoje skrypty bo to jednak większe narzędzie. Chodzi głównie o to aby monitorować to z zewnątrz - wtedy info masz szybciej a nie dopiero jak urządzenie się zrestartuje
Wygląda super, ale u mnie to raczej 1 urządzenie, do zastosowań domowych. Bardziej zabawa, żeby wiedział bez sprawdzania logów że skrypt zadziałał i podniósł WAN po jakimś incydencie ![]()
Na razie coś nie chce do końca działać, jak wywołuje skrypt to nie restartuje WAN, ale z CRON chyba działa, obniżłem częstotliwość wykonania skryptu do 1 minuty tak łatwiej testować.
Bruno napisał/a:ok, dałem nawiasy, żeby całość uruchomiła się w tle "&". Ale nie wiem czy to potrzebne
Jak wolisz. Wysyłanie i tak ideologicznie powinno być na hotplugu przy podniesieniu interfejsu wan.
Ok, to wyrzucę "&", dziękuję.
ok, dałem nawiasy, żeby całość uruchomiła się w tle "&". Ale nie wiem czy to potrzebne ![]()
czyli skrypt będzie wyglądał tak ?:
#!/bin/sh
if ! ping -q -c 1 -W 10 google.com > /dev/null; then
(
ifup wan
sleep 15
cat mail.txt | msmtp -t
) &
fiOk, więc zostanę przy msmtp, męczyłem się, aby uruchomić wysyłanie prez smtp, ale wreszcie mi się udało. Trochę zabawy, aby dodać hasło do aplikacji, ale teraz działa jak trzeba. Czy ping w skrypcie restartującym WAN to trochę nie za krótko? Skrypt w default wysyła ping i jeżeli w ciągu 10 sek. nie otrzyma odpowiedzi realizuje procedurę "ifup wan". Cron uruchamia skrypt co 2 minuty. Zastanawiam się czy podnieść interwał w CRONie na 5 - 10 minut ? Czy wykonanie co 2 minuty nie obciąża bardziej systemu? Czy ma to w ogóle znaczenie dla pracy routera?
Ja dodałem tak w skrypcie tester.sh:
#!/bin/sh
if ! ping -q -c 1 -W 10 google.com > /dev/null; then
(ifup wan) & cat mail.txt | msmtp -t
fiPo procedurze ifup wan wysyła maila. Czy da się to jakoś opóźnić, żeby np. podniesieniu interfejsu WAN wysyłał maila, ale np. po 15 sekundach, tyle mniej więcej zajmuje podniesienie WAN. Podczas testów wykonuje ifup wan i od razu wysyła maila, ale wiadomo nie ma netu, więc wyskakuje błąd.
root@Router:~# sh -x /bin/tester.sh
+ ping -q -c 1 -W 10 google.com
ping: sendto: Network unreachable
+ ifup wan
+ cat mail.txt
+ msmtp -t
msmtp: cannot locate host smtp.gmail.com: Try again
msmtp: could not send mail (account default from /etc/msmtprc)Szukam tego pakietu do poczty: ssmtp, ale nie odnajduje go, czy został wycofany? mSMTP jest, ale zajmuje 36 kb
Dostępne są takie:
msmtp 1.8.26-r1 39.98 KiB msmtp is an SMTP client. In the default mode, it transmits a mail to…
msmtp-mta 1.8.26-r1 1.12 KiB msmtp is an SMTP client. In the default mode, it transmits a mail to…
msmtp-nossl 1.8.26-r1 36.16 KiB msmtp is an SMTP client. In the default mode, it transmits a mail to…
msmtp-queue 1.8.26-r1 9.97 KiB msmtp is an SMTP client. In the default mode, it transmits a mail to…
sh -x /bin/tester.sh
Widzisz co robi i jak robi. Odłącz kabel i uruchom to kilka razy, za którymś tam powinien wykonać akcję którą masz w skrypcie.
Ok. Ustawie na krótsze interwały, żeby nie czekać 30 min. I zobaczę czy działa jak należy. Dziękuję Cezary
Jak później przetestować działanie tych skryptów i komend cron? Czy poprzez odłączenie przewodu Ethernet od routera? Czy można wywołać sytuacje braku internetu? Jakie ew. komendy do sprawdzenia logów?
Tak, zależy mi na tym żeby cron sprawdzał czy ma połączenie. Często jest tak, że traci połączenie z wan, ale lan działa i można wbić się do routera przez Lan. Np. Zawiesił mi się wczoraj, a skrypt z crona wykonał się dziś o 6 rano i router wrócił do żywych.
Nie. Cron to nie zależy twór, jeżeli koniecznie chcesz wysłać mejla przed restartem to zrób to w skrycie tester.sh przed restartem. Zrobiłeś sobie skrypt, prawda?
Tak, wrzucę go zaraz do bin i dodam komendę do wysłania maila. Muszę tylko konto gmailowe założyć, bo widzę że tutaj jest hasło przechowywane bez szyfrowania ![]()
eko.one.pl → Posty przez Bruno
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc