你可以使用以下Shell脚本来实现这个功能:
#!/bin/bash
count=0
while [ $count -lt 3 ]
do
sshpass -p "your_password" ssh user@30.2.3.1 '/home/test/test.sh' # 免密登录并执行操作
if [ $? -eq 0 ]; then # 执行成功
break
fi
count=$((count+1))
sleep 300 # 等待300秒后重新执行
done
if [ $count -eq 3 ]; then
echo "执行失败!"
exit 1
fi
echo "执行成功!"
其中,需要将your_password
替换为实际的密码,user
替换为实际的用户名。在脚本中使用了sshpass
命令免密登录远程服务器,并执行/home/test/test.sh
脚本。
脚本会进行循环尝试执行,每次失败后会等待300秒。如果连续尝试三次都失败,则报错退出,并打印日志。
请注意,为了安全起见,建议将密码保存在安全的地方,不要直接写在脚本中。另外,确保服务器的IP地址、用户名和密码正确无误。