#!/bin/sh # ovh-dynhost-update.sh - POSIX sh verzió # ---------- Konfiguráció ---------- DH_USER="meszely.eu-matrix" DH_PASS="virgI6774#Panda" HOSTNAME="home.meszely.eu" LOGFILE="/var/log/ovh-dynhost-update.log" # ---------- VÉGE konfiguráció ---------- log() { echo "$(date -Iseconds) - $*" >> "${LOGFILE}" 2>/dev/null || echo "$*" } get_public_ip() { curl -fsS https://api.ipify.org || echo "" } get_dns_ip() { dig +short A "${HOSTNAME}" | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | head -n1 || echo "" } update_ovh() { ip="$1" curl -fsS --max-time 30 --user "${DH_USER}:${DH_PASS}" \ "https://www.ovh.com/nic/update?system=dyndns&hostname=${HOSTNAME}&myip=${ip}" || echo "" } main() { log "Script indítva — host: ${HOSTNAME}" public_ip="$(get_public_ip)" if [ -z "$public_ip" ]; then log "Hiba: nem sikerült lekérni a publikus IP-t." exit 1 fi log "Publikus IP: $public_ip" dns_ip="$(get_dns_ip)" if [ -z "$dns_ip" ]; then log "Nincs A rekord jelenleg vagy nem elérhető (dns_ip üres)." else log "DNS-en található A rekord: $dns_ip" fi if [ "$public_ip" = "$dns_ip" ]; then log "IP nem változott (nochg). Nem frissítünk." exit 0 fi log "IP eltér — frissítés OVH felé..." response="$(update_ovh "$public_ip")" log "OVH válasz: $response" case "$response" in good*|nochg*) log "Sikeres frissítés: $response" exit 0 ;; *) log "Frissítés sikertelen: $response" exit 2 ;; esac } main "$@"