26

Odp: Prosty skrypt

Przmus napisał/a:

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?

wpisz killall nazwa_skryptu

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

27 (edytowany przez Przmus 2014-01-30 11:21:04)

Odp: Prosty skrypt

killall nazwa_skryptu - wykonuje się dopiero po skończeniu działania skryptu. Chyba, żeby spróbować w nowym oknie putty...
Ale chyba znalazłem i ctrl+c zatrzymuje działający skrypt.

Hmmm, kolejna sprawa:

#!/usr/bin/haserl
<?
sprawdzanie () {
A=$(wget -O /dev/null *LinkDoPliku*/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
if [ "$A" \< "400 KB/s" ]; then
echo "Predkosc to:" $A;
echo "Mniej niz 400KB/s wiec powtarzamy zabieg";
sleep 2;
sprawdzanie
else
echo "Predkosc to:" $A;
echo "Mam wiecej niz 400KB/s" wiec konczymy;
fi
}
sprawdzanie
echo "Koniec skryptu";
?>

Mniej niz 400KB/s wiec powtarzamy zabieg
Predkosc to: 138 KB/s
Mniej niz 400KB/s wiec powtarzamy zabieg
Predkosc to: 191 KB/s
Mniej niz 400KB/s wiec powtarzamy zabieg
Predkosc to: 185 KB/s
Mniej niz 400KB/s wiec powtarzamy zabieg
Predkosc to: 176 KB/s
Mniej niz 400KB/s wiec powtarzamy zabieg
Predkosc to: 86.5 KB/s
Mam wiecej niz 400KB/s wiec konczymy
Koniec skryptu

Wychodzi na to, że jak wynik jest po przecinku to uznaje, że prędkość jest większa niż 400KB/s sad

28 (edytowany przez 3TH0 2014-01-30 12:06:03)

Odp: Prosty skrypt

@cyniu88
tutaj ma kilka rzeczy di gadania:
ilość dzielonych części pobieranego pliku
oczywiście ten sam plik


a inaczej różne programy maja rożnie dodawane pobieranie (czytaj funkcje)

29 (edytowany przez wabikboy 2014-01-30 12:36:56)

Odp: Prosty skrypt

Ty porównujesz łańcuchy znakowe tzn. IF porównuje pierwszy znak do pierwszego znaku wzorca, kolejno drugi do drugiego itd. wytnij te KB/s i usuwaj kropkę i to co za nią jeśli pojawi się taki wynik i porównuj liczby całkowite a znak "\<" zamien na "-lt"

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

30

Odp: Prosty skrypt

@wabikboy, dzięki!
No właśnie kombinowałem wycinając "KB/s" i ".", ale dalej dziwnie porównywało. Nie miałem pojęcia, że trzeba użyć "-It".
Póki co działa smile

#!/usr/bin/haserl
<?
sprawdzanie () {
A=$(wget -O /dev/null *Link*/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
B=${A/ */''}
C=${B/.*/''}
echo "Predkosc to: $C";
if [ "$C" -lt "100" ]; then
echo "Mniej niz 100KB/s wiec powtarzamy zabieg";
sleep 3;
sprawdzanie
else
echo "Mam wiecej niz 100KB/s" wiec konczymy;
fi
}
sprawdzanie
echo "Koniec skryptu";
?>

31 (edytowany przez wabikboy 2014-01-30 12:59:26)

Odp: Prosty skrypt

Przmus napisał/a:

@wabikboy, dzięki!
No właśnie kombinowałem wycinając "KB/s" i ".", ale dalej dziwnie porównywało. Nie miałem pojęcia, że trzeba użyć "-It".
Póki co działa smile

#!/usr/bin/haserl
<?
sprawdzanie () {
A=$(wget -O /dev/null *Link*/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}')
B=${A/ */''}
C=${B/.*/''}
echo "Predkosc to: $C";
if [ "$C" -lt "100" ]; then
echo "Mniej niz 100KB/s wiec powtarzamy zabieg";
sleep 3;
sprawdzanie
else
echo "Mam wiecej niz 100KB/s" wiec konczymy;
fi
}
sprawdzanie
echo "Koniec skryptu";
?>

wstaw:

 
A=$(wget -O /dev/null *Link*/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}' | sed 's/.KB.s//' | cut -d . -f -1)

A to usun:

B=${A/ */''}
C=${B/.*/''}
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

32

Odp: Prosty skrypt

Gotowe, dzięki.
Jeszcze, jeśli ktoś zna odpowiedź na pytanie:

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

Po tym skrypt można by uznać za gotowy smile

33

Odp: Prosty skrypt

Nie da się sprawdzić w konsoli ale konkretnie o co Ci chodzi smile bo nie rozumiem

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

34

Odp: Prosty skrypt

Chodzi o to, żeby skrypt wykrywał, czy "echo" wyświetli się w putty. Jeśli się nie wyświetli, to automatycznie zatrzymywałby skrypt (takie zabezpieczenie aby nie wpaść w loopa).

35 (edytowany przez wabikboy 2014-01-30 14:12:17)

Odp: Prosty skrypt

Nie da się tak. A po za tym przecież chciałeś aby sprawdzało w kółko to ja już nie rozumiem.

Jedynie co możesz zrobić to
echo "costam" > sprawdzenie.log

a potem odczytujesz czy w pliku sprawdzenie.log jest "costam" jeśli nie to koniec skryptu

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

36

Odp: Prosty skrypt

W sumie racja, niepotrzebnie sobie życie komplikuję. Ctrl+C w zupełności wystarczy, aby w razie problemu zatrzymać skrypt, ewentualnie reboot go zatrzyma.

Dziękuję za wszystką pomoc.

37

Odp: Prosty skrypt

@Przymus wywołujesz "sprawdzanie" rekurencyjnie - czyli samo w sobie. Może skończyć się pamięć.
Może według takiej zasady:

while true
    cos_robie
    if [ wyszło_zamało? ]; then
        echo "Znowu robie"
    else
        echo "Kończę"
        break
    fi
    sleep 3
done
install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

38

Odp: Prosty skrypt

Nie, nie normalnie. I niby dlaczego miałbyś mieć otwarte putty że skrypt uruchamiać, nie wystarczy tego uruchomić w cronie, w tle itd?

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

39

Odp: Prosty skrypt

@Cezary w cronie to raczej nie bo tu chodzi o uruchomienie skryptu jak już się limit skończy bo inaczej szkoda tych MB a raczej co min ten skrypt by się uruchamiał.

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

40

Odp: Prosty skrypt

Więc nie widzę sensu jego wykorzystania, bo skoro i tak trzeba pofatygować się do routera żeby to sprawdzić i ręcznie można przełączyć na drugie łącze. I jak wolno internet chodzi to i tak wiadomo że limit się skończył...

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

41

Odp: Prosty skrypt

Nie nie, tu autorowi chodzi tylko o to żeby sprawdzać prędkość połączenia po wykorzystaniu transferu bo znalazł buga który za którymś połączeniem odblokowuje tzw. "lejek"

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

42

Odp: Prosty skrypt

@Rafciq, dziękuję za radę, poprawiłem skrypt. Na pewno teraz będzie wydajniejszy smile

#!/usr/bin/haserl
<?
while true
do
    A=$(wget -O /dev/null *LINK*/20KB.gts 2>&1 | awk -F[\(\)] '/saved/ {print $2}' | sed 's/.KB.s//' | cut -d . -f -1)
    echo "Predkosc to: $A (KB/s)";
    if [ "$A" -lt "100" ]; then
        echo "Mniej niz 100KB/s wiec powtarzamy zabieg";
        sleep 3;
        // tutaj dodam ifupwan itd.
    else
        echo "Mam wiecej niz 100KB/s" wiec konczymy;
        break
    fi
    sleep 3
echo "Koniec skryptu";
done
?>

W zasadzie @wabikboy wyjaśnił o co chodzi z tym skryptem, dodam że odpalenie konsoli to w tych czasach nie problem smile Można odpalić nawet przez telefon (apka Irssi na Androida). Zakładając, że będę to robić 1-2 razy w miesiącu - nie ma sensu dodawać do crona.

Jeszcze raz dzięki za pomoc.