Хотя предложение Эндрю из zfs send
является правильным способом работы с дифференциальными снимкам, если вы просто хотите видеть различия и работать с ними в ваших собственных сценариев или на других платформах без поддержки ZFS, также есть zfs diff
:
zfs diff [-FHt] snapshot snapshot|filesystem
Display the difference between a snapshot of a given filesystem
and another snapshot of that filesystem from a later time or
the current contents of the filesystem. The first column is a
character indicating the type of change, the other columns
indicate pathname, new pathname (in case of rename), change in
link count, and optionally file type and/or change time.
The types of change are:
- The path has been removed
+ The path has been created
M The path has been modified
R The path has been renamed
-F
Display an indication of the type of file, in a manner
similar to the -F option of ls(1).
B Block device
C Character device
/ Directory
> Door
| Named pipe
@ Symbolic link
P Event port
= Socket
F Regular file
-H
Give more parsable tab-separated output, without header
lines and without arrows.
-t
Display the path's inode change time as the first column of
output.
Обратите внимание, что порядок двух наборов данных должен быть хронологическим. Вы можете разобрать полученный список и работают только с теми именами, которые Вас интересуют
Пример вывода из страницы:.
# zfs diff -F tank/[email protected] tank/test
M / /tank/test/
M F /tank/test/linked (+1)
R F /tank/test/oldname -> /tank/test/newname
- F /tank/test/deleted
+ F /tank/test/created
M F /tank/test/modified
Кроме того, если вы используете Oracle Solaris 11.3, у вас также есть переключатель -r
для рекурсивного сравнения всех наборов данных для детей.
Спасибо за ваш ответ. Моя идея состояла в том, что zfs действительно знает, какие файлы были изменены, тогда как сканирование изменений может занять несколько часов (даже дней). Выполняет ли команда отправки zfs цель с только измененными файлами? – greg
Возможно, я забыл упомянуть, что мой целевой резервный хост не является системой zfs, я использую rclone для обычной файловой системы. – greg
ZFS действительно «знает», каковы различия, поэтому инкрементная команда «zfs send ...» отправляет только разницу между двумя моментальными снимками. Проблема, с которой вы собираетесь столкнуться, - это единственный способ получить доступ к данным в ней - использовать ее как вход команды 'zfs recv ...'. Вы можете сохранить вывод из 'zfs send ...' в качестве обычного файла и использовать его для восстановления, если вам нужно, но вы не сможете получить доступ к данным, не делая этого. –