<p>最后我联系了制造商,问了我的问题。他们说系统没有设置没有密码的连接,他们的SNMP是非常基本的,不会提供我需要的信息。他们说用FTP连接到系统并使用“getlogs”下载配置和日志的存档。不太理想,因为只运行一个命令需要4分钟,但这似乎是我唯一的选择。下面是我编写的脚本,通过将登录凭据添加到.netrc文件来自动检索文件。这适用于RHEL 6.7:</p>
<pre><code>#!/bin/bash
#Retrieve the logs and configuration from a Dot Hill Systems AssuredSAN 3824 automatically.
#Modify "LINE" and "HOST" to fit your configuration.
LINE='machine <IP> login manage password <password>'
HOST='<IP>'
AUTOLOGIN="/root/.netrc"
FILE='logfiles.zip'
#Check for and verify the autologin file
if [ -f $AUTOLOGIN ]; then
printf "Found auto-login file, checking for proper entry... \r"
READLINE=`cat $AUTOLOGIN | grep "$LINE"`
#Append the line to the end of .netrc if file exists but not the line.
if [ "$LINE" != "$READLINE" ]; then
printf "Proper entry not found, creating it... \r"
echo "$LINE" >> "$AUTOLOGIN"
else
printf "Proper entry found... \r"
fi
#Create the Autologin file if it doesn't exist
else
printf "Auto-Login file does not exist, creating it and setting permissions...\r"
echo "$LINE" > "$AUTOLOGIN"
chmod 600 "$AUTOLOGIN"
fi
#Start getting the information from the controller. (This takes a VERY long time)
printf "Retrieving Storage Controller data, this will take awhile... \r"
ftp $HOST << SCRIPT
get logs $FILE
SCRIPT
exit 0
</code></pre>
<p>这给了我一堆压缩文件,但我只需要“存储日志”文件。它大约有500000行,第一部分是XML格式的整个配置,然后是文本格式的配置,然后是系统的日志。我对文件进行了解析,并在末尾剥离了日志,将文件缩减到15000行。从那里我把它分成两个文件(配置.xml以及配置文件). 然后,我把我需要的3个命令的XML输出拉到我之前编写的脚本搜索的3个文件中。现在,我的库存脚本将需要的所有内容都拉入,尽管由于等待系统生成zip文件需要4分钟,所以速度相当慢。我希望这对将来的人有帮助。在</p>
<p><strong>编辑:</strong><br/>
等待系统编译4分钟的时间太长了。所以我最后使用paramiko和python脚本将命令的输出转储到其他代码可以解析的文件中。它接受控制器的IP作为参数。这是给感兴趣的人的剧本。再次感谢你的帮助。在</p>
^{pr2}$