Для Вас было бы легче, если можно сделать все идентичные копии жестких ссылок файлов. Один способ сделать, который является с fdupes: выполненный fdupes -L
. Затем измените файлы на месте; это сохранит жесткие ссылки.
Если все, что Вы хотите сделать, является находкой файл по имени и содержание или по имени и хеш, просто добавьте другое условие к Вашему find
команда.
find /target_path/ -iname "original.file" -exec cmp old.file {} -exec cp new.file {}
find /target_path/ -iname "original.file" \
-exec sh -c 'test "$(md5sum | sed "s/ .*//")" = "$1" <"$0"' {} "$(cat old.md5sum)" \
-exec cp new.file {}
Вы не говорите, каково Ваше приложение; это может или не может помочь включить унисон, который может обнаружить идентичные файлы в различных путях при выполнении удаленной синхронизации.
На CentOS я не добираюсь udev
сообщения, когда я включаю простой USB thumbstick. Вместо этого я добираюсь:
[sdb] Assuming drive cache: write through
пару раз.
Но это не udev
, или syslog
упоминание этого Вам на консоли. Вы могли знать это наверняка сами путем уничтожения syslogd
или rsyslogd
(Удостоверьтесь, что это не рабочий сервер, который я надеюсь, что это не что со вставкой концентраторов USB и всего этого и перевставки USB-устройства.
Сообщения все еще раскрываются, поэтому как упомянутый Ulrich, это прибывает из ядра или модуля USB, чтобы быть точным, который использует kernel.printk
показать Вам эти сообщения, не используя системных служб вообще.
Выборка из документации Linux sysctl/kernel.txt
:
Четыре значения в printk обозначают: console_loglevel, default_message_loglevel, minimum_console_loglevel и default_console_loglevel соответственно.
Эти значения влияют на printk () поведение при печати или входе сообщений об ошибках. См. 'человека 2 системных журнала' для большего количества информации о другом loglevels.
- console_loglevel: сообщения с более высоким приоритетом, чем это будут распечатаны к консоли
- default_message_level: сообщения без явного приоритета будут распечатаны с этим приоритетом
- minimum_console_loglevel: минимальное (самое высокое) значение, на которое может быть установлен console_loglevel
- default_console_loglevel: значение по умолчанию для console_loglevel
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
Так с помощью вышеупомянутых значений для аргументов printk, можно заставить ядро замолчать об информационных сообщениях или простых предупреждениях на консоли. Например,
echo "3 3 3 3" > /proc/sys/kernel/printk
сделанный моими вставками USB thumbstick идут, все подавляют шумы. Вы хотите заставить его придерживаться через перезагрузку, добавить строку к /etc/sysctl.conf
:
kernel.printk = 3 3 3 3
Да, путем изменения на другой канал системного журнала, если Вы понимаете, как системный журнал работает:
Из udev руководства:
udev_log
The logging priority which can be set to err ,info or the corre-
sponding numerical syslog(3) value. The default value is err.
Таким образом, теперь Вы могли отредактировать /etc/udev/udev.conf
и измените это значение.