Rsync的bash脚本和硬链接文件
题
我创建一个bash脚本来备份我的文件使用rsync。
备份所有来自单个目录。 我只希望新的或修改的文件进行备份。
目前,我告诉rsync将备份的目录,并检查文件相比上次备份。
我这样做的方式是
THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current
我敢肯定我的语法正确,此。每个备份将检查对“当前”的文件夹,并上传只necesary。然后,它会删除当前文件夹中,并重新创建符号链接到它只是做了最新备份。
我正在一个错误,当我运行脚本:
rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"
=> /Backup/Current/dgs1200series_manual_310.pdf 失败:不支持操作(45)
主机OS运行HFS文件系统,其支持硬连接。我想弄清楚,如果别的东西是不支持这一点,或者如果我在我的代码中的问题。
感谢您的帮助
编辑:
我可以创建我的本地计算机上的硬链接。 我还可以用来在远程服务器上的硬链接(在本地登录时) 通过AFP安装的时候,我不能够在远程服务器上创建硬链接。即使服务器上存在两个文件。
我猜测这是AFP的限制。
解决方案
从该名男子页两件事情中脱颖而出,是值得检查:
如果文件的未链接,仔细检查其属性。也 检查是否存在属性越来越强的rsync的外 控制,这样的挂接squishes根到单个选项 用户,或者安装使用通用所有权可移动驱动器(例如 作为OS X的“忽略此卷上的所有权”选项)。
和
请注意,rsync的版本之前的2.6.1有一个错误,可能 防止--link-DEST从非超级用户正常工作 当-o指定(或由-a暗示)。您可以变通 通过避免发送到旧的rsync当-o选项这个错误。
你有没有“忽略所有权”选项打开?你有什么版本的rsync
的?
另外,你尝试过使用ln
在命令行手动创建硬链接相似?
其他提示
万一您的命令行仅仅是一个例子:一定要始终指定链接DEST目录与绝对路径!这件事情这花了我不少时间来找出...
我不知道这是否是同样的问题,但我知道,rsync的不能同步时的目标是FAT32分区,文件名有一个文件:它(冒号)“”。 [源文件系统是ext3和目的地是FAT32]
尝试重新配置date
命令,以便它不使用冒号,看看是否有差别。
e.g。
THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`