ПРИМЕЧАНИЕ :Это не прямой ответ на ваш вопрос, а ответ на очевидный дополнительный вопрос " Как определить, действительно ли файл изменился, если я не могу полагаться на отметку времени ? "
Если вам когда-нибудь понадобится проверить, изменилось ли содержимое(файла, а не только его временная метка ), вы должны сравнить текущее содержимое с предыдущим содержимым. Например, вsh
:
Выполнение сравнения байта -для -байта сcmp
:
if [ -e "$oldcopy" ] && cmp -s "$oldcopy" "$currentcopy" ; then
# do whatever needs doing if the file hasn't changed
else
# first do whatever needs doing if the file is new or has changed
# then make a copy of the current file
cp -af "$currentcopy" "$oldcopy"
fi
Использование контрольных сумм или хэшей, или дайджестов сообщений сmd5sum
:
if [ -e "$filename.md5sum" ] && md5sum --status "$filename.md5sum)" ; then
# do whatever needs doing if the file hasn't changed
else
# first do whatever needs doing if the file is new or has changed
# then save an md5sum of the current file
md5sum "$filename" > "$filename.md5sum"
fi
md5sum
использует больше ресурсов процессора для создания дайджеста сообщения для файла. cmp
использует больше места на диске для создания второй полной копии файла.
Любой другой инструмент дайджеста (, например.sha512
)можно использовать вместо md5sum
, если это необходимо... и, вероятно, следует использовать, если есть какие-либо последствия для безопасности, если файлы различаются.
Java, как и многие другие языки, имеет библиотеки для выполнения вычислений дайджеста сообщения.
Думаю, это <dns><host><hostname>
поля в сетевом XML,sudo virsh net-dumpxml default