我正在寻找一种备份我的 debian 服务器的方法。对于数据分区,我有一个使用 rsync 的解决方案,备份将转到加密的 ntfs 驱动器。NTFS 是因为我经常随身携带驱动器,在我的 Windows 笔记本电脑上观看一些电影等。
使用 rsync 备份系统不起作用,因为 ntfs 上没有保留权限。我考虑过存档tar
,但--update
标志只会添加新文件,而不会删除不再存在的文件。
有没有什么方法可以获得一些很好的容器内备份保存权限,这些权限可以像 rsync 更新一样更新?
答案1
满足存储需求的一种方法是创建一个回送文件系统在您的 NTFS 分区内,但问题在于这种循环设备的性能会更差,因为输入输出(I/O)会发生在文件系统内的文件系统中。
设置回送文件系统相当简单。假设/demo
您已将 NTFS 设备挂载在此处:
创建一个空白的非稀疏文件
大小由您选择。我的示例是 1GiB 大小:
root@node51 [/demo]# dd if=/dev/zero of=loopback.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.88537 s, 570 MB/s
使用具有您需要的所有权限功能的文件系统来格式化文件
在此示例中,我使用 ext4:
root@node51 [/demo]# mkfs.ext4 loopback.img
mke2fs 1.42.9 (4-Feb-2014)
loopback.img is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
您刚刚在文件中创建了一个文件系统。
挂载新的文件系统
root@node51 [/demo]# mount -o loop loopback.img /mnt
将数据放入新文件系统
root@node51 [/demo]# echo "Data data data" > /mnt/file.txt
root@node51 [/demo]# ll /mnt/
total 28
drwxr-xr-x 3 root root 4096 May 25 09:31 ./
drwxr-xr-x 24 root root 4096 May 25 09:29 ../
-rw-r--r-- 1 root root 15 May 25 09:31 file.txt
drwx------ 2 root root 16384 May 25 09:30 lost+found/
方便的是,您可以非常灵活地调整 ext4 文件系统的大小。
放大示例
root@node51 [/demo]# ll -h
total 33M
drwxr-xr-x 2 root root 4.0K May 25 09:30 ./
drwxr-xr-x 24 root root 4.0K May 25 09:29 ../
-rw-r--r-- 1 root root 1.0G May 25 09:31 loopback.img
root@node51 [/demo]# umount loopback.img
root@node51 [/demo]# e2fsck -f loopback.img
e2fsck 1.42.9 (4-Feb-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
loopback.img: 12/65536 files (0.0% non-contiguous), 12636/262144 blocks
root@node51 [/demo]# resize2fs loopback.img 4G
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on loopback.img to 1048576 (4k) blocks.
The filesystem on loopback.img is now 1048576 blocks long.
root@node51 [/demo]# ll -h
total 33M
drwxr-xr-x 2 root root 4.0K May 25 09:30 ./
drwxr-xr-x 24 root root 4.0K May 25 09:29 ../
-rw-r--r-- 1 root root 4.0G May 25 09:32 loopback.img
收缩示例
root@node51 [/demo]# ll -h
total 33M
drwxr-xr-x 2 root root 4.0K May 25 09:30 ./
drwxr-xr-x 24 root root 4.0K May 25 09:29 ../
-rw-r--r-- 1 root root 4.0G May 25 09:32 loopback.img
root@node51 [/demo]# e2fsck -f loopback.img
e2fsck 1.42.9 (4-Feb-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
loopback.img: 12/262144 files (0.0% non-contiguous), 25167/1048576 blocks
root@node51 [/demo]# resize2fs loopback.img 128M
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on loopback.img to 32768 (4k) blocks.
The filesystem on loopback.img is now 32768 blocks long.
root@node51 [/demo]# ll -h
total 33M
drwxr-xr-x 2 root root 4.0K May 25 09:30 ./
drwxr-xr-x 24 root root 4.0K May 25 09:29 ../
-rw-r--r-- 1 root root 128M May 25 09:44 loopback.img
答案2
您可以尝试 dar (http://dar.linux.free.fr/),因为它具有增量备份功能。还没有尝试过灾难恢复,但正常备份似乎工作得很好。