Me gustaría crear un archivo .7z de mi sitio web usando 7zip; Hay algunos directorios que contienen archivos grandes (varios gigabytes) de los que no vale la pena hacer una copia de seguridad, ya que ya tengo copias de seguridad de ellos. Podría especificar hacer una copia de seguridad solo de archivos o directorios específicos, pero estoy planeando crear un script para hacer esto por mí, y sería un poco molesto seguir actualizando el script para incluir nuevos archivos, tipos de archivos y directorios. No puedo encontrar nada en la documentación sobre la exclusión de directorios; sólo archivos. ¿Cuál es la forma más sencilla de hacer esto?
El comando que usé antes (antes de tener que evitar archivos grandes) era simplemente
7z a backup.7z *
hecho en el directorio de trabajo.
Respuesta1
directory
es un tipo de archivo. man 7z
No es fácil de leer pero menciona -x
:
-x[r[-|0]]]{@listfile|!wildcard} Exclude filenames
Supongamos que tenemos el siguiente árbol de directorios:
$ tree
.
├── dir
│ └── file3
├── dir1
│ └── file4
├── file1
└── file2
2 directories, 4 files
y que queremos ignorar dir
y dir1
:
$ 7z a -x'!dir' -x'!dir1' b.7z *
Después de hacer eso:
$ 7z l b.7z
(...)
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2018-04-03 22:25:24 ....A 0 0 file1
2018-04-03 22:25:24 ....A 0 0 file2
------------------- ----- ------------ ------------ ------------------------
2018-04-03 22:25:24 0 0 2 files
Respuesta2
Para mí la sintaxis es ligeramente diferente.
NOW=`date +%Y-%m-%d-%H-%M-%S`
XX=`cat ~aaaaaazzzzzz/.gnupg2/passphrase-symmetric`
7z a \
-t7z -m0=lzma2 -mx=9 -mfb=64 \
-md=32m -ms=on -mhe=on -p${XX} \
'-xr!~/Documents/temp/' \
'-xr!~/Documents/Sites/' \
'-xr!**/*.zip' '-xr!**/*.bz2' '-xr!**/*.gz' '-xr!**/*.7z' \
'-xr!**/*.pyc' '-xr!**/__pycache__/**' \
'-xr!**/*.gpkg' '-xr!**/*.gramp' '-xr!**/*.ged' \
'-xr!**/*.log' '-xr!*/venv/*' '-xr!*.sqlit*' '-xr!*.bak' '-xr!*.html~' '-xr!*.html~*' \
'-xr!*.vm' '-xr!*.vmdk' '-xr!*.vmem' '-xr!*.vmsd' '-xr!*.vmss' '-xr!*.vmx' '-xr!*.vmxf' \
'-xr!*.mp4' '-xr!*.msf' \
'-xr!*.htm' '-xr!*.html' \
${BACKUP_DIR}/data-encrypted/BackUp-${NOW}.7z \
~/Documents \
~/.ssh \
~/.gnupg2 \
~/.gnupg
Corro en Linux/Ubuntu