Potrzebujesz pomocy z C, C++, perl, python, itp.
-
Karolus
- Posty: 12
- Rejestracja: 24 stycznia 2011, 23:59
Post
autor: Karolus »
Witam
.
Chciałbym otrzymać pętlę
, która sprawdza, czy istnieje plik. A więc:
Z tym, że nie ma ona wykonywać zadań dopóki on istnieje lecz instrukcja ma się wykonać dopiero wtedy kiedy go już nie będzie.
Czyli:
- Sprawdza czy istnieje plik
- Jeżeli tak to nie robi nic, jeżeli nie to wywołuję instrukcję.
Jak mogę otrzymać coś takiego?
-
modem
- Posty: 4
- Rejestracja: 27 listopada 2012, 22:13
Post
autor: modem »
Kod: Zaznacz cały
#!/bin/bash
if [ ! -e /home/../server.log.lck ];
then
echo "gdy plik nie istnieje"
fi
I wrzuć do crona co jaki okres czasu ma sprawdzać
.
-
Karolus
- Posty: 12
- Rejestracja: 24 stycznia 2011, 23:59
Post
autor: Karolus »
Czyli, rozumiem, że to wykonuje tylko jeden cykl?
Tzn. raz sprawdza, a żeby sprawdziło dwa razy już musi być w cronie?
-
LordRuthwen
- Moderator
- Posty: 2324
- Rejestracja: 18 września 2009, 21:45
- Lokalizacja: klikash?
Post
autor: LordRuthwen »
A jak go chcesz wykonywać?
W pętli?
Cały czas?
Lepiej okresowo.
-
Yampress
- Administrator
- Posty: 6400
- Rejestracja: 09 sierpnia 2007, 21:41
- Lokalizacja: PL
Post
autor: Yampress »
Tak wrzuć do crona niech sprawdza co 5 minut. Chyba że potrzebujesz innej częstotliwości sprawdzania. Wtedy ustaw inaczej przedziały czasowe.
-
markossx
- Beginner
- Posty: 489
- Rejestracja: 26 maja 2007, 16:01
- Lokalizacja: Polska
Post
autor: markossx »
Ja bym zrobił tak:
Kod: Zaznacz cały
#!/bin/bash
FILE='/tmp/xxc'
function checkit() {
test -e $FILE &> /dev/null
}
while [ $? -eq 0 ];
do
checkit
sleep 5
done
echo -e "File $FILE not found\nWhat next..?"
Dodane:
Możesz to uruchomić ze startem systemu lub "z ręki" i uruchomić w tle z opcją '&'.
Muszę dodać bo napisałem z pamięci, po sprawdzeniu okazuje się, że powinno być:
Kod: Zaznacz cały
#!/bin/bash -x
FILE='/tmp/xxc'
function checkit() {
sleep 5
test -e $FILE &> /dev/null
}
while [ $? -eq 0 ];
do
checkit
done
echo -e "File $FILE not found\nWhat next..?"