【发布时间】:2016-03-07 19:17:57
【问题描述】:
我正在尝试以下方法:
#!/bin/bash
NodeIP="10.63.12.19"
userpd="password"
expect -c "
spawn ssh root@$NodeIP
expect "*assword:"
send \"$userpd\r\"
interact
"
CONFIG_FILE="/etc/main/params.conf"
User_val=10
IP_val=5
Blocking_max=2
Monitoring_max=2
sed -c -i "s/\(userMaxFailAttempts *= *\).*/\1$User_max/" $CONFIG_FILE
sed -c -i "s/\(userMonitoringWindow *= *\).*/\1$Monitoring_window/" $CONFIG_FILE
sed -c -i "s/\(userBlockingWindow *= *\).*/\1$Blocking_window/" $CONFIG_FILE
sed -c -i "s/\(ipMaxFailAttempts *= *\).*/\1$IP_max/" $CONFIG_FILE
sed -c -i "s/\(ipMonitoringWindow *= *\).*/\1$Monitoring_window/" $CONFIG_FILE
sed -c -i "s/\(ipBlockingWindow *= *\).*/\1$Blocking_window/" $CONFIG_FILE
我需要在远程服务器上执行 ssh 并编辑上面的 param.conf 文件,并且我还需要在该 ssh 会话中执行一些其他命令。目前,文件没有被上述方法修改
【问题讨论】:
-
您需要在 Expect 会话中运行 sed 命令 - 就脚本而言,您在 Expect 会话结束后运行它们,因此您回到了本地机器上。