使用shell 脚本编写根据用户输入的文件名(模糊匹配)查找出来并将该文件复制到另一台(自动输入密码)服务器上并改成输入名称
时间: 2024-05-16 13:16:48 浏览: 152
可以使用以下脚本实现:
```shell
#!/bin/bash
read -p "请输入文件名(支持模糊匹配):" filename
read -p "请输入目标服务器IP地址:" ip
read -p "请输入目标服务器用户名:" username
read -s -p "请输入目标服务器密码:" password
echo ""
# 查找文件
file=$(find . -name "*${filename}*")
# 复制文件
if [ -n "$file" ]; then
read -p "请输入新文件名:" newname
scp "$file" "${username}@${ip}:~/newname"
echo "文件已成功复制到目标服务器!"
else
echo "未找到符合条件的文件!"
fi
```
脚本的具体实现过程如下:
1. 提示用户输入文件名,支持模糊匹配。
2. 提示用户输入目标服务器的 IP 地址、用户名和密码。
3. 使用 `find` 命令查找符合条件的文件。
4. 如果找到了文件,则提示用户输入新文件名,并使用 `scp` 命令复制文件到目标服务器上。
5. 如果未找到符合条件的文件,则输出提示信息。
注意,需要将脚本保存为一个可执行文件,并且需要在本地和目标服务器上安装 `ssh` 和 `scp` 命令。另外,为了安全起见,建议将目标服务器的密码保存在一个单独的文件中,并设置只有当前用户能够读取该文件的权限。
阅读全文