1

Temat: Prosty skrypt

Witam. Potrzebuję napisać prosty skrypt, niestety nie znam tych linuxowskich komend, ani nic...
Czy mógłby ktoś pomóc i napisać go za mnie?

Skrypt miałby robić ifun wan, sprawdzać czy prędkość internetu jest ponad 100kb/s. Jeśli jest ponad to kończyć pracę, wyświetlić jakiś komunikat. Jeśli nie, to znów wracać i powtarzać ifup wan, sprawdzać prędkoś itd.

Potrzebne jest mi to, ponieważ wykryłem, że czasem po wyczerpaniu transferu Orange i spowolnieniu do 64kb/s - trafia się połączenie, które nie ma "lejka" i można normalnie korzystać z Internetu smile

2

Odp: Prosty skrypt

I tak ten lejek nie jest taki zły, ja na poczatku  mialem lacze radiowe 320kilobitów:)

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

3

Odp: Prosty skrypt

Nie jest złe, ale z 5-6kB/s dużo się zrobić nie da... Kiedyś to było 2-3kB/s, ale po ostatniej umowie "trochę" zwiększyli.

4

Odp: Prosty skrypt

A nie masz w okolicy jakiejś radiowki ?

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

5 (edytowany przez 3TH0 2014-01-29 15:59:12)

Odp: Prosty skrypt

ja to obszedłem


modem 3g do tego 30gb transferu (akurat w sieci Orange za 200zł na znanym portalu aukcyjnym (bo u mnie taki zasięg najlepszy akurat z Orange))

i wygląda to tak

od 23:08 mam net "szczęśliwe godziny" do 05:56

od 05:56 do 23:08 mam net z modemu 3g speedy EDGE (35KB/s) na 3 userów w zupełności starcza nawet na low YT (na 16-17 godzin pobiera ma 300-400mb przy dobrym siedzeniu)


a co do lejka ja zawsze miałem 7-8KB/s czy na starych umowach czy nowych


do szczęścia brakuje skryptu który by restartował router Orange o 23:05 :] z poziomu gargoyle

może ktoś chętny za $.$

6

Odp: Prosty skrypt

Ale wiesz że każde takie sprawdzenie to strata transferu ??

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

7 (edytowany przez Przmus 2014-01-29 16:12:18)

Odp: Prosty skrypt

wabikboy napisał/a:

Ale wiesz że każde takie sprawdzenie to strata transferu ??

Ale co stracę, jak pozostało mi z pakietu 0.0MB?

Właśnie po którymś reconnecie udało mi się uzyskać połączenie bez lejka smile

do szczęścia brakuje skryptu który by restartował router Orange o 23:05 :] z poziomu gargoyle

Do croona sobie dodaj "reboot" lub "ifup wan" o tej godzinie: http://eko.one.pl/?p=openwrt-cron

A nie masz w okolicy jakiejś radiowki ?

Niestety nic... Ogólnie bardzo skomplikowana sprawa z tym internetem u mnie jest, ale w chwili obecnej to tylko net mobilny jest dostępny. Ale na prędkość nie narzekam (~10Mb/s pobieranie, 3Mb/s wysyłanie).

8 (edytowany przez wabikboy 2014-01-29 16:22:08)

Odp: Prosty skrypt

do szczęścia brakuje skryptu który by restartował router Orange o 23:05 :] z poziomu gargoyle

Do croona sobie dodaj "reboot" lub "ifup wan" o tej godzinie: http://eko.one.pl/?p=openwrt-cron

P.S. czytamy uważnie smile "router" nie modem smile

a wracając do sprawy zainstaluj sobie speedtest-cli

potem sprawdz połaczenie:

root@xbian:~# speedtest-cli --simple | grep "Download"
Download: 5.62 Mbit/s
root@xbian:~#

oczywiście prosty skrypt który wyciągnie Ci prędkość połączenia i porówna ze wzorcem jaki mu przypiszesz. smile jak za niski to ifup wan smile

A wracając jeszcze do:

Ale co stracę, jak pozostało mi z pakietu 0.0MB?

Właśnie stracisz jak będziesz testował bo chyba że chodzi Ci o włączenie skryptu ręcznie już po wykorzystaniu danych.

ale uwierz mi każde sprawdzenie trwa od kilku sek. do kilkunastu. więc zanim znajdziesz 'magiczne wrota" może troche czasu upłynąć smile

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

9 (edytowany przez Przmus 2014-01-29 23:42:14)

Odp: Prosty skrypt

wabikboy napisał/a:

P.S. czytamy uważnie smile "router" nie modem smile

Aj, wybacz. Źle wyobraziłem sobie sytuację + nie znam się na tych sprzętach za bardzo.

a wracając do sprawy zainstaluj sobie speedtest-cli

Dzięki, pobawię się tym później.

Właśnie stracisz jak będziesz testował bo chyba że chodzi Ci o włączenie skryptu ręcznie już po wykorzystaniu danych.
ale uwierz mi każde sprawdzenie trwa od kilku sek. do kilkunastu. więc zanim znajdziesz 'magiczne wrota" może troche czasu upłynąć

Tak tak, tylko po wyczerpaniu już transferu. Inaczej nie ma powodu smile
Mam świadomość, że może to trwać nawet kilkadziesiąt minut, ale wciąż lepiej jak dzieje się to automatycznie, niż jeżeli mam siedzieć i robić to ręcznie, tak jak teraz...

10

Odp: Prosty skrypt

Jeszcze takie pytanie, skąd pobrać ten: speedtest-cli i jak go zainstalować?

11

Odp: Prosty skrypt

Za duży kombajn. Wystarczy w sumie pełny wget żeby pokazał z jaką prędkością ściągnął plik.

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

12

Odp: Prosty skrypt

A co potem? Jak zrobić coś w stylu: if wget speed > 100kb/s then halt, else ifup wan i powtórz skrypt?

13

Odp: Prosty skrypt

A=$(wget -O /dev/null http://noc.gts.pl/1mb.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
if [ "$A" \< "500 KB/s" ]; then
echo "Mam mniej niż 500KB/s";
fi

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

14

Odp: Prosty skrypt

Cezary mam pytanie bo widzę w "if"  "\<" a nigdzie nie mogę się doszukać w kursach o tym wszedzie tylko podstawowe operatory, w sumie jest "<" ale to raczej nie to samo

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

15

Odp: Prosty skrypt

To jest właśnie <. Z tym że jak to wykonasz w shellu to on zinterpretuje to jako przekierowanie a nie znak mniejszości, stąd ten escape (\).

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

16 (edytowany przez wabikboy 2014-01-29 21:47:30)

Odp: Prosty skrypt

Troche dziwne jest to bo własnie przeglądam kurs bash i jest tam < ale o \ przed nim ani słowa a sprawdziłem przed chwilą i też nie działa bez \

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

17

Odp: Prosty skrypt

A zrób coś takiego

if [ "a" > "b" ]; then echo "ok"; fi

to zobaczysz że zamiast porównania zrobi Ci plik o nazwie "b"

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

18 (edytowany przez wabikboy 2014-01-29 21:57:10)

Odp: Prosty skrypt

Wiem wiem smile nie chodzi mi o to że Tobie się dziwie tylko że w tych jak widać nie doprecyzowanych kursach jest błędnie opisana funkcja.

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

19

Odp: Prosty skrypt

No właśnie funkcja jest ... dobra, z tym że nie wszystko jak możesz bezpośrednio zapisać. Zobacz jak jest przy awk - jak nie dasz \ przez nawiasami () to np. bash powie że jest błąd składniowy.

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

20 (edytowany przez Przmus 2014-01-29 22:46:42)

Odp: Prosty skrypt

Dzięki Cezary, zrobiłem .sh:

#!/usr/bin/haserl
<?
A=$(wget -O /dev/null http://noc.gts.pl/1mb.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
if [ "$A" \< "3 KB/s" ]; then 
echo "Mam mniej niż 3KB/s";
fi
?>

Potem wywołuje skrypt przez Putty, ale zawsze pokazuje: "Mam mniej niz 3KB/s"... A to nie prawda, bo ten 1MB ściąga w 2-3 sekundy. Próbuję jeszcze modyfikować, ale coś mi się zdaje, że sam tego nie naprawię...

A tak wygląda u mnie samo wget:

root@TL-MR3420:~# wget -O /dev/null http://noc.gts.pl/1mb.gts
Connecting to noc.gts.pl (217.153.108.10:80)
null                 100% |**********************************|  1000k  0:00:00 ETA

Nie powinno tutaj być jakichś informacji o prędkości pobierania?

21

Odp: Prosty skrypt

Ale pełny wget zainstaluj - opkg install wget-nossl. ten z busyboxa nie wyświetla prędkości pobranego pliku.

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

22 (edytowany przez Przmus 2014-01-29 23:21:42)

Odp: Prosty skrypt

Dziękuję! Działa. A co zrobić, żeby jeśli jest mniej niż "3KB/s", powtarzało skrypt raz jeszcze? Wiem, że można po prostu wpisać "predkosc_po_limicie.sh" i skrypt wykona się jeszcze raz, ale chyba lepiej mieć wszystko w jednym.

EDIT:
Chyba sobie poradziłem smile

#!/usr/bin/haserl
<?
sprawdzanie () {
A=$(wget -O /dev/null http://ee2server2.ct8.pl/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
if [ "$A" \< "100 KB/s" ]; then 
echo "Mam mniej niż 100KB/s";
else
echo "Mam wiecej niż 100KB/s";
fi
}
sprawdzanie
echo "Koniec skryptu";
?>

Jeszcze tylko dodam ifup wan'a, sleepy i "sprawdzanie" w odpowiednim miejscu i myślę, że będzie OK.
A w razie czego, jak będę chciał zatrzymać skrypt, to wystarczy że zamknę putty, czy on dalej będzie działać w tle i tylko reboot pomoże?

23

Odp: Prosty skrypt

Skrypt przerywasz Ctrl+X. Jak zamkniesz putty to będzie nadal pracował..

24

Odp: Prosty skrypt

byrrt napisał/a:

Skrypt przerywasz Ctrl+X. Jak zamkniesz putty to będzie nadal pracował..

Hmm, przerywanie skryptu, nie działa, po prostu wkleja się: "^X". Gdzieś to muszę włączyć, czy coś?

Druga sprawa - nie ma jakiejś opcji, co by sprawdzała czy echo zostało wyświetlone w konsoli i jeśli nie - zatrzymywała skrypt?

25

Odp: Prosty skrypt

pytanie z innej beczki.

czy to normalne ze ściągając plik przez kompa   transfer   to 3MB/s
aa przez wget'a   max to 1,2 MB /s