Ваш лучший выбор состоит в том, чтобы достигнуть в 20 минут или 30 минут.
Вы затем лучше всего могли бы быть должны инициировать каждые 5 минут, и затем провести внутренний подсчет или метку времени, и выполнить каждый 5-й триггер, или если 25 минут протекли начиная с последнего выполнения.
Более сложный должен был бы отработать корректные времена в течение дня, запускающегося в полночь, и принять ошибку в конце дня. Это включило бы дублирование crontab записи в различные часы.
Более сложный, чем это должен был бы отработать времена в течение всего месяца, который включит много копий crontab записи для покрытия различных комбинаций.
Наконец Вы могли всегда реализовывать свое собственное на демоне и иметь, которые делают планирование.
Вы не можете соответствовать файлам полным путем с Солярисом find
, но можно соответствовать файлам inode. Так использование ls -i
для генерации списка inodes для сокращения затем звоните find
. Это предполагает, что нет такого количества каталогов, Вы хотите сократить это, Вы пробежались бы через предел длины командной строки.
inode_matches=$(ls -bdi /opt/dir1 /opt/dir2 /var/dir3/dir4 |
sed -e 's/ *\([0-9][0-9]*\) .*/-inum \1 -o/')
find / -xdev \( $inode_matches -nouser -o -nogroup \) -prune -o -print
Альтернативный подход должен был бы использовать Perl или сценарий Python и обход каталога самокрутки. Perl поставлется с a find2perl
сценарий, который мог запустить Вас с File::Find
модуль. В Python посмотрите walk
функция в os.path
модуль.
Начиная с реализации (реализаций) находки не поддерживают -path
тест, можно моделировать его использование -exec test "{}" = "/path/to/exclude" \; -prune
( {}
должен быть расширен до имени полного пути).
Это, к сожалению, займет больше времени, чем "чистая" находка, начиная с test
программа будет выполнена в каждом выполнении. Поэтому удостоверьтесь, что оптимизировали тесты так, как Вы можете - например, проверить который из этих двух выполнений быстрее:
-exec test "{}" = "/dev" \; -o -exec test "{}" = "/proc" \; -o -exec test "{}" = "/tmp/test" \;
или
-exec test "{}" = "/dev" -o "{}" = "/proc" -o "{}" = "/tmp/test" \;
Я думаю, что последний должен быть быстрее в целом, потому что test
программа выполнена только однажды.
Примечание: Вам не нужно -a
для и - логика; это подразумевается по умолчанию. То же идет для -print
в конце.
nice
.
– rozcietrzewiacz
22.10.2011, 19:11