Strona 1 z 1
Bash - pętla i sprawdzanie czy istnieje plik
: 27 listopada 2012, 22:09
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?
: 27 listopada 2012, 23:06
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ć
.
: 27 listopada 2012, 23:30
autor: Karolus
Czyli, rozumiem, że to wykonuje tylko jeden cykl?
Tzn. raz sprawdza, a żeby sprawdziło dwa razy już musi być w cronie?
: 29 listopada 2012, 09:21
autor: LordRuthwen
A jak go chcesz wykonywać?
W pętli?
Cały czas?
Lepiej okresowo.
: 10 grudnia 2012, 11:45
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.
: 13 grudnia 2012, 19:00
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..?"