markus
1
V 1.1
<?php
/*
* Szerzői jog: 2024, YnM
* Szerkesztette: Markus ([email protected])
* Minden jog fenntartva.
*/
function getUptime($service) {
$cacheDir = "cache/";
$cacheFile = "{$cacheDir}{$service}_uptime.cache"; // Cache fájl
$lastCheckFile = "{$cacheDir}last_check_time.cache"; // Utolsó ellenőrzés ideje
$cacheTime = 600; // 10 perc cache idő
// Ellenőrizzük, hogy a cache könyvtár létezik-e
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0777, true); // Létrehozza a könyvtárat, ha nem létezik
}
// Ellenőrizzük, hogy létezik-e a cache fájl, és hogy nem járt-e le
$lastCheckTime = file_exists($lastCheckFile) ? file_get_contents($lastCheckFile) : 0;
// Ha a cache fájl nem létezik vagy a cache időtartam lejárt
if (!file_exists($cacheFile) || time() - $lastCheckTime > $cacheTime) {
// Kérdezd le a szolgáltatás futási idejét
$output = shell_exec("systemctl show -p ActiveEnterTimestamp $service 2>/dev/null");
if ($output) {
// Kivesszük az időbélyeget
$timestamp = str_replace('ActiveEnterTimestamp=', '', trim($output));
if ($timestamp && $timestamp != "0") {
// Ha érvényes timestamp
$uptime = date('Y-m-d H:i:s', strtotime($timestamp));
// Cache-eljük az új értéket
file_put_contents($cacheFile, $uptime);
file_put_contents($lastCheckFile, time()); // Frissítjük az utolsó ellenőrzés idejét
return $uptime;
} else {
return false; // Ha nincs érvényes uptime
}
} else {
return false; // Ha a szolgáltatás nem található
}
}
// Használja a cache-ből
return file_get_contents($cacheFile);
}
// Szolgáltatások futási idejének lekérdezése
$services = [
'apache2' => getUptime('apache2'),
'matterbridge' => getUptime('matterbridge'),
'thelounge' => getUptime('thelounge'),
'ircd' => getUptime('ircd'),
'mysql' => getUptime('mysql'),
'nextcloud' => getUptime('nextcloud'),
'testerror' => getUptime('testerror'),
'jellyfin' => getUptime('jellyfin'),
'docker' => getUptime('docker'),
'dovecot' => getUptime('dovecot'),
'[email protected]' => getUptime('[email protected]')
];
// HTML táblázat generálása
echo "<table border='1' style='border-collapse: collapse; width: 50%; margin: 20px auto; text-align: center;'>";
echo "<tr><th style='padding: 10px; font-weight: bold;'>Szolgáltatás neve</th><th style='padding: 10px; font-weight: bold;'>Uptime</th></tr>";
foreach ($services as $serviceName => $uptime) {
// Ha van uptime, zöld, ha nincs, piros
$rowColor = $uptime ? 'background-color: #c8e6c9;' : 'background-color: #ffcccb;';
$uptimeText = $uptime ? $uptime : 'Nincs adat';
echo "<tr style='text-align: center;'>
<td style='padding: 10px; font-weight: bold;'>$serviceName</td>
<td style='padding: 10px; $rowColor'>$uptimeText</td>
</tr>";
}
echo "</table>";
?>
markus
2
V 1.2
<?php
/*
* Szerzői jog: 2024, YnM
* Szerkesztette: Markus ([email protected])
* Minden jog fenntartva.
*/
function getUptime($service) {
$cacheDir = "cache/";
$cacheFile = "{$cacheDir}{$service}_uptime.cache"; // Cache fájl
$lastCheckFile = "{$cacheDir}last_check_time.cache"; // Utolsó ellenőrzés ideje
$cacheTime = 600; // 10 perc cache idő
// Ellenőrizzük, hogy a cache könyvtár létezik-e
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0777, true); // Létrehozza a könyvtárat, ha nem létezik
}
// Ellenőrizzük, hogy létezik-e a cache fájl, és hogy nem járt-e le
$lastCheckTime = file_exists($lastCheckFile) ? file_get_contents($lastCheckFile) : 0;
// Ha a cache fájl nem létezik vagy a cache időtartam lejárt
if (!file_exists($cacheFile) || time() - $lastCheckTime > $cacheTime) {
// Kérdezd le a szolgáltatás futási idejét
$output = shell_exec("systemctl show -p ActiveEnterTimestamp $service 2>/dev/null");
if ($output) {
// Kivesszük az időbélyeget
$timestamp = str_replace('ActiveEnterTimestamp=', '', trim($output));
if ($timestamp && $timestamp != "0") {
// Ha érvényes timestamp
$uptime = date('Y-m-d H:i:s', strtotime($timestamp));
// Cache-eljük az új értéket
file_put_contents($cacheFile, $uptime);
file_put_contents($lastCheckFile, time()); // Frissítjük az utolsó ellenőrzés idejét
return $uptime;
} else {
return false; // Ha nincs érvényes uptime
}
} else {
return false; // Ha a szolgáltatás nem található
}
}
// Használja a cache-ből
return file_get_contents($cacheFile);
}
// Szolgáltatások futási idejének lekérdezése
$services = [
'apache2' => getUptime('apache2') ?: 'N/A',
'matterbridge' => getUptime('matterbridge') ?: 'N/A',
'thelounge' => getUptime('thelounge') ?: 'N/A',
'ircd' => getUptime('ircd') ?: 'N/A',
'mysql' => getUptime('mysql') ?: 'N/A',
'nextcloud' => getUptime('nextcloud') ?: 'N/A',
'testerror' => getUptime('testerror') ?: 'N/A',
'jellyfin' => getUptime('jellyfin') ?: 'N/A',
'docker' => getUptime('docker') ?: 'N/A',
'dovecot' => getUptime('dovecot') ?: 'N/A',
'[email protected]' => getUptime('[email protected]') ?: 'N/A'
];
// Az egyes szolgáltatások uptime-jának megjelenítése
?>
<!-- HTML rész, ahol a PHP változókat felhasználjuk -->
<small class="text-success">Apache2: <?php echo $services['apache2']; ?></small><br>
<small class="text-success">Matterbridge: <?php echo $services['matterbridge']; ?></small><br>
<small class="text-success">Thelounge: <?php echo $services['thelounge']; ?></small><br>
<small class="text-success">IRCD: <?php echo $services['ircd']; ?></small><br>
<small class="text-success">MySQL: <?php echo $services['mysql']; ?></small><br>
<small class="text-success">Nextcloud: <?php echo $services['nextcloud']; ?></small><br>
<small class="text-success">Testerror: <?php echo $services['testerror']; ?></small><br>
<small class="text-success">Jellyfin: <?php echo $services['jellyfin']; ?></small><br>
<small class="text-success">Docker: <?php echo $services['docker']; ?></small><br>
<small class="text-success">Dovecot: <?php echo $services['dovecot']; ?></small><br>
<small class="text-success">WG-Quick: <?php echo $services['[email protected]']; ?></small><br>
markus
3
V1.3
<?php
/*
* Szerzői jog: 2024, YnM
* Szerkesztette: Markus ([email protected])
* Minden jog fenntartva.
*/
// 1. Közvetlen hozzáférés tiltása
if (basename($_SERVER['PHP_SELF']) === basename(__FILE__)) {
http_response_code(403); // Forbidden
exit('Access denied.');
}
// 2. Konstans alapú védelem
if (!defined('YnM_Hu')) {
http_response_code(403);
exit('Nem kellene itt légy');
}
function getUptime($service) {
$cacheDir = "cache/";
$cacheFile = "{$cacheDir}{$service}_uptime.cache"; // Cache fájl
$lastCheckFile = "{$cacheDir}{$service}_last_check_time.cache"; // Utolsó ellenőrzés ideje
$cacheTime = 600; // 10 perc cache idő
// Ellenőrizzük, hogy a cache könyvtár létezik-e
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0777, true); // Létrehozza a könyvtárat, ha nem létezik
}
// Ellenőrizzük, hogy létezik-e a cache fájl, és hogy nem járt-e le
$lastCheckTime = file_exists($lastCheckFile) ? file_get_contents($lastCheckFile) : 0;
// Ha a cache fájl nem létezik vagy a cache időtartam lejárt
if (!file_exists($cacheFile) || time() - $lastCheckTime > $cacheTime) {
// Kérdezd le a szolgáltatás futási idejét
$output = shell_exec("systemctl show -p ActiveEnterTimestamp $service 2>/dev/null");
if ($output) {
// Kivesszük az időbélyeget
$timestamp = str_replace('ActiveEnterTimestamp=', '', trim($output));
if ($timestamp && $timestamp != "0") {
// Ha érvényes timestamp
$uptime = date('Y-m-d H:i:s', strtotime($timestamp));
// Cache-eljük az új értéket
file_put_contents($cacheFile, $uptime);
file_put_contents($lastCheckFile, time()); // Frissítjük az utolsó ellenőrzés idejét
return $uptime;
} else {
return false; // Ha nincs érvényes uptime
}
} else {
return false; // Ha a szolgáltatás nem található
}
}
// Használja a cache-ből
return file_get_contents($cacheFile);
}
// Szolgáltatások futási idejének lekérdezése
$services = [
'YnM-YnM' => getUptime('apache2') ?: 'N/A',
'matterbridge' => getUptime('matterbridge') ?: 'N/A',
'thelounge' => getUptime('thelounge') ?: 'N/A',
'irc' => getUptime('irc') ?: 'N/A',
'mysql' => getUptime('mysql') ?: 'N/A',
'lufi' => getUptime('lufi') ?: 'N/A',
'filmek' => getUptime('filmek') ?: 'N/A',
'jellyfin' => getUptime('jellyfin') ?: 'N/A',
'docker' => getUptime('docker') ?: 'N/A',
'dovecot' => getUptime('dovecot') ?: 'N/A',
'apache2' => getUptime('apache2') ?: 'N/A',
'YnM-VpN' => getUptime('[email protected]') ?: 'N/A'
];
function mySecureFunction() {
return "This function is secure!";
}
?>
markus
4
V 1.4
<?php
/*
* Szerzői jog: 2024, YnM
* Szerkesztette: Markus ([email protected])
* Minden jog fenntartva.
*/
// 1. Közvetlen hozzáférés tiltása
if (basename($_SERVER['PHP_SELF']) === basename(__FILE__)) {
http_response_code(403); // Forbidden
exit('Access denied.');
}
// 2. Konstans alapú védelem
if (!defined('YnM_Hu')) {
http_response_code(403);
exit('Nem kellene itt légy');
}
function getUptime($service) {
// Lekérjük a szolgáltatás állapotát
$statusOutput = shell_exec("systemctl is-active $service");
if (trim($statusOutput) === 'active') {
// Ha aktív a szolgáltatás, lekérjük az uptime-ot
$output = shell_exec("systemctl show -p ActiveEnterTimestamp $service 2>/dev/null");
if ($output) {
// Kivesszük az időbélyeget
$timestamp = str_replace('ActiveEnterTimestamp=', '', trim($output));
if ($timestamp && $timestamp != "0") {
// Ha érvényes timestamp
return date('Y-m-d H:i:s', strtotime($timestamp));
}
}
}
// Ha a szolgáltatás nem aktív, akkor 'OFFLINE' vagy 'N/A'
return 'OFFLINE';
}
function mySecureFunction() {
return "This function is secure!";
}
// Szolgáltatások futási idejének lekérdezése
$services = [
'YnM-YnM' => getUptime('apache2') ?: 'N/A',
'matterbridge' => getUptime('matterbridge') ?: 'N/A',
'thelounge' => getUptime('thelounge') ?: 'N/A',
'irc' => getUptime('irc') ?: 'N/A',
'mysql' => getUptime('mysql') ?: 'N/A',
'lufi' => getUptime('lufi') ?: 'N/A',
'filmek' => getUptime('filmek') ?: 'N/A',
'jellyfin' => getUptime('jellyfin') ?: 'N/A',
'docker' => getUptime('docker') ?: 'N/A',
'dovecot' => getUptime('dovecot') ?: 'N/A',
'apache2' => getUptime('apache2') ?: 'N/A',
'ai' => getUptime('sopel') ?: 'N/A',
'YnM-VpN' => getUptime('[email protected]') ?: 'N/A'
];
?>