﻿{"id":139,"date":"2009-03-23T19:10:46","date_gmt":"2009-03-23T18:10:46","guid":{"rendered":"http:\/\/www.flapane.com\/blog\/?p=139"},"modified":"2014-04-25T20:10:38","modified_gmt":"2014-04-25T19:10:38","slug":"script-che-mostra-le-statistiche-del-computer-linux-e-osx","status":"publish","type":"post","link":"https:\/\/www.flapane.com\/blog\/2009\/03\/script-che-mostra-le-statistiche-del-computer-linux-e-osx\/","title":{"rendered":"Script che mostra le statistiche del computer ( linux e osx )"},"content":{"rendered":"<p>Circa 2 anni fa, avendo bisogno di controllare facilmente la situazione di un computer con Ubuntu via shell e con un solo comando, ho iniziato a scrivere un bash script che tenesse sotto controllo tutti i parametri del computer.<\/p>\n<p>Molto spesso non si ha voglia di installare svariate gui per avere sotto controllo temperatura, frequenza cpu, spazio libero, ram, dati trasferiti, informazioni sul kernel e la distro in uso ecc ecc, o magari non vengono mostrati tutti i dati che si vorrebbero all&#8217;interno di un unico programma.<br \/>\n<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1956 image\" src=\"https:\/\/www.flapane.com\/blog\/wp-content\/uploads\/2009\/03\/logo_debian_shell_edited.png\" alt=\"shell unix\" width=\"417\" height=\"264\" \/><br \/>\nUna shell unix mette a disposizione grandissime potenzialit\u00e0, e si possono ricavare, a proprio piacimento, tutte le informazioni che si vogliono, e magari metterle insieme per poterle visualizzare a schermo, inviarle su una pagina web o quant&#8217;altro.<!--more--><\/p>\n<p>In questo caso, dopo aver perfezionato lo script su Ubuntu, l&#8217;ho copiato su OSX su un ibook G4 e piano piano l&#8217;ho adattato ad OSX, portandolo a mostrare quasi le stesse identiche informazioni che vengono mostrate su Linux Ubuntu.<\/p>\n<p>Ecco i codici sorgenti, provati sia con athlon xp che con athlon 64 (Ubuntu) che con iBook g4 (OSX).<br \/>\nProbabilmente, nella versione per OSX, le temperature non vengono rilevate correttamente con un processore Intel, ma questo non posso verificarlo.<\/p>\n<p><strong><span style=\"color: #ff0000;\">&#8211; UBUNTU<\/span><\/strong><span class=\"no_translate\"><\/span><\/p>\n<pre class=\"brush:shell\">#script stats\r\n#monitor your hardware and software data in ubuntu\r\n#copyright flapane.com 2009\r\n\r\nb=`uname -r`\r\na=`cat \/proc\/cpuinfo | grep 'model name' | sed -e 's\/.*: \/\/' | tail --lines=1`\r\ne=`sensors | grep 'temp2' | sed -e 's\/.*: \/\/'  | awk '{print $1}'`\r\n#WITHOUTLMSENSOR e=`cat \/proc\/acpi\/thermal_zone\/THRM\/temperature | grep 'temperature' | sed -e 's\/\u00ae\/\/'`\r\nf=`cat \/etc\/issue.net`\r\ng=`\/sbin\/ifconfig eth0 | grep 'Byte RX' | awk '{print $3 $4}'`\r\nh=`\/sbin\/ifconfig eth0 | grep 'Byte RX' | awk '{print $7 $8}'`\r\ni=`free -m | grep 'buffers\/cache' | awk '{print $3}'`\r\nj=`cat \/proc\/meminfo | grep 'MemTotal' | awk '{print $2}'`\r\nk=`uptimemod`\r\nl=`cat \/proc\/cpuinfo | grep 'cpu MHz' | sed -e 's\/.*: \/\/' | tail --lines=1`\r\nx=`expr $i \\\/ 1024`\r\ny=`expr $j \\\/ 1024`\r\nm=`dmesg | grep -i -F 'processor.' | sed -e 's\/.*] \/\/' | tail --lines=1`\r\nn=`sensors | grep 'fan1' | sed -e 's\/.*: \/\/'  | awk '{print $1}'`\r\no=`sensors | grep 'vid' | sed -e 's\/.*: \/\/'  | awk '{print $1}'`\r\np=`cat \/sys\/class\/hwmon\/hwmon0\/device\/pwm2`\r\nq=`df -h  | sed -e 's\/^\/-=[ \/g; s\/$\/ ]=-\/g' | egrep -e sd -e hd`\r\n\r\necho \"PC statistic\"\r\n\r\necho \"-=[ Kernel info: $b ]=-\"\r\necho \"-=[ $f ]=-\"\r\necho \"-=[ CPU Info: $a ]=-\"\r\necho \"-=[ CPU Full: $m ]=-\"\r\necho \"-=[ CPU Mhz: $l ]=-\"\r\necho \"-=[ CPU Temp.: $e ]=-\"\r\necho \"-=[ CPU Vcore: $o ]=-\"\r\necho \"-=[ CPU Fan: $n (pwm:$p)]=-\"\r\necho \"-=[ Incoming\/Outgoing: $g \/ $h ]=-\"\r\necho \"-=[ Used\/Total memory: $i MB \/ $y MB ]=-\"\r\necho \"-=[ File systems: ]=-\"\r\necho \"$q\"\r\necho \"-=[ $k ]=-\"<\/pre>\n<p><span class=\"no_translate\">(uptimemod)<\/span><\/p>\n<pre class=\"brush:shell\">#!\/bin\/bash\r\n\r\n# created by masterminds\r\n\r\na=`cat \/proc\/uptime | cut -d \" \" -f1`\r\nb=`echo $a | cut -d \".\" -f1`\r\ne=`expr $b \\\/ 86400`\r\nf=`expr $b \\% 86400`\r\ng=`expr $f \\\/ 3600`\r\nh=`expr $f \\% 3600`\r\ni=`expr $h \\\/ 60`\r\nj=`expr $h \\% 60`\r\n\r\nif [ $e == 0 ]\r\nthen\r\nif [ $g == 0 ]\r\nthen\r\necho \"Uptime: $i min, $j sec\"\r\nelse\r\necho \"Uptime: $g hour, $i min, $j sec\"\r\nfi\r\nelse\r\nif [ $g == 0 ]\r\nthen\r\necho \"Uptime: $e day, $i min, $j sec\"\r\nelse\r\necho \"Uptime: $e day, $g hour, $i min, $j sec\"\r\nfi\r\nfi<\/pre>\n<p><span class=\"no_translate\"><\/span><span style=\"color: #ff0000;\"><strong>&#8211; MAC OSX<\/strong><\/span><span class=\"no_translate\"><\/span><\/p>\n<pre class=\"brush:shell\">#!\/bin\/bash\r\n#Mac os stats from my old linux stats script http:\/\/peek.snipurl.com\/2zgm9 \r\n#author flapane (www.flapane.com)\r\n#last rev. 9-sep-08\r\n\r\n#get temps by djbidi@gmail.com it probably don't gets temp from Intel cpus\r\nsensors=`ioreg -n IOHWSensor | awk '\/location\/ || \/current-value\/ || \/\"type\"\/' | sed -e 's\/[^\"]*\"\/\/' -e 's\/\" =\/\/' -e 's\/location\/\/' -e 's\/type\/\/' -e 's\/\"\/\/g' | awk '{ if ((NR % 3) == 0) print $0; else printf $0 \" \" }'`\r\n\r\n#get other datas\r\nsysprofhw=`system_profiler SPHardwareDataType`\r\nsysprofpow=`system_profiler SPPowerDataType`\r\nup=`uptime`\r\nwire=`top -l 1 | grep PhysMem | awk '{print $2}' | sed -e 's\/M.*\/\/'`\r\nact=`top -l 1 | grep PhysMem | awk '{print $4}' | sed -e 's\/M.*\/\/'`\r\nnetstat=`netstat -ib | grep en1` \r\n\r\na=`echo \"$sysprofhw\" | awk '\/Machine Name\/ || \/Machine Model\/ || \/CPU Type\/' | sed 's\/[^:]*: \/\/' | awk '{printf $0 \" \" }'`\r\n\r\nb=`uname -r`\r\n\r\nc=`echo \"$sysprofhw\" | grep CPU | grep Speed | awk '{print $3}'`\r\n\r\nd=`echo \"$sensors\" | grep 'temperature' | awk '{ for(i=1;i&lt;5;i++) if ($i==\"current-value\") $(i+1)=((( (($(i+1) \/ 2^13) - ($(i+1) \/ 2^13) % 1 ) \/ 2^3) - .5)\" C\\t\"); print $0 }' | sed -e 's\/current-value \/\/' -e 's\/temperature\/\/' | grep CPU | awk '{print $1 $2}'`\r\n\r\ne=`system_profiler SPSoftwareDataType | grep Mac | awk '{print $6}'`\r\n\r\nf=`echo \"$netstat\" | awk '{print $7}' | sed 1q`\r\n\r\ng=`echo \"$netstat\" | awk '{print $10}' | sed 1q`\r\n\r\nmbytesin=`expr $f \\\/ 1024000`\r\nmbytesout=`expr $g \\\/ 1024000`\r\n\r\nh=`echo \"$wire+$act\" | bc`\r\n\r\nj=`system_profiler SPHardwareDataType | grep Memory | awk '{print $2}'`\r\n\r\nk=`expr $j \\* 1024`\r\n\r\nl=`echo \"$sensors\" | grep 'temperature' | awk '{ for(i=1;i&lt;5;i++) if ($i==\"current-value\") $(i+1)=((( (($(i+1) \/ 2^13) - ($(i+1) \/ 2^13) % 1 ) \/ 2^3) - .5)\" C\\t\"); print $0 }' | sed -e 's\/current-value \/\/' -e 's\/temperature\/\/' | grep GPU | awk '{print $1 $2}'`\r\n\r\nm=`echo \"$sensors\" | grep 'temperature' | awk '{ for(i=1;i&lt;5;i++) if ($i==\"current-value\") $(i+1)=((( (($(i+1) \/ 2^13) - ($(i+1) \/ 2^13) % 1 ) \/ 2^3) - .5)\" C\\t\"); print $0 }' | sed -e 's\/current-value \/\/' -e 's\/temperature\/\/' | grep BATTERY | awk '{print $1 $2}'`\r\n\r\nn=`echo \"$sensors\" | grep -v 'temperature' | awk '{ for(i=1;i&lt;5;i++) if ($i==\"current-value\") $(i+1)=(substr((($(i+1)\/2^16)\"\\t\"),1,8)); print $0 }' | sed -e 's\/current-value \/\/' | grep CORE | awk '{print $1}'`\r\n\r\no=`echo \"$sysprofpow\" | grep Full | grep Charge | awk '{print $5}'`\r\n\r\np=`echo \"$sysprofpow\" | grep Remain | awk '{print $4}'`\r\n\r\n#shows airport name\r\n#q=`dmesg | grep Active | sed q | awk '{print $4}'`\r\n\r\n#upday=`echo \"$up\" | awk '{ print $3,$4 }' | awk -F, '{ print $1 }'`\r\n#uphour=`echo \"$up\" | awk '{ print $5 }' | sed -e 's\/:.*\/\/'`\r\n#upmin=`echo \"$up\" | awk '{ print $5 }' | sed s\/'.*: *'\/\/ | sed -e 's\/,.*\/\/'`\r\n\r\nuptotal=`uptime | awk '\r\n    $4 ~ \/mins\/ { d=0;  h=0;  m=$3; exit }\r\n    $4 ~ \/day\/  { d=$3; split($5,a,\":\"); h=a[1]; m=a[2]; exit }\r\n    { d=0; split($3,a,\":\"); h=a[1]; m=a[2]; exit }\r\n    END { printf(\"-=[ Uptime: %d day%s, %d hours, %d mins ]=-\\n\",\r\n                  d, (d == 1 ? \"\" : \"s\"), h, m) }\r\n'`\r\n\r\n#echo stats\r\necho \"PC statistic\"\r\necho \"-=[ Kernel info: Darwin $b ]=-\"\r\necho \"-=[ Mac OS X $e ]=-\"\r\necho \"-=[ CPU Info: $a @$c Ghz ]=-\"\r\necho \"-=[ CPU Temperature: $d ]=-\"\r\necho \"-=[ CPU Vcore: $n V ]=-\"\r\necho \"-=[ GPU Temperature: $l ]=-\"\r\necho \"-=[ Battery Temperature: $m ]=-\"\r\necho \"-=[ Battery Capacity: $p on $o mAh ]=-\"\r\necho \"-=[ Incoming\/Outgoing wlan: $mbytesin MB \/ $mbytesout MB ]=-\"\r\necho \"-=[ Used\/Total memory: $h MB \/ $k MB ]=-\"\r\necho \"$uptotal\"<\/pre>\n<p><span class=\"no_translate\"><\/span>Liberi di modificare, migliorare e adattare il codice, pur citando l&#8217;autore.<\/p>\n<p>Gli script si possono scaricare anche al <a title=\"OSX Linux repository\" href=\"https:\/\/www.flapane.com\/nix.php\">solito osx\/linux repository<\/a><\/p>\n<p>Questi sono gli output di esempio:<span class=\"no_translate\"><\/span><\/p>\n<p><span class=\"no_translate\"><strong>Ubuntu con Athlon XP:<br \/>\n<\/strong>PC statistic<br \/>\n-=[ Kernel info: 2.6.22-14-386 ]=-<br \/>\n-=[ Ubuntu 7.10 ]=-<br \/>\n-=[ CPU Info: AMD Athlon(tm)\u00a0 ]=-<br \/>\n-=[ CPU Full: Detected 2004.568 MHz processor. ]=-<br \/>\n-=[ CPU Mhz: 1404.000 ]=-<br \/>\n-=[ CPU Temp.: +36.0\u00b0C ]=-<br \/>\n-=[ CPU Vcore: +1.425 ]=-<br \/>\n-=[ CPU Fan: 3590 (pwm:15)]=-<br \/>\n-=[ Incoming\/Outgoing: (29.2MB) \/ (6.3MB) ]=-<br \/>\n-=[ Used\/Total memory: 156 MB \/ 504 MB ]=-<br \/>\n-=[ File systems: ]=-<br \/>\n-=[ \/dev\/sda2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a06,0G\u00a0 4,7G\u00a0 1,1G\u00a0 82% \/ ]=-<br \/>\n-=[ \/dev\/sda1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0180G\u00a0 \u00a083G\u00a0 \u00a098G\u00a0 46% \/media\/sda1 ]=-<br \/>\n-=[ \/dev\/hda1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 38G\u00a0 2,6G\u00a0 \u00a035G\u00a0 \u00a07% \/media\/hda1 ]=-<br \/>\n-=[ Uptime: 3 hour, 27 min, 38 sec ]=-<\/span><\/p>\n<p><span class=\"no_translate\"><strong>OSX con iBook g4<\/strong><\/span><\/p>\n<p><span class=\"no_translate\">PC statistic<br \/>\n-=[ Kernel info: Darwin 8.11.0 ]=-<br \/>\n-=[ Mac OS X 10.4.11 ]=-<br \/>\n-=[ CPU Info: iBook G4 PowerBook6,7 PowerPC G4 (1.5)\u00a0 @1.33 Ghz]=-<br \/>\n-=[ CPU Temperature: 50.5C ]=-<br \/>\n-=[ CPU Vcore: 1.12242 V ]=-<br \/>\n-=[ GPU Temperature: 51.75C ]=-<br \/>\n-=[ Battery Temperature: 29.5C ]=-<br \/>\n-=[ Battery Capacity: 3840 on 4013 mAh]=-<br \/>\n-=[ Incoming\/Outgoing en1: 819 MB \/ 77 MB ]=-<br \/>\n-=[ Used\/Total memory: 364 MB \/ 1024 MB ]=-<br \/>\n-=[ Uptime: 3 days, 7 hours, 35 mins ]=-<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Circa 2 anni fa, avendo bisogno di controllare facilmente la situazione di un computer con Ubuntu via shell e con un solo comando, ho iniziato a scrivere un bash script che tenesse sotto controllo tutti i parametri del computer.<\/p>\n<p>Molto spesso non si ha voglia di installare svariate gui per avere sotto controllo temperatura, frequenza cpu, spazio libero, ram, dati trasferiti, informazioni sul kernel e la distro in uso ecc ecc, o magari non vengono mostrati tutti i dati che si vorrebbero all&#8217;interno di un unico programma.<\/p>\n","protected":false},"author":1,"featured_media":170,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[54,25,16],"tags":[19,67,302,31,15,66,300],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts\/139"}],"collection":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/comments?post=139"}],"version-history":[{"count":0,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/posts\/139\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/media\/170"}],"wp:attachment":[{"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/media?parent=139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/categories?post=139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flapane.com\/blog\/wp-json\/wp\/v2\/tags?post=139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}