{"id":232479,"date":"2023-01-21T18:51:00","date_gmt":"2023-01-21T15:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232479"},"modified":"2022-11-10T09:53:47","modified_gmt":"2022-11-10T06:53:47","slug":"affichage-de-la-disponibilite-de-letat-du-serveur-sur-les-pages-web-a-laide-de-php-et-crontab","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/affichage-de-la-disponibilite-de-letat-du-serveur-sur-les-pages-web-a-laide-de-php-et-crontab\/","title":{"rendered":"Affichage de la disponibilit\u00e9 de l&rsquo;\u00e9tat du serveur sur les pages Web \u00e0 l&rsquo;aide de PHP et Crontab"},"content":{"rendered":"\n<p>Nous savons tous, pr\u00e9c\u00e9demment, <a href=\"https:\/\/helloacm.com\/use-php-script-to-monitor-temperature-and-uptime-for-raspberry-pi-in-the-browser\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dans cet article<\/a>, que nous pouvons utiliser <strong>shell_exec<\/strong> ou <strong>exec<\/strong> en PHP pour obtenir la sortie d&rsquo;un programme externe sur le serveur. Alors \u00e9videmment, on peut lancer la commande linux <strong>uptime<\/strong> pour obtenir l&rsquo;\u00e9tat du serveur, ce qui donne quelque chose comme \u00e7a (ou si vous faites d\u00e9filer ce blog, \u00e0 la fin de cette page, vous trouverez une mise \u00e0 jour de l&rsquo;\u00e9tat presque en temps r\u00e9el, c&rsquo;est-\u00e0-dire mise \u00e0 jour tous les 5 minutes):<\/p>\n<pre><code>\u00a010:25:01 up 31 days, 15:17, \u00a00 users, \u00a0load average: 0.01, 0.09, 0.12<\/code><\/pre>\n<p>Cependant, il n&rsquo;est pas recommand\u00e9 d&rsquo;invoquer directement la commande <strong>uptime<\/strong> en utilisant <strong>shell_exec<\/strong> ou <strong>exec<\/strong><br \/>\npour ces raisons. Tout d&rsquo;abord, <strong>shell_exec<\/strong> et <strong>exec<\/strong> peuvent \u00eatre d\u00e9sactiv\u00e9s (pour autant que je sache) par les soci\u00e9t\u00e9s d&rsquo;h\u00e9bergement Web, principalement sur les h\u00f4tes partag\u00e9s pour des raisons de s\u00e9curit\u00e9. Fasthosts d\u00e9sactive cela mais Godday, en revanche, n&rsquo;interdit pas cette utilisation. Deuxi\u00e8mement, il est consid\u00e9r\u00e9 comme inefficace et chronophage (CPU) d&rsquo;ex\u00e9cuter ces deux commandes en temps r\u00e9el dans des scripts PHP.<\/p>\n<p>La mani\u00e8re correcte\/recommand\u00e9e d&rsquo;obtenir ces informations est la suivante: Tout d&rsquo;abord, cr\u00e9ez un <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> qui s&rsquo;ex\u00e9cute \u00e0 un intervalle de temps, par exemple toutes les 2 minutes sur le serveur, en utilisant <strong>crontab -e<\/strong> vous permettra de modifier les travaux \u00e0 l&rsquo;aide de votre \u00e9diteur de texte pr\u00e9f\u00e9r\u00e9 tel comme <strong>nano<\/strong> ou <strong>vim<\/strong>.<\/p>\n<pre><code>*\/2 * * * * \/usr\/bin\/uptime &gt; $HOME\/htdocs\/uptime.txt<\/code><\/pre>\n<p>Ainsi, toutes les 2 minutes (supprimer \/2 pour chaque minute), le fichier <strong>uptime.txt<\/strong> sera mis \u00e0 jour et mis sous le dossier public HTTP. Vous pouvez donc utiliser le script PHP suivant pour obtenir ces donn\u00e9es.<\/p>\n<pre><code>$uptime = file_get_contents('&lt;a class=\"vglnk\" target=\"_blank\" href=\"http:\/\/'.$_SERVER['SERVER_NAME'].'\/uptime.txt\" rel=\"nofollow\"&gt;&lt;span&gt;http&lt;\/span&gt;&lt;span&gt;:\/\/'.$_&lt;\/span&gt;&lt;span&gt;SERVER&lt;\/span&gt;&lt;span&gt;['&lt;\/span&gt;&lt;span&gt;SERVER&lt;\/span&gt;&lt;span&gt;_&lt;\/span&gt;&lt;span&gt;NAME&lt;\/span&gt;&lt;span&gt;'].'\/&lt;\/span&gt;&lt;span&gt;uptime&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;txt&lt;\/span&gt;&lt;\/a&gt;');\nif ($uptime) {\n\u00a0 echo $uptime;\n}<\/code><\/pre>\n<p>Cela semble assez facile, non\u00a0? Cela vous donne un statut de disponibilit\u00e9 relativement pr\u00e9cis et vous pouvez mettre cette information dans le <strong>footer.php<\/strong> du blog wordpress (faire d\u00e9filer jusqu&rsquo;\u00e0 la fin de la page par exemple).<\/p>\n<p>Vous pouvez \u00e9galement utiliser la variable de serveur <strong>DOCUMENT_ROOT<\/strong> qui repr\u00e9sente le r\u00e9pertoire racine d&rsquo;un site Web. Assurez-vous donc que <strong>uptime.txt<\/strong> se trouve dans le r\u00e9pertoire racine d&rsquo;un site Web.<\/p>\n<pre><code>$uptime = '';\n$uptimefile = $_SERVER['DOCUMENT_ROOT']. '\/uptime.txt';\nif (is_file($uptimefile)) {\n\u00a0 \u00a0 $uptime = @file_get_contents($uptimefile);\n} \u00a0<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Affichage de la disponibilit\u00e9 de l&rsquo;\u00e9tat du serveur sur les pages Web \u00e0 l&rsquo;aide de PHP et Crontab<\/p>\n","protected":false},"author":1,"featured_media":223885,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,801,841],"tags":[1167],"class_list":["post-232479","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-php-3","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=232479"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232479\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223885"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=232479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=232479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=232479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}