Определить условие: если изменился любой файл

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Определить условие: если изменился любой файл

Сообщение nerve »

Есть скрипт, который запускается вручную или по крону.
Есть директория со своей структурой внутри.
Скрипт должен выполнятся только если в этой директории появилось что-то новое или обновилось старое (файлы, папки).
Как элегантно можно такое решить?
Можно обойтись без создания и сравнения контрольных сумм?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: Определить условие: если изменился любой файл

Сообщение /dev/random »

nerve писал(а):
05.03.2014 00:23
Можно обойтись без создания и сравнения контрольных сумм?

Если вы доверяете датам изменения файлов, то можно. Попробуйте find -cnewer или find -newer, указав в качестве образца файл, созданный перед предыдущим запуском.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20795
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Определить условие: если изменился любой файл

Сообщение Bizdelnick »

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: Определить условие: если изменился любой файл

Сообщение /dev/random »

Bizdelnick писал(а):
05.03.2014 00:45
man inotifywait

Сначала тоже хотел предложить, но при запуске "вручную или по крону" эта команда малопригодна.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20795
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Определить условие: если изменился любой файл

Сообщение Bizdelnick »

Ну если использование cron - обязательное условие, то да, не пойдёт. Но с её помощью можно прекрасно обходиться без cron.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Определить условие: если изменился любой файл

Сообщение drBatty »

nerve писал(а):
05.03.2014 00:23
Скрипт должен выполнятся только если в этой директории появилось что-то новое

смотрите mtime.
nerve писал(а):
05.03.2014 00:23
или обновилось старое (файлы, папки).

тоже mtime, но придётся весь список хранить в общем случае. Хотя -- смотря как будете обновлять. Обычно (не не всегда!) в *nix создаётся временный файл, туда пишется новое содержимое, а потом временный файл заменяет старый(часто старый не удаляется, а переименовывается для надёжности). Если всё так, то mtime каталога тоже меняется.

узнать время можно так:

$

stat . -c%Y

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить