我需要检查服务器的正常运行时间是否少于 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)