执行rsync -azv --progress不用输入密码
时间: 2023-10-07 22:14:27 浏览: 60
要在执行rsync命令时不需要输入密码,需要使用SSH密钥来进行身份验证。以下是实现此目的的步骤:
1. 生成 SSH 密钥对:在本地计算机上使用以下命令生成 SSH 密钥对:
```
ssh-keygen
```
该命令将生成一个公钥和私钥,分别为 id_rsa.pub 和 id_rsa。
2. 将公钥复制到远程服务器:使用以下命令将公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中:
```
ssh-copy-id user@remote_host
```
这将在远程主机的 ~/.ssh/authorized_keys 文件中添加公钥。
3. 测试 SSH 连接:使用以下命令测试 SSH 连接是否正常:
```
ssh user@remote_host
```
4. 执行 rsync 命令:现在,您可以使用以下命令执行 rsync 命令,而不需要输入密码:
```
rsync -azv --progress /path/to/local/dir user@remote_host:/path/to/remote/dir
```
注意:确保您在 rsync 命令中使用正确的路径和文件名。
相关问题
#!/bin/bash rsync -avz rsync -avz rsync -avz rsync -avz
这个脚本看起来只是简单地执行了四次相同的 rsync 命令,并没有指定具体的源文件和目标位置,因此无法完成实际的文件同步操作。如果你想要同步文件,你需要提供源文件和目标位置的具体路径。
以下是一个示例脚本,它使用循环来执行四次 rsync 命令,并指定了源文件和目标位置:
```bash
#!/bin/bash
# 设置需要同步的服务器列表
servers=("AS2" "AS3" "AS4")
# 设置需要同步的文件或目录
source_dir="/path/to/source"
target_dir="/path/to/target"
# 循环同步文件到每个服务器
for server in "${servers[@]}"; do
rsync -avz "$source_dir" "$server:$target_dir"
done
```
请将 `source_dir` 替换为源文件或目录的实际路径,将 `target_dir` 替换为目标位置的实际路径,然后运行脚本。这样,它将会按照你指定的路径来同步文件到每个服务器。
rsync --progress是啥意思
rsync是一种常用的文件同步工具,--progress是rsync的一个选项,它的作用是在传输文件时显示传输进度。当你使用rsync传输大量文件时,--progress选项可以让你清楚地了解传输的进度,以及还需要多长时间才能完成传输。
举个例子,如果你想要同步本地文件夹/home/rsynctest/到远程服务器192.168.1.10上的test文件夹,可以使用以下命令:
```shell
rsync -vzrtp --progress --delete --password-file=/etc/test rsynctest@192.168.1.10::test /home/rsynctest
```
其中,--progress选项会显示传输进度。
阅读全文