Определите, был ли файл изменен

Я действительно не рекомендовал бы поместить swappiness выше. Общий механизм в ядре - то, что оно поместит страницы (блок памяти) в подкачке для освобождения некоторой памяти для других выполняющихся задач.

Первая "проблема", когда ядро хочет, чтобы n страницы были освобождены, m (с m <n, m является числом сжатых страниц, требуемых содержать n) недавно создается в RAM, я не уверен, может ли это нарушить ядро или нет.

Затем так или иначе, когда у Вас есть страницы в подкачке, возможно, что Вы используете приложение позже с некоторыми его страницами в подкачке. То, что ядро делают, возвращают те страницы в физическую память, но не удаляет их из подкачки (который со стандартной подкачкой может рассматриваться как кэширование, поэтому когда приложение возвращается в фоновом режиме, ядро не должно записывать те страницы обратно в медленную подкачку). Однако с zram это - возможно, не мудрый прием, потому что у Вас затем есть в памяти m страницы в zram + n страницы, которые вернулись в памяти!

Ядро обычно имеет "общую память" thatit, может использовать для ведения ее бизнеса. Когда Вы добавляете zram, он рассчитывает в памяти "подкачки" только, как это было бы с любой находящейся на диске подкачкой, но он уменьшил фактическую "общую память", и это не ожидается/ожидается ядром. Иногда Вы можете иметь странный и не требуемое поведение из-за этого!

С zram было бы хорошо, что ядро не подкачивает слишком много к этой области, когда это испытывает давление памяти. И у Вас должен всегда быть очень твердый дисковый раздел подкачки, больше, по крайней мере, чем Ваш zram максимальный размер, так, чтобы система не получала OOM, тогда как одновременно Вы видели бы много свободного пространства, как сообщается free!

10
30.12.2014, 02:30
4 ответа

Если вы хотите обнаружить, был ли файл изменен через нормальные средства (редактирование его в некотором приложении, проверка новой версии из систем управления ревизионным управлением, восстановить его и т. Д.), Проверьте ли его время модификации (Mime) изменился с последней проверки. Вот что отчеты st -c% y .

Время модификации может быть установлено командой Touch . Если вы хотите обнаружить, изменился ли файл каким-либо образом (включая использование touch , извлечение архива и т. Д.) Проверьте, есть ли его время изменений в inode ( Cime ) изменился с последней проверки. Вот что отчеты st -c% z . Ctime не может быть подделывается, за исключением системного администратора (и даже тогда, только через косвенные средства: изменяя системные часы, или путем доступа к диску непосредственно, в обход файловой системы).

5
27.01.2020, 20:02

Команда статуса имеет только разрешение секунды. Таким образом, если файл был изменен дважды в той же секунде, вы можете пропустить модификацию. Новые файловые системы, такие как EXT4, обеспечивают более высокие временные метки времени в наносекундах, но некоторые из старых инструментов еще не догнали.

Кроме того, возможно, для других программ установить произвольную модификацию. Вы можете посмотреть, как это может произойти через сенсорную команду.

Если вы беспокоитесь о любом из этих двух возможностей, это не было бы плохой идеей, чтобы посмотреть на размер файла. Это то, что делает rsync, когда он ищет модифицированные файлы.

3
27.01.2020, 20:02

Решение найдено, необходимо изменить конфигурацию samba hpux строка должна быть

 *hpux11*)
                NSSSONAMEVERSIONSUFFIX=".1"
                WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o \
                    ../nsswitch/winbind_nss_linux.o"

вместо

*hpux11*)
                NSSSONAMEVERSIONSUFFIX=".1"
                WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o"

Скомпилировать хорошо, запустить winbindd ok, но id donsn не сообщить пользователю (то же самое для pwget), я настроил nsswitch.conf возможно, что-то плохое в обертке nswitch

-121--146059-

Я также оказался обманутым этим. С тех пор я всегда добавляю эти две строки в screenrc :

hardstatus alwayslastline
hardstatus string "%{= kG}[ %{G}%H %{g}][ %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]"

Это меняет визуальный вид TTY на экране. Вы не можете упустить это после.

-121--244592-

У меня такое чувство, что нужно ввести больше параметров, чтобы быть еще более уверенным.

У вас есть правильный метод. Единственная причина неудачи - если файловая система не обновляется должным образом - в этом случае у вас возникнет целый ряд более серьезных проблем.

Конечно, я предполагаю, что кто-то с нужными знаниями и корневым доступом к системе, в которой доступен раздел, может изменить информацию, чтобы она выглядела так, будто файл не был изменен. Однако в этом случае они наверняка сделали бы то же самое с размером и т.д.

1
27.01.2020, 20:02

Я делаю отпечаток пальца более подробным.

Я сделал небольшую функцию-оболочку, которая генерирует идентичный вывод для версий MacOS/BSD и GNU stat(, а также определяет установленную версию Homebrew -с префиксом g).

init() {
  if command -v gstat > /dev/null; then
    # GNU coreutils with g prefix.
    statCmdArgs=("gstat" "--format=%n %s %b %u %g %i %h %Y %Z %W %o");
  elif ! stat --version > /dev/null 2> /dev/null; then
    # MacOS/BSD stat
    statCmdArgs=("stat" "-f" "%N %z %b %u %g %i %l %m %c %B %k");
  else
    # Assume GNU version without prefix.
    statCmdArgs=("stat" "--format=%n %s %b %u %g %i %h %Y %Z %W %o");
  fi;
}

getFileStatus() {
  "${statCmdArgs[@]}" "$1";
}

Функция initвызывается один раз во время инициализации скрипта, а getFileStatusможет вызываться повторно без дополнительных затрат на обнаружение.

0
27.01.2020, 20:02

Теги

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