如何在没有密码的情况下验证给定 IP 的磁盘空间?

如何在没有密码的情况下验证给定 IP 的磁盘空间?

我正在编写一个 Nagios 插件,它将检查给定 IP 上的磁盘空间(这将是插件中的 $HOSTADDRESS$)。该脚本运行良好,但每次 ssh 时都需要输入密码。我认为这对于插件来说是不可接受的。因此,我想知道是否有一种方法可以将密码放入命令中,以便插件会自动获取它?

#!/bin/bash

used_space=$(ssh $1 "df -h /" | grep -v Filesystem | awk '{print $5}' | sed 
's/%//g');

case $used_space in
   // here goes OK,WARNING,CRITICAL etc. code
esac

答案1

  1. 您可以配置ssh-keygen您的插件无需密码即可自动登录远程服务器的位置

  2. 我们可以通过sshpass它在命令行本身中传递密码

    sshpass -p "password" ssh hostname "df -Ph  | sed -n '/\/$/p'| sed "s/%//g""|awk '{print $(NF-1)}'
    

相关内容