add log rotate
Build and Deploy Docker / build (push) Successful in 1m42s
Build and Deploy Docker / deploy (push) Has been cancelled

This commit is contained in:
2026-06-30 13:15:45 +02:00
parent c3896d20a1
commit bd25995d0a
5 changed files with 82 additions and 49 deletions
+2 -1
View File
@@ -10,7 +10,8 @@ services:
bash -c "printenv > /etc/environment && cron -f" bash -c "printenv > /etc/environment && cron -f"
volumes: volumes:
- ./project:/var/www/html - ./project:/var/www/html
- ./logs/cron.log:/var/log/cron.log - ./logs/:/var/log/cron
- ./service/logrotate:/etc/logrotate.d/cron-log
environment: environment:
DYNDNS_USER: "${DYNDNS_USER}" DYNDNS_USER: "${DYNDNS_USER}"
DYNDNS_PASSWORD: "${DYNDNS_PASSWORD}" DYNDNS_PASSWORD: "${DYNDNS_PASSWORD}"
+61 -44
View File
@@ -1,54 +1,71 @@
<?php <?php
echo "_____________________________ \n"; $lines = [];
//$lines[] = "_____________________________";
//$lines[] = "____________start____________";
//$lines[] = "_____________________________";
$dateUpdate = date("Y-m-d H:i:s");
$lines[] = "[$dateUpdate]";
$canUpdate = true;
if (isset($_ENV['LOCAL']) && $_ENV['LOCAL']) { if (isset($_ENV['LOCAL']) && $_ENV['LOCAL']) {
die("Die in local"); $lines[] = "die in local";
$canUpdate = false;
} }
// old // old
// https://www.duckdns.org/update?domains=rhost.duckdns.org&token=1b4ab267-b818-4407-8351-8800c6f4fd78 // https://www.duckdns.org/update?domains=rhost.duckdns.org&token=1b4ab267-b818-4407-8351-8800c6f4fd78
$toUpdateString = $_ENV['DYNDNS_DOMAIN_UPDATE'];
$user = $_ENV['DYNDNS_USER'];
$pass = $_ENV['DYNDNS_PASSWORD'];
$dateUpdate = date("Y-m-d H:i:s");
if (!$toUpdateString || !$user || !$pass) { if ($canUpdate) {
die("[$dateUpdate] Empty ENV data!!!!!!!!!!!"); $toUpdateString = $_ENV['DYNDNS_DOMAIN_UPDATE'];
} $user = $_ENV['DYNDNS_USER'];
$toUpdateArray = explode(",", $toUpdateString); $pass = $_ENV['DYNDNS_PASSWORD'];
$useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://rhostoh.cluster029.hosting.ovh.net/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
$content = curl_exec($ch);
if (curl_errno($ch)) {
echo "[$dateUpdate] Error:" . curl_error($ch);
$serverIp = false;
} else {
$serverIp = $content;
}
curl_close($ch);
if ($serverIp) { if (!$toUpdateString || !$user || !$pass) {
foreach ($toUpdateArray as $toUpdate) { $lines[] = "Empty ENV data!!!!!!!!!!!";
$toUpdate = trim($toUpdate); }
$currentIp = trim(shell_exec("dig +short @208.67.222.222 $toUpdate A | head -n1")); $toUpdateArray = explode(",", $toUpdateString);
if ($currentIp == $serverIp) { $useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36';
echo "[$dateUpdate] $toUpdate: same (not update)" . PHP_EOL; $ch = curl_init();
continue; curl_setopt($ch, CURLOPT_URL, "http://rhostoh.cluster029.hosting.ovh.net/");
} curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$url = "https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$toUpdate&myip=$serverIp"; curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$ch = curl_init(); $content = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, $url); if (curl_errno($ch)) {
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $lines[] = "Error:" . curl_error($ch);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); $serverIp = false;
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass"); } else {
$response = curl_exec($ch); $serverIp = $content;
echo "[$dateUpdate] $toUpdate ($currentIp): " . $response . PHP_EOL; }
curl_close($ch); curl_close($ch);
if ($serverIp) {
foreach ($toUpdateArray as $toUpdate) {
$toUpdate = trim($toUpdate);
$currentIp = trim(shell_exec("dig +short @208.67.222.222 $toUpdate A | head -n1"));
if ($currentIp == $serverIp) {
$lines[] = "$toUpdate: same (not update)";
continue;
}
$url = "https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$toUpdate&myip=$serverIp";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
$response = curl_exec($ch);
$lines[] = "$toUpdate ($currentIp): " . $response;
curl_close($ch);
}
} else {
$lines[] = "Server Error!!!!!!!!!!!!!";
} }
} else {
echo "[$dateUpdate] Server Error!!!!!!!!!!!!!" . PHP_EOL;
} }
//$lines[] = "_____________________________";
//$lines[] = "_____________end_____________";
//$lines[] = "_____________________________";
foreach ($lines as $line) {
echo $line . PHP_EOL;
}
+9 -3
View File
@@ -1,16 +1,22 @@
FROM php:8.2-cli FROM php:8.2-cli
ENV TZ=Europe/Warsaw ENV TZ=Europe/Warsaw
RUN echo "date.timezone = Europe/Warsaw" > /usr/local/etc/php/conf.d/timezone.ini
COPY --chown=www-data ./project /var/www/html COPY --chown=www-data ./project /var/www/html
#cron #cron
RUN apt-get update && apt-get -y install cron RUN apt-get update && apt-get -y install cron
RUN apt-get install -y --no-install-recommends dnsutils \ RUN apt-get install -y --no-install-recommends dnsutils logrotate\
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY ./service/crontab /etc/cron.d/maincron COPY ./service/crontab /etc/cron.d/maincron
COPY ./service/logrotate /etc/logrotate.d/cron-log
RUN chmod 0644 /etc/cron.d/maincron RUN chmod 0644 /etc/cron.d/maincron
RUN crontab /etc/cron.d/maincron RUN crontab /etc/cron.d/maincron
RUN touch /var/log/cron.log
RUN mkdir -p /var/log/cron
RUN touch /var/log/cron/cron.log
+1 -1
View File
@@ -1 +1 @@
* * * * * /usr/local/bin/php /var/www/html/updateip.php >> /var/log/cron.log * * * * * /usr/local/bin/php /var/www/html/updateip.php >> /var/log/cron/cron.log
+9
View File
@@ -0,0 +1,9 @@
/var/log/cron/cron.log {
hourly
rotate 14
missingok
notifempty
compress
delaycompress
copytruncate
}