{"id":232158,"date":"2023-01-21T19:04:00","date_gmt":"2023-01-21T16:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232158"},"modified":"2022-11-10T07:52:27","modified_gmt":"2022-11-10T04:52:27","slug":"visar-drifttid-foer-serverstatus-paa-webbsidor-med-php-och-crontab","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/visar-drifttid-foer-serverstatus-paa-webbsidor-med-php-och-crontab\/","title":{"rendered":"Visar drifttid f\u00f6r serverstatus p\u00e5 webbsidor med PHP och Crontab"},"content":{"rendered":"<p>Vi vet alla tidigare <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\">i det h\u00e4r inl\u00e4gget<\/a> att vi kan anv\u00e4nda <strong>shell_exec<\/strong> eller <strong>exec<\/strong> i PHP f\u00f6r att f\u00e5 utdata fr\u00e5n ett externt program p\u00e5 servern. S\u00e5 uppenbarligen kan vi k\u00f6ra linux-kommando <strong>uptime<\/strong> f\u00f6r att f\u00e5 status p\u00e5 servern, vilket ger n\u00e5got s\u00e5nt h\u00e4r (eller om du scrollar ner i denna blogg, i slutet av denna sida, hittar du n\u00e4stan realtidsstatusuppdatering, dvs uppdaterad varje 5 minuter):<\/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>Det rekommenderas dock inte att anropa <strong>uptime<\/strong> &#8211; kommandot direkt med <strong>shell_exec<\/strong> eller <strong>exec<\/strong><br \/>\np\u00e5 grund av dessa sk\u00e4l. F\u00f6r det f\u00f6rsta kan <strong>shell_exec<\/strong> och <strong>exec<\/strong> inaktiveras (s\u00e5vitt jag vet) av webbhotellf\u00f6retag, fr\u00e4mst p\u00e5 de delade v\u00e4rdarna av s\u00e4kerhetssk\u00e4l. Fasthosts inaktiverar detta men Godday, \u00e5 andra sidan, f\u00f6rbjuder inte denna anv\u00e4ndning. F\u00f6r det andra anses det vara ineffektivt och tidskr\u00e4vande (CPU) att k\u00f6ra dessa tv\u00e5 kommandon i realtid inom PHP-skript.<\/p>\n<p>Det korrekta\/rekommenderade s\u00e4ttet att erh\u00e5lla s\u00e5dan information \u00e4r f\u00f6ljande: Skapa f\u00f6rst en <a href=\"https:\/\/helloacm.com\/crontab-generator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> som k\u00f6rs med ett tidsintervall, t.ex. varannan minut p\u00e5 servern, med <strong>crontab -e<\/strong> kan du redigera jobben med din favorittextredigerare, t.ex. som <strong>nano<\/strong> eller <strong>vim<\/strong>.<\/p>\n<pre><code>*\/2 * * * * \/usr\/bin\/uptime &gt; $HOME\/htdocs\/uptime.txt<\/code><\/pre>\n<p>S\u00e5ledes, varannan minut (ta bort \/2 f\u00f6r varje minut), kommer filen <strong>uptime.txt<\/strong> att uppdateras och placeras i den offentliga HTTP-mappen. S\u00e5 du kan anv\u00e4nda f\u00f6ljande PHP-skript f\u00f6r att f\u00e5 s\u00e5dan data.<\/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>L\u00e5ter ganska enkelt, eller hur? Detta ger dig en relativt korrekt drifttidsstatus och du kan l\u00e4gga denna information i <strong>footer.php<\/strong> p\u00e5 wordpress-bloggen (rulla ner till slutet av sidan till exempel).<\/p>\n<p>Du kan ocks\u00e5 anv\u00e4nda <strong>DOCUMENT_ROOT<\/strong> servervariabel som representerar rotkatalogen f\u00f6r en webbplats. S\u00e5 se till att <strong>uptime.txt<\/strong> finns i rotkatalogen p\u00e5 en webbplats.<\/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\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visar drifttid f\u00f6r serverstatus p\u00e5 webbsidor med PHP och 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":[848,901,807,724],"tags":[1173],"class_list":["post-232158","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-php-9","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=232158"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/223885"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=232158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=232158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=232158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}