0

我想将文件从家用计算机同步到云服务器。我可以使用以下内容设置我的连续 rsync:

#!/bin/bash

while :

do 

rsync -rav * --include=*.bz2 --exclude=*.* --exclude=ZIP.sh --exclude=UPLOAD.sh
--chmod=a+rwx user@server.com:/home/user/date

sleep 180

done

如果我按照此处所述设置注册机,这当然会连续运行。我想在第一次输入密码的情况下连续运行 rsync,之后它将继续运行,直到我按下 CTRL+C。有没有办法做到这一点?

4

1 回答 1

1

是的,使用 SSH 连接共享:

将此添加到您的~/.ssh/config文件顶部:

ControlMaster auto
ControlPath /tmp/ssh_%r@%n:%p
ControlPersist 8h

连接共享意味着您到同一服务器的所有 SSH 连接将共享同一连接。这意味着您可以跳过除第一个连接之外的所有身份验证过程。该ControlPersist设置控制连接在关闭之前空闲多长时间(8 小时意味着我可以在早上登录,并且连接在一天结束时仍然处于活动状态,但会在第二天之前过期)。

ControlPath指定缓存套接字的位置。它可以在您喜欢的任何地方,并且可以将它们命名为您喜欢的任何名称,但是/tmp目录会很好,并且名称对于您希望使用的每个用户、服务器和端口必须是唯一的,否则您会遇到冲突。


顺便说一句,您可能应该检查该lsyncd工具作为连续主动扫描的替代方法。它使用内核通知来监视文件系统,并且仅在实际发生更改时才启动 rsync。

于 2015-09-21T08:34:31.860 回答