Eksportér → FTP upload → SSH remote import · Tre-trins synkronisering af Weathercloud-data
Fejl i et trin stopper hele pipeline — trin 2 og 3 køres aldrig hvis trin 1 fejler
Indlæser config.php og initialiserer logfunktionen logmsg(). Opretter logs/-mappen automatisk med mkdir() hvis den mangler.
Kalder export-scriptet via exec() med fuld PHP-sti. Stdout + stderr fanges i $output-array og logges. Fejl → exit(1) stopper hele sync.
Upload-scriptet køres kun hvis export lykkedes. Samme mønster: exec(), output logges, fejl stopper pipeline med exit(1).
Bygger en SSH-kommando med sprintf() og escapeshellarg() og eksekverer den via exec(). Kører import_weathercloud.php direkte på målserveren.
Logger "Master sync SSH færdig!" og printer Master sync SSH OK til stdout — nyttigt hvis scriptet køres manuelt eller fra cron med mail-notifikation.
StrictHostKeyChecking=no + UserKnownHostsFile=/dev/null undgår interaktivt prompt i cron-miljø — men verificerer ikke serverens identitet.
| Parameter | Beskrivelse |
|---|---|
| config.php | Ekstern konfigurationsfil (credentials) |
| $ssh_key | Sti til privat SSH-nøgle |
| $remote_user | SSH-bruger på målserver |
| $remote_host | Hostname på målserver |
| $remote_php | PHP CLI-sti på målserver |
| $remote_import_script | Fuld sti til import-script på målserver |
Godt escapeshellarg() på alle SSH-parametre
Godt Credentials i ekstern config.php
Godt Dedikeret SSH-nøgle kun til dette formål
OBS StrictHostKeyChecking=no — sårbar over for MITM
OBS SSH-nøglen tilgås af PHP/cron-brugeren — check filrettigheder
TIP Overvej known_hosts-fil fremfor no på produktionsserver