Diskuze: Spuštění každých 45.
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Neprovedlo by se pouze vypsaní nějakého .txt dokumentu ?
Mě se jedná o to aby se provedlo celé tělo skriptu.
Ale zkusím to a uvidím
Poslal jsem ti konstrukci, implementaci necham na tobe Navic, tech 45s je pomlka, ale pokud ti neco vezme program, budes muset zapocitat delku trvani toho skriptu, ale je to spis takova berlicka, nez finalni reseni.
Systemd Timers
Myslím, že tohle je v současnosti nejlepší postup, pokud nejsi ortodoxní
Gentoo linuxák.
A vůbce si myslím, že plně porozumět systemd je priorita, protože je až
na pár vyjímek na všech nových distribucích
Nejprve musíš udělat ten skript plně neinteraktivní, nemá smyl opakovaně pouštět skript, u kterého by musel někdo sedět a pořád něco zadávat. Takže způsob vypsání a cestu dodat pomocí argumentů a ve skriptu samotném už se pak na nic neptat jenom vypisovat. Pak můžeš použít příkaz watch:
watch -n45 skript
a oprav si to /usr/local/bin/bash na /bin/bash
skus cron
cron je idealny na periodicke spustanie skriptov a aplikacii a nemusis to riesit
ziadnym cyklom
staci ten scrypt vlozit do crontab tak, aby sa spustal v tom case, kedy chces a
mas vystarane...
Cron pokud vím neumí pracovat se sekundami, takže na spouštění skriptů každých 45 sekund moc ideální není.
#!/usr/local/bin/bash
#input parameters 1:number 2:destination (path)
while true
do
UNAME=$(uname)
if [ $UNAME != Linux ];
then echo "Pracujete jinde nez v Linuxu"
fi
echo "Skript vypise obsah adresare"
echo "****************************************"
echo "Zadejte jak chcete vypsat obsah adresare"
sleep 1
echo "1.Strucne"
sleep 1
echo "2.Normalne"
sleep 1
echo "3.Uplne"
nbr=$1
while (( nbr < 1 || nbr > 3 ));
do
read -p "Zadejte jak chcete vypsat adresar: " nbr
if (( nbr < 1 || nbr > 3 ));
then
echo "Prosim vyberte cislo 1 az 3!"
fi
done
dst=$2
while [ ! -d "$dst" ] || [ -z "$dst" ];
do
read -p "Zadejte cestu k adresari: " dst
if [ ! -d "$dst" ]; then
echo "Nezadal jste spravnou cestu. Znovu!"
fi
done
case "$nbr" in
1)
ls "$dst"
;;
2)
ls -l "$dst"
;;
3)
ls -la "$dst"
;;
esac
sleep 45
done
Případně, není-li třeba se stále ptát:
#!/usr/local/bin/bash
#input parameters 1:number 2:destination (path)
UNAME=$(uname)
if [ $UNAME != Linux ];
then echo "Pracujete jinde nez v Linuxu"
fi
echo "Skript vypise obsah adresare"
echo "****************************************"
echo "Zadejte jak chcete vypsat obsah adresare"
sleep 1
echo "1.Strucne"
sleep 1
echo "2.Normalne"
sleep 1
echo "3.Uplne"
nbr=$1
while (( nbr < 1 || nbr > 3 ));
do
read -p "Zadejte jak chcete vypsat adresar: " nbr
if (( nbr < 1 || nbr > 3 ));
then
echo "Prosim vyberte cislo 1 az 3!"
fi
done
dst=$2
while [ ! -d "$dst" ] || [ -z "$dst" ];
do
read -p "Zadejte cestu k adresari: " dst
if [ ! -d "$dst" ]; then
echo "Nezadal jste spravnou cestu. Znovu!"
fi
done
while true
do
case "$nbr" in
1)
ls "$dst"
;;
2)
ls -l "$dst"
;;
3)
ls -la "$dst"
;;
esac
sleep 45
done
Tohle řešení mě už napadlo taky, ale musím to napsat nějak přes crontab no kdyby to šlo takhle jednoduše tak se neptám přesto Dík : )
Zobrazeno 13 zpráv z 13.