シェルスクリプトは私をサーバーに連れて行きます。

シェルスクリプトは私をサーバーに連れて行きます。

サーバーの稼働時間が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)

関連情報