Один простой пример - это:
dd if=/dev/sda of=/dev/sdb
Но если у Вас есть некоторые особые потребности, действительно необходимо прочитать страницу справочника (человек dd) или поиск на Google.
Другая идея могла быть использованием rsync (не забывайте устанавливать правильные опции, как - азимут [упаковывает файлы вместо копии один файл за другим] или - числовые идентификаторы [используют uid/gid вместо имен как "корень"] и возможно некоторые другие). Ссылка содержит много примеров.
Если новый жесткий диск не имеет разделов, можно использовать gparted или palimpset.
Когда Вы не уверены, я отформатировал бы жесткий диск и затем синхронизировал бы данные с rsync.
Я ввел по абсолютному адресу через Config.cpp
, файл, ответственный за парсинг конфигурации. Конфигурация в качестве примера на самом деле делает довольно хорошее задание получения доступных вариантов - нет очень многих
Когда я обращаюсь к "выводу в качестве примера" ниже, я говорю об этой строке (вытянутый наугад от демонстрационной страницы):
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
Корневой тег <loggedFS>
. Это имеет два дополнительных атрибута:
kded [kdeinit]
имя процессаЕдинственные дочерние узлы, о которых это заботится, <include>
и <exclude>
. В примере они группируют людей младше <includes>
и <excludes>
блоки, но они проигнорированы синтаксическим анализатором (как любые другие узлы кроме <include>
и <exclude>
).
Естественно, <include>
правила заставляют это производить строку журнала, если они соответствуют, в то время как <exclude>
строки вызывают его не к. В случае перекрытия, <exclude>
переопределения <include>
. Обычно Вам нужен по крайней мере один <include>
управляйте для соответствия, чтобы событие было зарегистрировано, но исключение - то, если существует 0 <include>
правила - затем все события зарегистрированы, даже если там соответствуют <exclude>
строки.
Оба <include>
и <exclude>
возьмите те же атрибуты:
extension
довольно плохое имя, но я предполагаю, что это - общее использование). Например, если Вы touch /mnt/loggedfs/some/file
, регулярное выражение в extension
нуждался бы к (частичному) соответствию /mnt/loggedfs/some/file
*
. Правило только соответствует данной операции, если у владельца процесса, который вызвал операцию, есть указанный идентификатор пользователя (*
естественно средства любые соответствия идентификатора пользователя). В выводе в качестве примера, 1000
uidgetattr
действие. Возможные действия: SUCCESS
. Ненулевой код возврата заставляет это соответствовать против FAILURE
. Это - единственные возможные значения, настолько скорее всего, Вы или идете в hardcode SUCCESS
, FAILURE
, или используйте .*
если Вы хотите обоих. В выводе в качестве примера, SUCCESS
retname
В отличие от этого, с <loggedFS>
атрибуты, они не имеют никаких значений по умолчанию. Кроме того, в то время как синтаксический анализатор распознает неизвестные атрибуты и ошибку, это не обнаруживает недостающие атрибуты, поэтому если Вы забудете атрибут, то это будет использовать неинициализированную память.
/a
, исключить/a/b
и включайте/a/b/c
,/a/b/c
наблюдаемый? Включая каталог всегда включают его содержание? – Gilles 'SO- stop being evil' 26.05.2011, 01:32<include extension="/a" uid="*" action=".*" retname=".*" />
движение должно соответствовать каждой операции, которая воздействует на файл, путь которого содержит/a
- это могло даже быть/foo/abc/bar
. Вы, вероятно, хотите привязать их всех с^
и$
, но затем необходимо включать весь путь для него для соответствия – Michael Mrozek♦ 26.05.2011, 01:37