Мониторинг Файлов (Ай нид хелп!)

Модератор: Модераторы разделов

Аватара пользователя
am3k
Сообщения: 33

Мониторинг Файлов

Сообщение am3k »

Господа, срочно нужна помощь!
Мне нужно написать шелл-процедуру, которая бы отслеживала появление в текущем каталоге или любом его подкаталоге нового файла, выводила бы его имя и завершала работу.
Желательно, как можно проще...
Заранее благодарен...
Together we stand, divided we fall...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Мониторинг Файлов

Сообщение elide »

ну... это.
find ./ | sort > куда-нибудь_на_хранение
а потом comm срванивать.
слава роботам!
Спасибо сказали:
Аватара пользователя
am3k
Сообщения: 33

Re: Мониторинг Файлов

Сообщение am3k »

Тока как мне список хранить не в файле? Просто если буду сохранять в файле - это для меня не очень приемлемо (под требования может не подойти)
Как - нибудь еще можно?
Together we stand, divided we fall...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Мониторинг Файлов

Сообщение elide »

можно в памяти (: запихать, к примеру в переменную окружения (:
но это, мне кажется, еще более неприемлимый вариант.
можешь постить на удаленный сервер, а потом с него запрашивать список.
можешь преобразовть в dot matrix и распечатать, а потом пользователь пусть сканером штрихкодов вводит.
можешь прикрутить к матери i2c eeprom и хранить данные там....
вариантов куча, выбирай любой...
слава роботам!
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Мониторинг Файлов

Сообщение t.t »

(am3k @ Воскресенье, 08 Мая 2005, 17:44) писал(а):отслеживала появление в текущем каталоге или любом его подкаталоге нового файла
А что конкретно здесь имеется ввиду? Демон, который вопит при открытии на запись несуществующего файла? Или не-демон, который сообщает, какие файлы были созданы после его предыдущего запуска? Во втором случае без файла-списка не обойтись; а хранить его можно, скажем, в /tmp (если, конечно, он не очищается по крону или при перезагрузке).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
nercus
Сообщения: 150

Re: Мониторинг Файлов

Сообщение nercus »

2.6.14-gentoo-r5
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
Спасибо сказали:
Аватара пользователя
am3k
Сообщения: 33

Re: Мониторинг Файлов

Сообщение am3k »

Дело-то, собственно, вот в чем... :rolleyes: :rolleyes:
Ради получения зачета по курсу операционных систем мне надо сделать все, как можно проще :rolleyes: :rolleyes:
Про переменную окружения можно подробнее? Желательно с кодом... :rolleyes: :unsure:
Together we stand, divided we fall...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Мониторинг Файлов

Сообщение t.t »

(t.t @ Воскресенье, 08 Мая 2005, 21:59) писал(а):А что конкретно здесь имеется ввиду? Демон, который вопит при открытии на запись несуществующего файла?
А... Не заметил, что именно шелл упомянут. Ну, тогда понятно, что не демон. И понятно, что без файла никак.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: Мониторинг Файлов

Сообщение Jan2ary »

Запускать скрипт периодически с малым периодом, сравнивать текущее время с временем создания файлов, если время создания позже времени прошлого запуска - рапортовать. Можно даже сортировать файлы по времени, чтоб все не парсить, а сразу заканчивать цикл если текущий файл был создан раньше прошлого запуска. Вот. :wacko:
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
am3k
Сообщения: 33

Re: Мониторинг Файлов

Сообщение am3k »

Для Jan2ary: Можно ли с кодом, товарищ? Я, понимаешь ли, чайник немного... )
Together we stand, divided we fall...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Мониторинг Файлов

Сообщение t.t »

(Jan2ary @ Понедельник, 09 Мая 2005, 16:58) писал(а):Запускать скрипт периодически с малым периодом, сравнивать текущее время с временем создания файлов, если время создания позже времени прошлого запуска - рапортовать.
Ну, во-первых, ctime -- это не время создания, а время изменения аттрибутов файла; и оно гораздо чаще (по крайней мере, по моим личным наблюдениям) совпадает с mtime, чем с реальным временем создания. Я ж говорю: без списка -- никак.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
nercus
Сообщения: 150

Re: Мониторинг Файлов

Сообщение nercus »

(t.t @ Вторник, 10 Мая 2005, 9:25) писал(а):
(Jan2ary @ Понедельник, 09 Мая 2005, 16:58) писал(а):Запускать скрипт периодически с малым периодом, сравнивать текущее время с временем создания файлов, если время создания позже времени прошлого запуска - рапортовать.
Ну, во-первых, ctime -- это не время создания, а время изменения аттрибутов файла; и оно гораздо чаще (по крайней мере, по моим личным наблюдениям) совпадает с mtime, чем с реальным временем создания. Я ж говорю: без списка -- никак.


ctime - last file status change time. изменяется при записи/chown/chmod/chattr
mtime - last modification time. изменяется при записи
2.6.14-gentoo-r5
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Мониторинг Файлов

Сообщение madskull »

Не знаю, сойдет ли это для студента, который немного чайник, но вот одно из решений

Код: Выделить всё

ls >/tmp/list
until { t=$(comm -13 /tmp/list <(ls)); [ -n "$t" ]; }; do sleep 1; done
echo "new file: $t"
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
am3k
Сообщения: 33

Re: Мониторинг Файлов

Сообщение am3k »

Спасибо, я уже сделал все! Очень помогли вы мне! Респект вам всем)
Together we stand, divided we fall...
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Мониторинг Файлов

Сообщение xorader »

Можно оптимизировать тем что в начале цикла проверять время изменения каталога (mtime) и если есть прирост (сравнивать прямо unixtime), то тогда уже искать изменения в каталоге.
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали: