Как мне 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
предоставляют рабочий набор, который можно просмотреть немедленно, что полезно для проверки того, что резервная копия действительно работает.