Como faço para tar
de vários diretórios?
Automatize!
Como mencionado por @Seth nos comentários, um script é o caminho a seguir se seu objetivo é reduzir a digitação desnecessária.
#!/bin/bash # backup_dirs_to_tars.sh - back up directories in $backupdir to # individual tars in $outputdir # NB ignores .hidden (dotted) directories backupdir=/var/www/ outputdir=/home/example/backups cd $backupdir for dir in */; do tar -cf "$outputdir/$(basename $dir).tar" "$dir" done
Explicação:
- mude para
$backupdir
-
for dir in */
percorre os diretórios em$backupdir
(devido ao trailing/
) - crie
tar
archive de cada diretório (nomeado após o diretório viabasename
) no$outputdir
especificado
Se preferir, você pode criar gzip
ped arquivos alterando a linha de criação para tar -czf "$outputdir/$(basename $dir).tar.gz" "$dir"
.
Pensamento mais amplo sobre backups (recursos adicionais)
Eu não sei o que você está tentando alcançar com o seu regime de backup, mas vale a pena estar ciente de rdiff-backup
(usa rsync
e incrementos) e rsnapshot
(usa links físicos para economizar espaço em arquivos que não mudam) ; ambos são simples de usar e fornecem 'versões mais antigas' de arquivos, dependendo de como você os usa.
Também vale lembrar o mantra: 'um backup não testado não é backup' . Certifique-se de que você pode restaurar a partir de um backup! Tanto rdiff-backup
como rsnapshot
fornecem um conjunto de trabalho que pode ser procurado imediatamente, o que é útil para verificar se um backup realmente funciona.