Как мне tar несколько каталогов?
Автоматизируйте!
Как упомянуто @Seth в комментариях, сценарий, если вы идете сюда, если ваша цель состоит в том, чтобы уменьшить ненужную типизацию.
#!/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
Объяснение:
- изменить на
$backupdir
for dir in */ проходит по каталогам в $backupdir (из-за конечного /)
- создайте архив
tar для каждого каталога (названный в честь каталога через basename) в указанном $outputdir
Если вы предпочитаете, вы можете, конечно, создать архивы gzip ped, изменив строку создания на tar -czf "$outputdir/$(basename $dir).tar.gz" "$dir" .
Размышления о резервных копиях (дополнительные ресурсы)
Я не знаю, чего вы пытаетесь достичь с помощью режима резервного копирования, но стоит знать о rdiff-backup (использует rsync и инкременты) и rsnapshot (использует жесткие ссылки для экономии места на файлах, которые не изменяются); оба из них просты в использовании и предоставляют «старые версии» файлов в зависимости от того, как вы их используете.
Также стоит помнить мантру: «непроверенная резервная копия не является резервной копией». Убедитесь, что вы можете восстановить из резервной копии! И rdiff-backup и rsnapshot предоставляют рабочий набор, который можно просмотреть немедленно, что полезно для проверки того, что резервная копия действительно работает.