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
tararchive de cada diretório (nomeado após o diretório viabasename) no$outputdirespecificado
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.