View Single Post
Sitat av Tøffetom Vis innlegg
Hva returnerer ping -c 1 ?

?Kan du hjelpe meg å bruke det sånn som dette:

Kode

#!/bin/bash -i
source /home/"pc1"/.bashrc
cd /home/"pc1"/boot
if ping -c 1 < 1.0 *notat* &> /dev/null
then
    python bootlaunch.py
else
     sudo reboot
fi
*notat*
Jeg vet ikke hvordan det funker, men jeg er interessert i å starte opp enda ping er urovekkende høy. Hele systemet koker under oppstart. Men hvis det ikke er svar å få på 1 sekund må den pcen starte om.

Husker jeg feil eller kan jeg skrive output til destinasjon i stedet for /dev/null?

Ok alt funker, må bare klare å bruke output fra ping -c 1 ip til å gi meg enten ping i tall eller tid uten svar.

Trenger også å enten sette ping-cutoff høyt (eks 10 sekunder), eller ved å gi meg 20 sekunder med sleep før reboot kjøres. Dette er så sykt tidsfelle, plutselig sitter du en halv dag og kriger mot en altfor kjapp reboot-loop fordi uttrykket aldri returnerer true.

Ble akkurat rebootet til Windows i alle fall, så festen er over for min del.
Vis hele sitatet...
Outputen kan skrives til noe annet ja, STDOUT hvis du ikke føyer på noe destinasjon, du kan bruke en fil-destinasjon ved å bytte ut /dev/null med /fil.

Kan det være en idé å se på exit-koder? Ping med svar exiter med 0, ping med timeout exiter med 1.

Du kan endre timeout-value med "-W"-flagget.

Litt vel trøtt i trynet her, vet ikke om det kan være noe hjelp (tror ikke jeg forsto helt )


EDIT; bittelitt mer våken nå:

Kode

#!/bin/sh
ping -c 1 -W 10 192.168.45.5
exitcode=$?
if [ $exitcode -eq 1 ]; then
        echo "Rebooting"
else
        echo "All good"
fi
Vil noe sånt være ok, ved å erstatte "echo"-kommandoen(e)?

-W endrer timeout på pingen, og gir den ene repsonsen som ventes på 10 sekunder på å svare i dette tilfellet.

Her går også output til STDOUT, som du heller kan sende til /dev/null, noe du allerede har styring på (&> /dev/null).
Sist endret av rogerrask; 18. januar 2020 kl. 11:24. Grunn: Trynetrøtthet