add log rotate
This commit is contained in:
+2
-1
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/var/log/cron/cron.log {
|
||||||
|
hourly
|
||||||
|
rotate 14
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
compress
|
||||||
|
delaycompress
|
||||||
|
copytruncate
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user