编写shell脚本 在A服务器上把B服务器上的东西拷贝到C服务器上
时间: 2023-11-16 16:07:58 浏览: 38
好的,可以使用以下的shell脚本实现:
```
#!/bin/bash
# 远程服务器地址和登录信息
B_SERVER="user@B_server_ip"
C_SERVER="user@C_server_ip"
# 远程目录
REMOTE_DIR="/path/to/remote/directory"
# 本地目录
LOCAL_DIR="/path/to/local/directory"
# 拷贝文件
ssh ${B_SERVER} "tar -czvf - ${REMOTE_DIR}" | ssh ${C_SERVER} "cd ${LOCAL_DIR} && tar -xzvf -"
```
解释一下:
1. `ssh` 命令可以远程登录到另外一台服务器执行命令,`${B_SERVER}` 和 `${C_SERVER}` 分别是 B 和 C 服务器的地址和登录信息。
2. `tar` 命令可以打包和解包文件,`tar -czvf - ${REMOTE_DIR}` 表示在 B 服务器上将 `${REMOTE_DIR}` 目录打包成一个压缩文件并输出到标准输出,`tar -xzvf -` 表示在 C 服务器上从标准输入读取压缩文件并解包到 `${LOCAL_DIR}` 目录。
3. `&&` 符号可以将多个命令连接起来,表示只有前一个命令执行成功后才会执行后一个命令。
4. `${LOCAL_DIR}` 是本地目录,需要在 C 服务器上提前创建好。
注意:在执行上面的 shell 脚本之前,需要先在 A 服务器上配置好 B 和 C 服务器之间的 SSH 免密登录。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)