То, как я могу инициировать сценарий для погони за rsyncdaemon, получило изменения файла в определенной папке?

Пароль учетной записи машины обычно изменяется каждые 30 дней машиной. Если DeepFreeze не позволяет новому паролю быть сохраненным на компьютере, компьютерный уровень, который, вероятно, приведет к сбою GPO, поскольку компьютер не может войти в систему AD.

Можно отключить то автоматическое изменение пароля (хотя оно не рекомендуется): http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/580.mspx

Похож, который является (или по крайней мере был), известная проблема с DeepFreeze: http://universitytechnology.blogspot.com/2008/03/session-setup-from-computer.html

2
задан 10 September 2010 в 00:31
2 ответа

Это - больше ответ Gilles, но я хотел форматировать немного кода; гладким путем можно сделать, контроль измененных файлов должен сохранить md5sum md5sums каталога, крыла:

find /path/to/iso/data/ -type f -exec md5sum {} + | awk '{print $1}' | sort | md5sum | awk '{print $1}'

... который дает Вам вывод типа:

b843afc89097f0abc062e0d0e14d480b

При сохранении этого на каждом повторении крона это - довольно быстрый и эффективный способ определить, изменилось ли содержание на цели. Вы могли даже создать обертку вокруг xinetd rsync демон; замените вызов к двоичному файлу в/etc/xinetd.d/rsync:

server          = /usr/bin/rsync

... со сценарием:

server          = /path/to/script.sh

И затем в Вашем сценарии сравнивают и делают дело каждый раз выходы демона с допустимыми 0 состояниями. Это - путь, более автоматизированный, чем задание крона с преимуществом, которое он только выполняет при кодировании его к выходу rsync 0. Что-то как... (psuedo кодируют здесь):

#!/bin/sh

/usr/bin/rsync "$*"

if [ $? -eq 0 ]; then
  OLDVALUE=`cat /var/cache/isodata.txt`
  NEWVALUE=`find /path/to/iso/data/ -type f -exec md5sum {} + | awk '{print $1}' | sort | md5sum | awk '{print $1}'`
  if [ ${OLDVALUE} != ${NEWVALUE} ]; then
    -- run ISO making code --
    echo ${NEWVALUE} > /var/cache/isodata.txt
  fi
fi

Это - общее представление запуститься с.

5
ответ дан 3 December 2019 в 08:59
  • 1
    , обе вещи, которые Вы предлагаете, работает отлично вместе! Я был бы, не учел "awk '{печатают 1$}'" после md5sum, потому что путем отъезда его в Вас в основном гарантируют, что это переименовывает, не будет обнаружен, только изменения содержания или добавляющие/удаляющие файлы –  Christian 14 September 2010 в 01:28

Старомодный, портативный, неуклюжий путь состоит в том, чтобы запустить скрипт поколения ISO равномерно, или через крон или с a while sleep цикл (предпочтительный, если интервал не заметно больше, чем время, он берет для регенерации ISO). Чтобы постараться не повторно создавать ISO, если файлы не изменились, сделайте это только если [ -n "$(find -cnewer foo.iso -print -quit)" ]. Обратите внимание, что это не инициирует, если некоторые файлы были удалены, и ни один не был изменен или добавлен.

Лучший, но непортативный путь состоит в том, чтобы использовать изменение файла Вашей платформы, контролирующее API: fam на IRIX и некоторых других системах, kqueue на *BSD, inotify на Linux, и т.д. Все могут быть легко настроены для выполнения команды, если файл изменяется (включая каталог); я не знаю, могут ли они все наблюдать дерево каталогов.

Другой путь состоял бы в том, чтобы поместить файлы на файловую систему пространства пользователя (такие как FUSE), который просто передает вызовы базовой системе хранения за исключением того, что модификации инициировали regeneation ISO.

Независимо от того, что Вы заканчиваете тем, что делали, обратите внимание, что файл мог измениться при регенерации ISO; в этом случае у Вас есть две стратегии. Можно ожидать, пока поколение не закончено, и запустите снова, который расточителен. Или можно уничтожить поколение ISO и запуститься снова, но это могло привести к долгому времени без обновления ISO, если файлы продолжают изменяться быстрее, чем ISO может быть повторно создана. Соединение двух, где Вы уничтожаете поколение ISO, если никакая ISO не была сгенерирована больше чем в X раз, является разумным решением.

3
ответ дан 3 December 2019 в 08:59

Теги

Похожие вопросы