LINUX.ORG.RU

Заморочки с cron


0

1

Есть такая идейка. Как можно заствить cron пинговать с 8-9 часов один компьютер и если пропингуется один раз то воспроизвести звук ну «mpg123 1.mp3» например, главное что б не зацикливался на один день, один раз пропинговался - один раз воспроизвел звук и больше не проверял за сегодня. Как такое сделать?

либо создавать файл-флаг-признак что событие уже было, либо вместо крона написать небольшой while

belka
()
Ответ на: комментарий от belka

Я не знаю как сделать чтобы ... ну допустим если пингуется то бишь true, то уже делал что то. «Ping» вообще может какой логический ответ вернуть?

Serpico
() автор топика
Ответ на: комментарий от Serpico

>> «Ping» вообще может какой логический ответ вернуть?

Да. $?

GotF ★★★★★
()
Ответ на: комментарий от Serpico

да, конечно. снова два варианта: грепать вывод пинга, либо использовать переменную $? (ну это bash, в другом языке по другом называться будет). В баше $? - результат последней выполненной команды, я думаю что он будет отличаться в случае успешного/неуспешного пинга

belka
()
Ответ на: комментарий от Serpico

>«Ping» вообще может какой логический ответ вернуть

ping localhost -c 1 | grep receiv

Mr_Alone ★★★★★
()
Ответ на: комментарий от belka

>> ну это bash

Ну это любой POSIX-совместимый шелл.

GotF ★★★★★
()
Ответ на: комментарий от Serpico

В cron'e что-то вроде

*/5 8-9 * * * ping -qnw1 $MYHOST 1>/dev/null && { [ ! -x /tmp/lockfile ] && mplayer /home/user/ok.flac ; touch /tmp/lockfile ; } || rm -f /tmp/lockfile

YAR ★★★★★
()
Ответ на: комментарий от Serpico

Или «с 8-9 часов» - это с «8 до 9»? Тогда только 8

YAR ★★★★★
()
Ответ на: комментарий от Serpico

а не правильно высказался что бы каждые 5 минут с 8-9 утра, НО что бы если пингуется то только один раз воспроизвел звук.

Serpico
() автор топика
Ответ на: комментарий от Serpico

УМВР:

@daily rm -f /tmp/lockfile 2>/dev/null
*/5 8 * * * ping -qnw1 mws64 1>/dev/null && { [ ! -x /tmp/lockfile ] && mplayer /home/rain/beep.flac ; touch /tmp/lockfile ; }

Только что проверил

YAR ★★★★★
()
Ответ на: комментарий от YAR

Всё заработало кстати нашел косяк надо было еще имя пользователя вставить - root например */5 8 * * * root ping -qnw1 mws64 1>/dev/null && { [ ! -x /tmp/lockfile ] && mplayer /home/rain/beep.flac ; touch /tmp/lockfile ; }

Serpico
() автор топика
Ответ на: комментарий от Serpico

Зависит от того, куда ты это пишешь. Я использовал пользовательский crontab, там этого делать не надо

YAR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.