Vejr Scraper Cron (weather_cron.sh)

Kører PHP vejr-scraper hvert 15. minut og holder logfilen under 1000 linjer

📊 Flowdiagram

weather_cron.sh — Flowdiagram ⏰ cron trigger hvert 15. minut 📂 cd /var/www/html/vejr 📝 Log timestamp → weather_scraper.log 🚫 #scraper_advance.php (udkommenteret) alternativ scraper — ikke aktiv 🐘 /usr/bin/php scraper_advanced.php stdout + stderr → weather_scraper.log ✂️ Log rotation: tail -n 1000 tmp-fil → overskriv original 📝 Tilføj tom linje til log ✅ Færdig Legende Aktive trin Udkommenteret

📋 Trin-for-trin forklaring

1

Skift til projektmappe

cd "/var/www/html/vejr" sikrer at relative stier fungerer korrekt. Scriptet bruger en relativ logfilsti, så dette trin er nødvendigt.

2

Log tidsstempel

Tilføjer en separator med dato og klokkeslæt til weather_scraper.log. Gør det nemt at finde hvornår hver enkelt kørsel startede.

3

Udkommenteret: scraper_advance.php

Inaktiv Den første scraper-linje er udkommenteret. Sandsynligvis en ældre version. Kan genaktiveres ved at fjerne #.

4

Kør scraper_advanced.php

Aktiv Kører med fuld PHP-sti. Bemærk stavning: scraper_advanced.php (med d) kontra den udkommenterede scraper_advance.php (uden d).

5

Log rotation: maks 1000 linjer

tail -n 1000 skriver de seneste 1000 linjer til en temp-fil, som derefter erstatter originalen. Da scriptet kører hvert 15. min. svarer 1000 linjer til ca. 10 dages historik.

6

Tom skillelinje

Tilføjer en blank linje efter hver kørsel — gør logfilen lettere at læse og adskille kørsler visuelt.

⏰ Cron-opsætning

# 1. Gør executable:
chmod +x /var/www/html/vejr/weather_cron.sh

# 2. Rediger crontab:
crontab -e

# 3. Tilføj linje (hvert 15. min.):
*/15 * * * * /var/www/html/vejr/weather_cron.sh

🕐 Kørselsfrekvens – hvert 15. minut

Aktive kørsler i løbet af en time (markeret med blåt):

:00
kørsel
:05
:10
:15
kørsel
:20
:25
:30
kørsel
:35
:40
:45
kørsel
:50
:55

4 kørsler/time · 96 kørsler/dag

⚙️ Konfiguration

VariableVærdi
Projektmappe/var/www/html/vejr
Logfilweather_scraper.log (relativ)
Log max linjer1000
Aktiv scraperscraper_advanced.php
Inaktiv scraperscraper_advance.php (udkommenteret)

✂️ Log rotation

Scriptet bruger en simpel men effektiv log-rotations-metode: tail + mv i stedet for logrotate.

Beholdes (nyeste 1000 linjer)
Slettes

Ved 96 kørsler/dag: ~10 dages historik i logfilen

# Sådan fungerer rotation-kommandoen:
tail -n 1000 weather_scraper.log > weather_scraper.log.tmp
mv weather_scraper.log.tmp weather_scraper.log

Tmp-filen bruges for at undgå at overskrive filen mens den læses — den klassiske "write to self"-fælde.

📝 Log-output eksempel

=== 2025-02-22 14:00:01 ===
Henter vejrdata fra DMI/yr.no...
Temperatur: 4.2°C, Vind: 8 m/s NV
Data gemt til database.

=== 2025-02-22 14:15:01 ===
Henter vejrdata fra DMI/yr.no...
...

⚠️ OBS: filnavne

Tjek Aktiv fil hedder scraper_advanced.php
Inaktiv Udkommenteret fil hedder scraper_advance.php
De to navne adskiller sig kun med ét bogstav — verificer at filen eksisterer med ls -la /var/www/html/vejr/