我想将文件从家用计算机rsync到云端服务器。我能够使用以下内容设置连续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
如果我将keygen设置为here状态,这当然会持续运行。我希望在第一次输入密码时连续运行rsync,之后它会一直运行直到我按下CTRL + C.有没有办法做到这一点?
答案 0 :(得分:1)
是的,使用SSH连接共享:
将此~/.ssh/config
文件添加到此顶部:
ControlMaster auto
ControlPath /tmp/ssh_%r@%n:%p
ControlPersist 8h
连接共享意味着与同一服务器的所有SSH连接将共享相同的连接。这意味着您可以跳过除第一个连接之外的所有连接的身份验证过程。 ControlPersist
设置控制连接在关闭之前的空闲时间(8小时表示我可以在早上登录,并且连接在一天结束时仍然处于活动状态,但在下一个结束之前将过期天)。
ControlPath
指定缓存套接字的生存位置。它可以是你喜欢的任何地方,它们可以被称为你喜欢的任何东西,但是/tmp
目录可以正常运行,并且名称对于你想要使用的每个用户,服务器和端口必须是唯一的,否则你和#39;我会发生冲突。
顺便说一句,您应该查看lsyncd
工具作为连续主动扫描的替代方法。它使用内核通知来监视文件系统,并仅在实际发生更改时启动rsync。