bup-index - imprimir y/o actualizar el índice del sistema de archivos bup
bup index <-p|-m|-s|-u|--clear|--check> [-H] [-l] [-x] [--fake-valid] [--no-check-device] [--fake-invalid] [-f indexfile] [--exclude path] [--exclude-from filename] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] <paths...>
bup index manipula el índice del sistema de archivos, que es un caché de rutas absolutas y sus metadatos (atributos, hash SHA-1, etc.). El índice bup tiene una función similar al índice git(1), y el índice predeterminado se puede encontrar en $BUP_DIR/bupindex.
La creación de una copia de seguridad en bup consta de dos pasos: actualizar el índice con bup index y luego hacer una copia de seguridad de los archivos (o un subconjunto de los archivos) con bup save. La separación existe por estas razones:
Hay más de una manera de generar una lista de archivos que necesitan copia de seguridad. Por ejemplo, es posible que desee utilizar inotify(7) o dnotify(7).
Incluso si realiza una copia de seguridad de los archivos en varios destinos (para mayor redundancia), los nombres de los archivos, los atributos y los valores hash serán los mismos cada vez. Por lo tanto, puede ahorrarse la molestia de volver a generar repetidamente la lista de archivos para cada conjunto de copia de seguridad.
Es posible que desee utilizar los datos rastreados por el índice bup para otros fines (como acelerar otros programas que necesitan la misma información).
Por el momento, bup ignorará los atributos de Linux (cf. chattr(1) y lsattr(1)) en algunos sistemas (cualquier sistema big-endian donde sizeof(long) < sizeof(int)). Esto se debe a que el kernel de Linux y FUSE actualmente no están de acuerdo sobre el tipo de argumentos de la llamada al sistema attr, por lo que en los sistemas big-endian no hay forma de obtener los resultados sin el riesgo de corrupción de la pila (http://lwn.net/Articles /575846/). En estas situaciones, bup imprimirá una advertencia la primera vez que los atributos de Linux sean relevantes durante cualquier operación de indexación/guardado/restauración.
bup hace adaptaciones para la resolución de marca de tiempo del sistema de archivos esperada en el "peor de los casos": actualmente un segundo; los ejemplos incluyen VFAT, ext2, ext3, small ext4, etc. Dado que bup no puede conocer la resolución de la marca de tiempo del sistema de archivos y podría estar atravesando múltiples sistemas de archivos durante una ejecución determinada, siempre asume que la resolución puede no ser mejor que un segundo.
En la práctica, esto significa que las actualizaciones de índice son un poco imprecisas, por lo que bup save puede ocasionalmente registrar cambios en el sistema de archivos que no esperaba. Esto se debe a que, durante una actualización de índice, si bup encuentra una ruta cuyas marcas de tiempo reales son más recientes que un segundo antes de que comenzara la actualización, bup establecerá las marcas de tiempo del índice para esa ruta (mtime y ctime) exactamente un segundo antes de la ejecución: limitando efectivamente esos valores.
Esto garantiza que ningún cambio posterior en esas rutas pueda generar marcas de tiempo idénticas a las del índice. Si eso fuera posible, bup podría pasar por alto las modificaciones.
Puede ver el efecto de este comportamiento en este ejemplo (suponga que transcurre menos de un segundo entre la creación del archivo inicial y la primera ejecución del índice):
$ touch src/1 src/2
# A "sleep 1" here would avoid the unexpected save.
$ bup index src
$ bup save -n src src # Saves 1 and 2.
$ date > src/1
$ bup index src
$ date > src/2 # Not indexed.
$ bup save -n src src # But src/2 is saved anyway.Estrictamente hablando, bup no debería notar el cambio a src/2, pero lo hace, debido a las adaptaciones descritas anteriormente.
actualiza recursivamente el índice para las rutas dadas y sus descendientes. Se deben especificar una o más rutas, y si una ruta termina con un enlace simbólico, se indexará el enlace en sí, no el destino. Si no se proporciona ninguna opción de modo, --update es el valor predeterminado y las rutas pueden excluirse mediante las opciones --exclude, --exclude-rx y --one-file-system.
imprimir el contenido del índice. Si se dan rutas, muestra las entradas dadas y sus descendientes. Si no se proporcionan rutas, muestra las entradas que comienzan en el directorio de trabajo actual (.).
imprime solo los archivos que están marcados como modificados (es decir, cambiados desde la copia de seguridad más reciente) en el índice. Implica -p.
anteponga un código de estado (A, M, D o espacio) antes de cada ruta. Implica -p. Los códigos significan, respectivamente, que un archivo está marcado en el índice como agregado, modificado, eliminado o sin cambios desde la última copia de seguridad.
verifique cuidadosamente la integridad del archivo de índice antes y después de la actualización. Principalmente útil para pruebas automatizadas.
borrar el índice predeterminado.
para cada archivo impreso, anteponga el código hash registrado más recientemente. El código hash normalmente se genera mediante bup save. Para los objetos que aún no han sido respaldados, el código hash será 000000000000000000000000000000000000000000. Tenga en cuenta que el código hash se imprime incluso si se sabe que el archivo se modificó o eliminó en el índice (es decir, el archivo en el sistema de archivos ya no coincide con el hash registrado). Si esto es un problema para usted, use --status.
imprime más información sobre cada archivo, en un formato similar a la opción -l de ls(1).
no cruce los límites del sistema de archivos al atravesar el sistema de archivos, aunque al igual que con tar y rsync, los puntos de montaje seguirán indexados. Solo aplicable si está usando -u.
marcar las rutas especificadas como actualizadas incluso si no lo están. Esto puede ser útil para realizar pruebas o para evitar realizar copias de seguridad innecesarias de archivos que sabe que son aburridos.
marca las rutas especificadas como no actualizadas, obligando a la siguiente ejecución de "guardar bup" a volver a verificar su contenido.
use un nombre de archivo de índice diferente en lugar de $BUP_DIR/bupindex.
excluir ruta de la copia de seguridad (puede repetirse).
leer –excluir rutas de nombre de archivo, una ruta por línea (puede repetirse). Ignora las líneas completamente vacías.
excluya cualquier ruta que coincida con patrón, que debe ser una expresión regular de Python (http://docs.python.org/library/re.html). El patrón se comparará con la ruta completa, sin anclaje, por lo que "x/y" coincidirá con "buey/yarda" o "caja/yardas". Para excluir el contenido de /tmp, pero no el directorio en sí, utilice “^/tmp/. ”. (puede repetirse)
Ejemplos:
`/foo$' - excluye cualquier archivo llamado foo
`/foo/$' - excluye cualquier directorio llamado foo
`/foo/.' - excluir el contenido de cualquier directorio llamado foo
`^/tmp/.' - excluir el contenido de /tmp de nivel raíz, pero no /tmp en sí mismo
leer patrones –exclude-rx de nombre de archivo, un patrón por línea (puede repetirse). Ignora las líneas completamente vacías.
no marque una entrada como no válida si cambia el número de dispositivo (stat(2) st_dev). Esto puede ser útil al indexar sistemas de archivos remotos, automontados o de instantáneas (LVM, Btrfs, etc.), donde el número de dispositivo no es fijo.
aumentar la salida del registro durante la actualización (se puede usar más de una vez). Con una -v, imprime cada directorio a medida que se actualiza; con dos -v, imprime cada archivo también.
bup index -vux /etc /var /usrbup-save(1), bup-drecurse(1), bup-on(1)
Parte de la suite bup(1).
Avery Pennarun apenwarr@gmail.com.