sh脚本,通过sshpass命令连接到指定IP,使用here文档语法<<EOF执行多个命令,其中一个命令通过uname -m判断是否aarch64
时间: 2024-03-27 12:37:53 浏览: 110
可以参考以下的sh脚本:
```sh
#!/bin/bash
# 设置ssh连接的用户名和密码
USER="your_username"
PASSWORD="your_password"
# 设置要连接的远程IP
REMOTE_IP="remote_ip_address"
# 判断是否为aarch64架构
if [[ "$(uname -m)" == "aarch64" ]]; then
echo "This is aarch64 architecture."
else
echo "This is not aarch64 architecture."
fi
# 使用sshpass连接到远程IP并执行多个命令
sshpass -p "${PASSWORD}" ssh "${USER}@${REMOTE_IP}" << EOF
echo "Connected to ${REMOTE_IP}."
echo "Current directory: \$(pwd)."
echo "List files: \$(ls)."
# 在这里添加需要执行的命令
# ...
EOF
```
其中,`sshpass`是一个用于通过ssh连接并输入密码的命令,需要提前安装。`<< EOF`表示使用here文档语法,将EOF之间的内容作为输入传递给ssh命令执行。在EOF之间可以添加需要执行的多个命令。在本例中,使用`uname -m`命令判断当前系统架构是否为aarch64,然后执行一些简单的命令。
相关问题
sh脚本中,读取指定文本文件中多个ip地址和密码,ssh连接文本文件中ip,执行创建多个命令
以下是一个示例脚本,可以读取指定文本文件中的多个IP地址和密码,SSH连接到每个IP地址并执行多个命令。请注意,这个脚本需要使用sshpass命令来传递密码,因此必须先安装sshpass。
```bash
#!/bin/bash
# 指定文本文件的路径和文件名
filename="/path/to/file.txt"
# 读取文件中的每一行
while read -r line
do
# 从每行中提取IP地址和密码
ip=$(echo $line | cut -d ' ' -f 1)
password=$(echo $line | cut -d ' ' -f 2)
# 执行SSH连接并执行多个命令
sshpass -p $password ssh -o StrictHostKeyChecking=no $ip <<EOF
# 在这里执行多个命令,例如:
echo "Connected to $ip"
ls -la
uname -a
# ...
EOF
done < "$filename"
```
在这个脚本中,我们首先指定了文本文件的路径和文件名。然后,我们使用while循环来读取文件中的每一行,并从每行中提取IP地址和密码。接下来,我们使用sshpass命令来连接到每个IP地址,并执行多个命令。在这个例子中,我们只是打印了一些信息和执行了一些基本的命令,但你可以根据自己的需要修改这些命令。请注意,我们使用了here文档语法(<<EOF)来将需要执行的命令嵌入到ssh连接中。这个语法非常有用,因为它可以让我们在SSH连接中执行多个命令,而不必每次都建立一个新的连接。
阅读全文