所以我有一个bash
脚本,可以在服务器上输出详细信息。问题是我需要输出是JSON
。最好的方法是什么?这是bash脚本:
# Get hostname
hostname=`hostname -A` 2> /dev/null
# Get distro
distro=`python -c 'import platform ; print platform.linux_distribution()[0] + " " + platform.linux_distribution()[1]'` 2> /dev/null
# Get uptime
if [ -f "/proc/uptime" ]; then
uptime=`cat /proc/uptime`
uptime=${uptime%%.*}
seconds=$(( uptime%60 ))
minutes=$(( uptime/60%60 ))
hours=$(( uptime/60/60%24 ))
days=$(( uptime/60/60/24 ))
uptime="$days days, $hours hours, $minutes minutes, $seconds seconds"
else
uptime=""
fi
echo $hostname
echo $distro
echo $uptime
所以我想要的输出是这样的:
{"hostname":"server.domain.com", "distro":"CentOS 6.3", "uptime":"5 days, 22 hours, 1 minutes, 41 seconds"}
谢谢。
如果只需要输出小的JSON,请使用printf
:
printf '{"hostname":"%s","distro":"%s","uptime":"%s"}\n' "$hostname" "$distro" "$uptime"
或者,如果您需要产生更大的JSON,请使用[leandro-mora]解释的heredoc。如果您使用here-
doc解决方案,请确保对他的回答进行投票:
cat <<EOF > /your/path/myjson.json
{"id" : "$my_id"}
EOF
一些较新的发行版具有一个名为:/etc/lsb-release
或类似名称(cat /etc/*release
)的文件。因此,你可以 有可能
废除Python的依赖你:
distro=$(awk -F= 'END { print $2 }' /etc/lsb-release)
顺便说一句,您可能应该避免使用反引号。他们有点老式。
问题内容: 我有一个bash脚本,在其中我需要遍历find命令的输出的每一行,但是看来我正在遍历find命令中的每个Word(以空格分隔)。到目前为止,我的脚本如下所示: 我希望这会产生如下输出: 但是我很想得到这样的输出: 我在这里做错了什么? 问题答案: 由于您没有使用的任何更高级的功能,因此可以使用简单的模式来遍历子目录:
我试图使用grep在文件中查找单词“pass_max_days”,然后将其保存在一个变量中,并将其与值为90或更小的正则表达式进行比较。 grep输出为:pass_max_days120
我试图从一个简单的BASH脚本执行一个简单的PHP脚本。这个网站上的答案不能回答我的问题。 这是我的BASH脚本 这是我的PHP脚本 从命令行运行BASH脚本时,出现以下错误。 我试过键入/usr/bin/php-q/home/username/subfolder/durable2。这很好。它跑起来了
问题内容: 假设我在网址“ http://mywebsite.com/myscript.txt”处有一个包含脚本的文件: 而且我想先运行该脚本而不先将其保存到文件中。我该怎么做呢? 现在,我已经看到了语法: 但这似乎不像我保存到文件然后执行时那样。例如,readline不起作用,而输出仅为: 同样,我尝试过: 具有相同的结果。 最初我有一个解决方案,例如: 但这似乎草率,我想要一个更优雅的解决方案
问题内容: 我试图找出一种从Golang执行脚本(.sh)文件的方法。我发现了几种简单的执行命令的方法(例如os / exec),但是我要执行的是执行整个sh文件(该文件设置了变量等)。 为此,使用标准的os / exec方法似乎并不简单:尝试输入“ ./script.sh”并将脚本内容加载到字符串中都不能用作exec函数的参数。 例如,这是我要从Go执行的sh文件: 从Go程序中: 其中mong
问题内容: 我从PHP脚本执行Python脚本时遇到问题。我的客户端使用Bluehost,因此我使用在此描述的easy_install方法为Python安装了第三方模块(numpy):https ://my.bluehost.com/cgi/help/530?step = 530 为了演示我的问题,我创建了两个python脚本和一个PHP脚本。 hello.py包含: hello-numpy.py