{"id":1046,"date":"2023-06-08T11:27:35","date_gmt":"2023-06-08T14:27:35","guid":{"rendered":"https:\/\/marcomapa.com\/artigos\/?p=1046"},"modified":"2023-06-08T14:09:04","modified_gmt":"2023-06-08T17:09:04","slug":"exibindo-estatisticas-do-servidor-linux-com-php","status":"publish","type":"post","link":"https:\/\/marcomapa.com\/artigos\/exibindo-estatisticas-do-servidor-linux-com-php\/","title":{"rendered":"Exibindo estat\u00edsticas do Servidor Linux com PHP"},"content":{"rendered":"\n<p>Uma fun\u00e7\u00e3o simples e pr\u00e1tica para exibirmos dados do servidor que est\u00e1 rodando nossa aplica\u00e7\u00e3o.<br><br>Neste exerc\u00edcio coletaremos dados como:<br>- Mem\u00f3ria RAM utilizada e dispon\u00edvel;<br>- Espa\u00e7o em Disco livre e ocupado;<br>- CPU utilizada;<br>- Gerar dados num\u00e9ricos e percentuais;<br><\/p>\n\n\n\n<p>1-) Vamos criar a fun\u00e7\u00e3o:<\/p>\n\n\n<p>\u00a0<\/p>\n<pre><br \/>public function get_stats(){<br \/><br \/>\/\/ Executa o comando 'free -b' para obter informa\u00e7\u00f5es de mem\u00f3ria em bytes<br \/>$output = shell_exec('free -b');<br \/><br \/>\/\/ Analisa a sa\u00edda do comando para obter o total de mem\u00f3ria RAM<br \/>$lines = explode(\"\\n\", $output);<br \/>$memoryLine = explode(\" \", preg_replace('\/\\s+\/', ' ', $lines[1]));<br \/>$totalMemory = intval($memoryLine[1]);<br \/>$usedMemory = intval($memoryLine[2]);<br \/><br \/>\/\/ Converte o total de mem\u00f3ria para gigabytes (GB)<br \/>$total_ram = round($totalMemory \/ 1024 \/ 1024 \/ 1024, 2);<br \/>\/\/ Converte a quantidade de mem\u00f3ria utilizada para gigabytes (GB)<br \/>$usage_ram = round($usedMemory \/ 1024 \/ 1024 \/ 1024, 2);<br \/><br \/>$percent_used = ($usage_ram \/ $total_ram) * 100;<br \/>$disk_free = round(disk_free_space('\/') \/ (1024 * 1024 * 1024),2);<br \/>$disk_total = round(disk_total_space('\/') \/ (1024 * 1024 * 1024),2);<br \/>$percent_disk_used = (($disk_total - $disk_free)\/ $disk_total) * 100;<br \/>$percent_disk_free = ($disk_free \/ $disk_total) * 100;<br \/><br \/>\/\/ retorna um array com as estat\u00edsticas<br \/>return array(<br \/>'total_ram' =&gt; $total_ram,<br \/>'usage_ram' =&gt; $usage_ram,<br \/>'percent_used' =&gt; $percent_used,<br \/>'cpu_usage_last_5_min' =&gt; sys_getloadavg()[1],<br \/>'disk_free' =&gt; $disk_free,<br \/>'disk_total'=&gt; $disk_total,<br \/>'percent_disk_used'=&gt; $percent_disk_used,<br \/>'percent_disk_free'=&gt; $percent_disk_free<br \/>);<br \/><br \/>}<br \/><br \/><\/pre>\n\n\n<p>2-) Para imprimir os resultados voc\u00ea pode chamar a fun\u00e7\u00e3o:<br><strong><em>&lt;?php $stats = get_stats(); ?><\/em><\/strong><br>E utilizar o <em>echo<\/em> nas se\u00e7\u00f5es do layout que deseja popular:<br><strong><em>&lt;?=$stats['usage_ram']?> GB<\/em><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Utilizando um pouco de css voc\u00ea pode estilizar a apresenta\u00e7\u00e3o:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"199\" class=\"wp-image-1047\" style=\"width: 150px;\" src=\"https:\/\/marcomapa.com\/artigos\/wp-content\/uploads\/2023\/06\/1.png\" alt=\"\"><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Informa\u00e7\u00f5es Importantes:<\/strong><br>- No caso de estar rodando o script em <em>VPS<\/em>, certifique-se de que o caminho do diret\u00f3rio (<code>'\/'<\/code> no exemplo acima) esteja correto para o disco que voc\u00ea deseja calcular o percentual.<\/p>\n\n\n\n<p>- Lembre-se de que a disponibilidade da fun\u00e7\u00e3o <code>sys_getloadavg()<\/code> pode depender da plataforma e da configura\u00e7\u00e3o do servidor. Certifique-se de que sua instala\u00e7\u00e3o do PHP suporte essa fun\u00e7\u00e3o antes de us\u00e1-la.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma fun\u00e7\u00e3o simples e pr\u00e1tica para exibirmos dados do servidor que est\u00e1 rodando nossa aplica\u00e7\u00e3o. Neste exerc\u00edcio coletaremos dados como:-<\/p>\n","protected":false},"author":1,"featured_media":1047,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7,5],"tags":[],"class_list":["post-1046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-php","category-web"],"_links":{"self":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/comments?post=1046"}],"version-history":[{"count":32,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1046\/revisions"}],"predecessor-version":[{"id":1098,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/posts\/1046\/revisions\/1098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media\/1047"}],"wp:attachment":[{"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/media?parent=1046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/categories?post=1046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcomapa.com\/artigos\/wp-json\/wp\/v2\/tags?post=1046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}