rsync 是一个非常强大的工具,用于通过本地或远程 shell(如 SSH)同步文件和目录。要将本地文件或目录同步到远程服务器上的指定目录,你可以使用 rsync 的 -e 选项来指定远程 shell(通常是 SSH),并通过一个特定的格式来指定远程目标。
基本语法
rsync [选项] 源路径 目标路径
对于远程同步,你可以使用以下格式:
rsync [选项] 源路径 用户名@远程主机:/目标路径
示例
假设你想将本地的 /path/to/local/directory 目录同步到远程服务器 example.com 上的 /path/to/remote/directory 目录,你可以使用以下命令:
rsync -avz /path/to/local/directory username@example.com:/path/to/remote/directory
选项解释
-a:归档模式,它等于 -rlptgoD(递归复制,保留符号链接,保留权限,保留时间戳,保留组,保留所有者,设备/特殊文件)。
-v:详细模式,显示更多信息。
-z:在传输时压缩数据。
使用 SSH 密钥认证(推荐)
为了更安全地使用 rsync 进行远程同步,建议配置 SSH 密钥认证,避免在每次同步时输入密码。首先,在本地机器上生成 SSH 密钥(如果还没有的话):
ssh-keygen -t rsa -b 2048
然后,将公钥复制到远程服务器上:
ssh-copy-id username@example.com
之后,你就可以在同步时不需要密码了:
rsync -avz /path/to/local/directory username@example.com:/path/to/remote/directory
注意事项
确保远程服务器上的 /path/to/remote/directory 已经存在,或者使用 -e ssh 后跟 ssh 选项的完整命令来确保目录被正确创建。例如:
rsync -avz /path/to/local/directory username@example.com:‘mkdir -p /path/to/remote/directory && rsync -avz . /path/to/remote/directory’
但通常,如果目标目录不存在,rsync 会自动创建它。
确保你的用户有权访问远程服务器的目标目录。
通过以上步骤,你可以安全、高效地将本地文件或目录同步到远程服务器。
评论前必须登录!
注册