Сегодня потребовалось узнать сколько памяти в Салярке всего, сколько свободно и сколько занято… Ага и команды free нету. Но есть kstat, как подсказал скрипт проверки памяти из Nagios, а дальше написал “свой” free:
#!/bin/sh
### Mem/swap using in Solaris
if [ x"$1" != x"---run_in_bash" ]; then
bash $0 ---run_in_bash $@
exit $?
fi
shift
page_size=`kstat -p unix:0:seg_cache:slab_size | awk '{print $2}'`
# RAM
mem_total=`kstat -p unix:0:system_pages:pagestotal | awk '{print $2}'`
mem_total=`expr $mem_total * $page_size / 1024`
mem_used=`kstat -p unix:0:system_pages:pageslocked | awk '{print $2}'`
mem_used=`expr $mem_used * $page_size / 1024`
mem_free=`kstat -p unix:0:system_pages:pagesfree | awk '{print $2}'`
mem_free=`expr $mem_free * $page_size / 1024`
# SWAP
swap_total=`kstat -p unix:0:vminfo:swap_avail | awk '{print $2}'`
swap_total=`expr $swap_total / 1024 / 1024`
swap_used=`kstat -p unix:0:vminfo:swap_alloc | awk '{print $2}'`
swap_used=`expr $swap_used / 1024 / 1024`
swap_free=`kstat -p unix:0:vminfo:swap_free | awk '{print $2}'`
swap_free=`expr $swap_free / 1024 / 1024`
#echo -e "ttotalttusedttfree"
#echo -e "mem:t$mem_totaltt$mem_usedtt$mem_free"
#echo -e "swap:t$swap_totaltt$swap_usedtt$swap_free"
# для более красивого вывода
printf " %14s %14s %14sn" "total" "used" "free"
printf " mem: %14d %14d %14dn" $mem_total $mem_used $mem_free
printf "swap: %14d %14d %14dn" $swap_total $swap_used $swap_free
В качестве источника информации: https://project.openfiler.com/tracker/browser/openfiler/branches/2.x-rpath/var/www/phpsysinfo/includes/os/class.SunOS.inc.php?rev=1161