
Estoy usando Ubuntu 10.04. Tengo un directorio grande con (muchos subdirectorios) y archivos de datos que uso con bastante frecuencia en mis scripts. Me gustaría asegurarme de nunca eliminar/sobrescribir/cambiar accidentalmente ninguno de los archivos/directorios en este superdirectorio.
¿Cómo puedo hacer eso?
Respuesta1
Ordenados principalmente por disminución de la protección y aumento de la comodidad:
Almacene los archivos en medios físicamente de sólo lectura, como un CD-ROM.
Almacene los archivos en un sistema de archivos separado que monte como de solo lectura.
Si es el administrador, cree otro usuario y haga que estos archivos sean propiedad de otro usuario.
Utilice FUSIBLEenlazar(paquete de Ubuntu
bindfs
) para crear una vista de solo lectura del árbol de directorios y apuntar sus scripts a esta vista de solo lectura:bindfs -p a-w /path/to/actual/tree /path/to/readonly/view myscript -d /path/to/readonly/view
Haga que el árbol de directorios sea de solo lectura con
chmod a-w /path/to/tree
.Cree una copia del árbol con archivos vinculados y apunte su script a la copia. Entonces, es posible que sus scripts aún modifiquen archivos existentes, pero si crean, eliminan o reemplazan archivos, eso solo afectará la copia.
cp -al /path/to/actual/tree /path/to/readonly/view myscript -d /path/to/readonly/view
Te recomiendo que uses bindfs. La única razón por la que haría cualquier otra cosa teniendo en cuenta sus requisitos es si no estuviera disponible.
Si desea que los scripts puedan escribir en el árbol de directorios, pero sin afectar los archivos reales, puede usar un sistema de archivos de unión, por ejemplo.funionfsofusible-unionfs.
Respuesta2
No existe una forma real porque pase lo que pase, al final siempre podrás eliminarlos.
Aún así, puedes probar con los permisos de archivos. Haga clic derecho en el directorio y configure el acceso a la carpeta en Acceder a archivos y configure el acceso a archivos en solo lectura. Después de eso, haga clic en Aplicar permisos a archivos adjuntos. De esta manera, tendrás que desarmar manualmente esta configuración cuando decidas eliminar archivos en ese directorio.
Respuesta3
Puede transferir rsync
el directorio a otro y usarlo --link-dest
para crear enlaces duros para que no ocupen espacio adicional.
Un buen artículo esTime Machine para todos los Unix que existen.
Respuesta4
Errar es humano. Una vez eliminé un archivo importante porque me acababa de despertar y todavía tenía sueño (sin resaca) :) Afortunadamente, sucedió mucho después de que aprendí algunos trucos que me ayudan a mitigar el impacto negativo de acciones tan tontas. Aquí están:
- Siempre haga copias de seguridad, asegúrese periódicamente de que las copias de seguridad contengan lo que se supone que deben contener, para evitar la situación en la que pierda un archivo, intente restaurarlo desde una copia de seguridad y descubra que por alguna razón no está contenido en la copia de seguridad.
- usar control de versiones
- Utilice un sistema de contabilidad como inotify, le ayudará a realizar un seguimiento de los cambios en el sistema de archivos.
A partir de ese incidente, establecí una regla adicional inflexible: "Nunca toques una computadora cuando todavía tengas sueño".