WordPress·3 min lezen

WordPress automatisch updaten met backup, controle en herstel (gratis script)

Gratis script dat je WordPress-site elke week bijwerkt: eerst een backup, dan controleren, zelf terugdraaien bij problemen en een rapport mailen.

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?

  1. Controleert of je site nu werkt. Is hij al kapot, dan verandert het niets en krijg je een melding.
  2. Maakt een backup. Op onze hosting via de ingebouwde backups, anders een database-export plus een archief van wp-content.
  3. Werkt alles bij: WordPress, plugins, thema's en vertalingen.
  4. 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.
  5. Draait terug bij problemen. Eerst alleen de bijgewerkte onderdelen naar hun oude versie. Werkt het dan nog niet, dan de bestanden uit de backup.
  6. 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) en curl op de server, en mail voor 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.
MK
Maarten Keizer

Oprichter van Invoker. Ruim twintig jaar hosting, systeembeheer en webdevelopment; bouwt de Claude-hosting zelf en test alles eerst op de eigen servers.

over maarten