Je hebt je website zelf gebouwd, maar bijhouden welke plugin een update nodig heeft, kost tijd die je niet hebt. WordPress kan zichzelf updaten, maar controleert niet of je site daarna nog werkt. Dit script doet dat wel.
We schreven het samen met Claude voor een van onze eigen WordPress-sites, testten het, en maakten er een algemene versie van die je vrij mag gebruiken.
Download: wp-auto-update.sh (MIT-licentie, vrij te gebruiken)
Wat doet het script?
- Controleert of je site nu werkt. Is hij al kapot, dan verandert het niets en krijg je een melding.
- Maakt een backup. Op onze hosting via de ingebouwde backups, anders een database-export plus een archief van
wp-content. - Werkt alles bij: WordPress, plugins, thema's en vertalingen.
- Controleert opnieuw: homepage, je nieuwste bericht, de loginpagina en pagina's die jij opgeeft. Twee pogingen, met de cache geleegd, om vals alarm te voorkomen.
- Draait terug bij problemen. Eerst alleen de bijgewerkte onderdelen naar hun oude versie. Werkt het dan nog niet, dan de bestanden uit de backup.
- Mailt je een rapport, met precies wat er is bijgewerkt of misging.
Het herkent echte foutpagina's (de WordPress-melding "kritieke fout", PHP-fouten, een half geladen pagina), niet zomaar het woord "fout" in een artikel.
De snelste manier: laat Claude het installeren
Op onze hosting typ je in de assistent van Invoker Link:
Installeer het WordPress-updatescript van invoker.nl/scripts/wp-auto-update.sh voor mijn website. Zet het buiten de website, stuur rapporten naar jij@jouwsite.nl, draai het elke maandag om 06:00 en doe eerst een proefdraai.
Claude vult de instellingen in, zet de cronjob en laat je het resultaat van de proefdraai zien. Meer van zulke opdrachten staan bij Prompts.
Zelf installeren
1. Script neerzetten, buiten je website
mkdir -p ~/maintenance/jouwsite.nl
curl -o ~/maintenance/jouwsite.nl/wp-auto-update.sh https://www.invoker.nl/scripts/wp-auto-update.sh
chmod 700 ~/maintenance/jouwsite.nl ~/maintenance/jouwsite.nl/wp-auto-update.sh
Zet een onderhoudsscript nooit in public_html. Het maakt database-exports, en die horen niet op een plek die via het web bereikbaar kan worden.
2. Instellingen invullen
Bovenaan het script:
| Instelling | Wat je invult |
|---|---|
SITE_URL |
https://jouwsite.nl |
WP_PATH |
de map met wp-config.php |
REPORT_TO |
jouw e-mailadres |
MAIL_FROM |
een afzender op je eigen domein |
EXTRA_URLS |
extra pagina's om te controleren, bv. "/contact/ /winkel/" |
MAIL_ON_SUCCESS |
yes voor ook een mail als alles goed ging |
RESTORE_DB |
zie hieronder |
3. Kies: database automatisch terugzetten of niet?
Dit is de belangrijkste keuze. Een database terugzetten gooit alles weg wat sinds de backup veranderd is.
- Brochure-site of blog zonder bestellingen of formulieren:
RESTORE_DB="yes"is prima. - Webshop, boekingen, formulieren of leden: laat
RESTORE_DB="no". Dan zet het script alleen bestanden terug en krijg jij een melding. Een bestelling van 05:58 raak je zo niet kwijt.
4. Testen
bash ~/maintenance/jouwsite.nl/wp-auto-update.sh --test-mail # komt de mail aan?
bash ~/maintenance/jouwsite.nl/wp-auto-update.sh --dry-run # wat zou er bijgewerkt worden?
5. Elke week automatisch
crontab -e
Voeg toe (elke maandag om 06:00):
0 6 * * 1 /bin/bash $HOME/maintenance/jouwsite.nl/wp-auto-update.sh >/dev/null 2>&1
Op DirectAdmin-hosting kan dit ook via DirectAdmin → Cron Jobs.
Hoe lees je het rapport?
| Onderwerp begint met | Betekenis |
|---|---|
| OK | alles bijgewerkt en de site werkt |
| GESTOPT | er is niets veranderd, bijvoorbeeld omdat de site al kapot was |
| HERSTELD | een update brak de site, het script heeft teruggedraaid. Kijk even welke plugin het was. |
| NOODGEVAL | terugdraaien lukte niet: neem direct actie of neem contact met ons op |
Het logboek van elke run staat in ~/maintenance/jouwsite.nl/logs/ en wordt na 60 dagen opgeruimd.
Wat heb je nodig?
- WP-CLI (
wp) encurlop de server, enmailvoor het rapport. - SSH- of terminaltoegang om het één keer in te stellen.
- Op onze hosting is alles aanwezig, en gebruikt het script automatisch de ingebouwde backups.