*nix, sh: Есть команда ждать появления файла?

0000

Т.е. запускаю команду - она ждет появления файла. Как только он появляется, то удаляем его и выходим.
Может есть стандартная тулза для nix-ов? (что стоит на сервере не в курсе; c nix работаю раз в високосный год)

Maurog

в цикле делать test + sleep ?

vall

любая хрень слушающая inotify на директорию

0000

А это проц жрать не будет?
Может как то через read можно оформить?

Maurog

не будет
первая ссылка из гугла: http://unix.ittoolbox.com/groups/technical-functional/shells...
рекомендую погуглить еще

evgen5555

Как-то так мб
tail --retry --follow=name abc | read -N 1

0000

, а можно расшифровать? Ожидается файл abc?

zya369

ожидается man tail :mad:

elenangel

apt-get install inotify-tools
man inotifywait

Papazyan


ls
ls
сходить за кофе
ls
ls
поссать
ls
ls
rm

0000

, увы, что-то ставить на сервер мне не дадут.

Serab

Локально скомпилять не удастся? Надо, чтобы в ядре была поддержка, это можно проверить по .config-файлу, что конкретно, кто-нибудь еще может подскажет, нету сейчас системы под рукой.

vall

tail --retry --follow=name abc | read -N 1
можно короче
tail -F abc > /dev/full
но это не работет для пустого файла

serega1604

>можно короче
>tail -F abc > /dev/full
>но это не работет для пустого файла
null 16:11:44 ~/t% /usr/bin/tail -F Test > /dev/null 2>&1 &
[1] 4324
null 16:11:48 ~/t% echo 1 > Test
null 16:11:54 ~/t% fg
[1] + running /usr/bin/tail -F Test > /dev/null 2>&1
^C
:confused:

vall

не null а full

evgen5555

Удался ли фокус с tail?
Я думал, все в примере довольно очевидно, и пояснять не нужно.

0000

Там засада вылезла, что скрипт выполняется не на удаленном сервере, а на локале :(
Пришлось делать по другому (не через файлы, а через таблицу базы данных).
Всем отозвавшимся спасибо. В будущем скорее всего пригодится, если придумаю как обойти запуск на локали.
Оставить комментарий
Имя или ник:
Комментарий: