WordPress automatisch aktualisieren mit WP-CLI und Cron
Veraltete WordPress-Installationen, Plugins und Themes sind das häufigste Einfallstor für Angriffe auf Websites. Mit WP-CLI und einem einfachen Bash-Script lassen sich alle Updates automatisieren – und der Server übernimmt die lästige Wartungsarbeit selbst, ohne manuelle Eingriffe.
WP-CLI installieren
WP-CLI ist das offizielle Kommandozeilenwerkzeug für WordPress. Die Installation ist einfach:
# WP-CLI herunterladen
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# Prüfen ob die Datei funktioniert
php wp-cli.phar --info
# Global zugänglich machen
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# Installation prüfen
wp --info
Auf Servern mit mehreren PHP-Versionen (z.B. Plesk) muss der richtige PHP-Interpreter angegeben werden:
export PATH=/opt/plesk/php/8.4/bin:$PATH
wp --info
Das Update-Script
Ein kompaktes Bash-Script, das alle WordPress-Komponenten in der richtigen Reihenfolge aktualisiert:
#!/bin/bash
# WordPress Auto-Updater
# Speichern als /usr/local/bin/wp-update.sh
export PATH=/opt/plesk/php/8.4/bin:$PATH
WP_PATH="/var/www/vhosts/example.com/httpdocs"
LOG="/var/log/wp-updates.log"
echo "=== WordPress Update $(date) ===" >> "$LOG"
updater() {
echo "-- WordPress Core --" >> "$LOG"
wp core update --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
echo "-- Datenbank-Update --" >> "$LOG"
wp core update-db --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
echo "-- Plugin-Updates --" >> "$LOG"
wp plugin update --all --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
echo "-- Theme-Updates --" >> "$LOG"
wp theme update --all --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
echo "-- Sprach-Updates --" >> "$LOG"
wp core language update --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
echo "-- Cache leeren --" >> "$LOG"
wp cache flush --allow-root --path="$WP_PATH" >> "$LOG" 2>&1
}
updater
echo "=== Update abgeschlossen ===" >> "$LOG"
Script ausführbar machen und testen
chmod +x /usr/local/bin/wp-update.sh
# Manuell testen
/usr/local/bin/wp-update.sh
# Log prüfen
tail -f /var/log/wp-updates.log
Automatische Ausführung per Cron
Den Cron-Job anlegen, der das Script wöchentlich ausführt – beispielsweise jeden Dienstag um 03:00 Uhr morgens:
crontab -e
Folgende Zeile einfügen:
# WordPress wöchentlich aktualisieren (Di 03:00)
0 3 * * 2 /usr/local/bin/wp-update.sh
Mehrere WordPress-Instanzen verwalten
Auf Servern mit mehreren WordPress-Installationen lässt sich das Script erweitern:
#!/bin/bash
export PATH=/opt/plesk/php/8.4/bin:$PATH
# Array aller WordPress-Installationen
WP_SITES=(
"/var/www/vhosts/site1.com/httpdocs"
"/var/www/vhosts/site2.com/httpdocs"
"/var/www/vhosts/site3.com/httpdocs"
)
for site in "${WP_SITES[@]}"; do
if [ -f "$site/wp-config.php" ]; then
echo "Aktualisiere: $site"
wp --path="$site" --allow-root core update
wp --path="$site" --allow-root plugin update --all
wp --path="$site" --allow-root theme update --all
wp --path="$site" --allow-root cache flush
fi
done
Mit diesem Setup werden alle WordPress-Installationen regelmäßig und vollautomatisch auf dem aktuellen Stand gehalten – ein wesentlicher Beitrag zur Sicherheit und Stabilität jeder WordPress-Website.


