增量备份Linux命令

时间:2010-05-20 16:44:37

标签: linux

执行增量备份的命令是什么?任何来源或任何链接将非常感激。

5 个答案:

答案 0 :(得分:13)

rsync正是您要找的。 Here是一个很好的教程。

答案 1 :(得分:12)

根据您的备份需求,rdiff-backup可能就是您想要的。它基于与rsync相同的想法,但也保留了历史备份(通过存储差异以节省空间的方式)。

答案 2 :(得分:4)

Dirvish使用rysnc制作增量快照(看起来像完整目录树,这要归功于硬链接的神奇之处)。它适用于我。

答案 3 :(得分:3)

这是我用于使用rsync对我的虚拟机进行增量备份的命令。

rsync -avh --delete --progress --link-dest="/Volumes/canteloup/vm_backups/`ls -1tr /Volumes/canteloup/vm_backups/ | tail -1`" "/Users/julian/Documents/Parallels" "/Volumes/canteloup/vm_backups/`date +%Y-%m-%d-%H-%M-%S`"

-avh表示以 h uman可读形式输入 v erbose输出 a rchive。

--delete将确保每个增量备份不包含自上次备份以来已删除的文件。这意味着在特定日期进行的备份将是该日期的目录快照。

--progress将在终端中显示传输的金额,百分比和每个文件的剩余时间。方便用于40Gb +文件大小的虚拟机备份。

--link-dest指定用于为尚未更改的文件建立链接的目录。它使用ls -rt | tail -1来获取最后一个文件。如果文件不存在,似乎没问题,就像第一次运行一样。

下一个arg是要备份的目录。

最后一个arg是目标目录。这个名字是时间戳。

答案 4 :(得分:0)

试试下面的 bash 脚本。请将 srcdest 替换为您要使用的源和目标。如果您不是在本地存储中备份,则删除 --inplace(此选项对于传输具有基于块的更改或附加数据的大文件很有用,也适用于磁盘绑定而非网络绑定的系统。您也不应使用此选项来更新其他人正在访问的文件)。

#!/bin/bash

rsync -ab --dry-run --stats --human-readable --inplace --debug=NONE --log-file=rsync.log --backup-dir=rsync_bak.$(date +"%d-%m-%y_%I-%M-%S%P") --log-file-format='%t %f %o %M' --delete-after src dest | sed -e '1d;5,12d;14,17d'

echo -e "\nDo you want to continue?"

while true; do
    case $yn in
        [Yy]* ) rsync -ab --human-readable --inplace --info=PROGRESS2,BACKUP,DEL --debug=NONE --log-file=rsync.log --backup-dir=rsync_bak.$(date +"%d-%m-%y_%I-%M-%S%P") --log-file-format='%t %f %o %M' --delete-after src dest; break;;
        [Nn]* ) exit;;
        * ) read -p "Please answer yes or no: " yn;;
    esac
done