我想使用 rsync 用驻留在 Mac 上的磁盘备份我的 Ubuntu 服务器。但是我没有让它正常工作,因为每次我在初始时间之后重新运行 rsync 操作时,都会首先删除带有特殊字符的文件,然后重新同步。似乎不同的字符集有问题。
在首选的解决方案似乎是使用--iconv选项:
您可以使用 rsync 的 --iconv 选项在 UTF-8 NFC 和 NFD 之间进行转换,至少如果您使用的是 Mac。有一个特殊的 utf-8-mac 字符集代表 UTF-8 NFD。因此,要将文件从 Mac 复制到 NAS,您需要运行以下命令:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/这会将远程服务器上的所有本地文件名从 UTF-8 NFD 转换为 UTF-8 NFC。文件的内容不会受到影响。
感谢@Jan,我从 2.6.9更新了我的 mac 上的 rsync 版本。到 3.1.1。尽管如此,我仍然没有完全到位,因为我现在收到一个进一步的错误:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in …Run Code Online (Sandbox Code Playgroud) 我相信我的 linux 机器受到了外部登录的合理保护。但由于我有点偏执,我希望在尝试登录服务器时收到提醒,无论成功与否。
扫描网站,我找不到任何一致的方法来做到这一点。至于我可以告诉大家,对于不成功的尝试已经Logcheck的建议,并成功的将SSHRC或(甚至更多)pam_exec方法。我喜欢一投两掷的方法,想知道你们中的任何专业人士是否知道是否有办法让这些方法中的一种同时做到这两点?特别是 PAM 似乎是一个做事的好地方,因为据我所知,它毕竟是我的 ubuntu 机器上的中央身份验证系统。
有什么建议吗?
我想为 rsync 备份过程设置时间限制。我怎样做才最好呢?
根据这篇文章,有一个选项可以做到这一点:
--time-limit
When this option is used rsync will stop after T minutes and exit.
Run Code Online (Sandbox Code Playgroud)
然而,我的 Ubuntu 12.04 上没有实现该选项。在帖子的评论中,暗示了一个可能的解决方案,但我不够流利,不敢自己着手,就像这样。
似乎还有时间限制命令/程序,但我也没有。也许这就是解决方案?