✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Visar drifttid för serverstatus på webbsidor med PHP och Crontab

10

Vi vet alla tidigare i det här inlägget att vi kan använda shell_exec eller exec i PHP för att få utdata från ett externt program på servern. Så uppenbarligen kan vi köra linux-kommando uptime för att få status på servern, vilket ger något sånt här (eller om du scrollar ner i denna blogg, i slutet av denna sida, hittar du nästan realtidsstatusuppdatering, dvs uppdaterad varje 5 minuter):

 10:25:01 up 31 days, 15:17,  0 users,  load average: 0.01, 0.09, 0.12

Det rekommenderas dock inte att anropa uptime – kommandot direkt med shell_exec eller exec
på grund av dessa skäl. För det första kan shell_exec och exec inaktiveras (såvitt jag vet) av webbhotellföretag, främst på de delade värdarna av säkerhetsskäl. Fasthosts inaktiverar detta men Godday, å andra sidan, förbjuder inte denna användning. För det andra anses det vara ineffektivt och tidskrävande (CPU) att köra dessa två kommandon i realtid inom PHP-skript.

Det korrekta/rekommenderade sättet att erhålla sådan information är följande: Skapa först en crontab som körs med ett tidsintervall, t.ex. varannan minut på servern, med crontab -e kan du redigera jobben med din favorittextredigerare, t.ex. som nano eller vim.

Således, varannan minut (ta bort /2 för varje minut), kommer filen uptime.txt att uppdateras och placeras i den offentliga HTTP-mappen. Så du kan använda följande PHP-skript för att få sådan data.

Låter ganska enkelt, eller hur? Detta ger dig en relativt korrekt drifttidsstatus och du kan lägga denna information i footer.php på wordpress-bloggen (rulla ner till slutet av sidan till exempel).

Du kan också använda DOCUMENT_ROOT servervariabel som representerar rotkatalogen för en webbplats. Så se till att uptime.txt finns i rotkatalogen på en webbplats.

$uptime = ''; $uptimefile = $_SERVER['DOCUMENT_ROOT']. '/uptime.txt'; if (is_file($uptimefile)) {     $uptime = @file_get_contents($uptimefile); }  

Inspelningskälla: helloacm.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer