Linux - 批量创建多个目录的备份

Edw*_*144 0 linux backup tar archiving ubuntu

我想知道是否可以在 Linux 中使用一个命令创建多个目录的备份。特别是在 VPS 上托管的不同网站。

假设我在 /var/www 中有四个网站:

/var/www/site01
/var/www/site02 /var/
www/site03 /
var/www/site04

我想使用 tar 来压缩每个目录。是否可以使用单个命令将 /var/www 中的每个子目录压缩到它自己的单独存档中?

site01.tar、site02.tar、site03.tar、site04.tar

ber*_*ieb 5

如何创建tar多个目录?

自动化!

正如 @Seth 在评论中提到的,如果您的目标是减少不必要的输入,那么可以使用脚本。

#!/bin/bash
# backup_dirs_to_tars.sh - 将 $backupdir 中的目录备份到
# $outputdir 中的各个 tars
# NB 忽略 .hidden(点)目录

备份目录=/var/www/
输出目录=/home/example/backups

cd $backupdir

对于 */ 中的目录;做
        tar -cf“$outputdir/$(basename $dir).tar”“$dir”
完毕

解释:

  • 改成$backupdir
  • for dir in */循环遍历目录$backupdir由于尾随/
  • 在指定的目录中创建tar每个目录(以目录 via 命名)的存档basename$outputdir

如果您愿意,您当然可以gzip通过将创建行更改为tar -czf "$outputdir/$(basename $dir).tar.gz" "$dir"来创建 ped 存档。

关于备份的更广泛思考(其他资源)

我不知道您想通过备份方案实现什么目标,但值得注意rdiff-backup(使用rsync和增量)和rsnapshot(使用硬链接来节省不更改的文件的空间);两者都易于使用,并根据您的使用方式提供“旧版本”文件。

还值得记住一句格言:“未经测试的备份不是备份”。确保您可以从备份中恢复!两者rdiff-backuprsnapshot提供了一个可以立即浏览的工作集,这对于验证备份是否确实有效非常有用。