Shell 脚本带我进入服务器

Shell 脚本带我进入服务器

我需要检查服务器的正常运行时间是否少于 1 天,如果是,那么我需要一些信息,例如 cpuinfo meminfo。脚本是:

    for SERVER in $( cat /home/mysql/scripts/USER_SCRIPTS/patching_serverlist.txt); do
ping -c 3 $SERVER > /dev/null 2>&1
if [ $? -ne 0 ]
then
        echo "$SERVER is down" >> /home/mysql/scripts/USER_SCRIPTS/pre_patching_result.txt
else
        ssh -q mysql@$SERVER 
        check_uptime
        echo $days
        if [ days < 1 ]
        then
echo -n "Hostname: "
ssh -q mysql@$SERVER hostname >> /home/mysql/scripts/USER_SCRIPTS/pre_patching_result.txt

它的作用是让我进入服务器,即我实际上通过 ssh 连接到服务器, check_uptime 是一个计算天数的函数。

问题是,当我执行此脚本时,我从控制台进入服务器,因此我必须输入exit, 才能在脚本完成时从服务器退出。我只想运行该函数并退出。如何不进入并运行该功能?

答案1

使用非交互式登录,与稍后在hostname远程计算机上执行的脚本中执行的操作相同:

days=$(ssh -q mysql@$SERVER /path/to/check_uptime)

相关内容