在 Bash 脚本方面我是新手,所以我希望有人能帮助我。
我有一台运行 11.04 的服务器,我当天的消息包括当前使用了多少内存:
System information as of Tue Sep 24 10:58:28 MDT 2013
System load: 0.0 Processes: 90
Usage of /: 16.6% of 19.68GB Users logged in: 0
Memory usage: 49% IP address for eth0: XX.XX.XX.XX
Swap usage: 12% IP address for eth1: XX.XX.XX.XX
我启动了另一台运行 13.04 的服务器,但该消息不存在。因此,我研究了如何添加它,并在我的 11.04 服务器上发现/etc/update-motd.d
有一个指向脚本的链接/usr/share/landscape/landscape-sysinfo.wrapper
:
#!/bin/sh
cores=$(grep -c ^processor /proc/cpuinfo 2>/dev/null)
[ "$cores" -eq "0" ] && cores=1
threshold="${cores:-1}.0"
if [ $(echo "`cut -f1 -d ' ' /proc/loadavg` < $threshold" | bc) -eq 1 ]; then
echo
echo -n " System information as of "
/bin/date
echo
/usr/bin/landscape-sysinfo
else
echo
echo " System information disabled due to load higher than $threshold"
fi
我将此脚本添加到我的 13.04 服务器,但脚本一定是在某处出错了,因为它显示“其他”消息,“由于负载高于 1.0,系统信息被禁用”。两台服务器的规格相同,除了它们运行的 Ubuntu 版本不同。我如何在 13.04 系统上编辑此脚本以使其显示当前内存使用情况?
更新:
看起来 13.04 没有景观。我运行了dpkg -l | grep landscape
,没有结果。11.04 正在运行。所以我想问题是,如何在没有景观的情况下显示内存使用情况?
答案1
我不知道为什么你的dpkg
命令没有返回landscape-common
包,因为它确实存在在 Raring 和拥有该/usr/bin/landscape-sysinfo
文件。
使用以下命令安装:
sudo apt-get install landscape-common
答案2
如果你想以横向的方式显示你的内存使用情况:
free -k | {
read ; read TITLE TOTAL USED REST
echo "Memory usage: $(( 100 * $USED / $TOTAL ))%"
#you also want swap displayed ? No problem
read ; read TITLE TOTAL USED REST
echo "Swap usage: $(( 100 * $USED / $TOTAL ))%"
}