Wie kann man mit SSH den Webseiten Backup automatisieren?

von | Sep 4, 2023 | Allgemein | 0 Kommentare

Schlagwörter: Backup - db - SSH

Wie ihr sicher mitbekommen hat ist eines der Sätze die ich hier am meisten sage „Macht regelmässig Backup“ – leider hören auch heute noch immer nur wenige Menschen zu und machen es dann auch. Viele werden darum es immer nur dann lernen, wenn der schlimmste Fall eingetreten ist und sie ein Problem mit der Webseite haben welches sie aber nicht ohne Backup schnell und sauber lösen können.

Ja ich weiss ein Backup machen ist harte Handarbeit…. oder doch nicht?

Heute möchte ich euch ein Video vorstellen und einen Code vorstellen, mit dem ihr diese Schritte automatisieren könnt.

Video

Daten sammeln

Als erstes müsst ihr natürlich checken ob euer Hosting SSH kann. Ja es gibt immer noch viele Hoster die sowas deaktivieren und dann meine lieben Leserinnen und Leser, funktioniert der ganze Spass hier leider nicht.

Wenn es aber läuft dann braucht ihr noch die Datenbank Zugangsdaten, Speicherpfad usw..

SSH Key erstellen

Damit das Script ungestört im Hintergrund ablaufen kann, brauchen wir ein SSH Key und das müsst ihr zuerst genieren (SSH Key generieren und einrichten (macOS / PC)). Wenn ihr das nämlich nicht macht, dann müsst ihr jedesmal wenn ihr das Script ausführt 3x euer Serverpasswort eingeben und zwar jedesmal wenn sich das Script ins Hosting einloggen will.

Bash Code

Öffnet euren Code Editor und kopiert diesen Code dort hinein und dann speichert alles ab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
 
projektname="dein-projekt"
dbname="###"
user="###"
pw="###"
localh="localhost"
 
heute=$(date +"%d-%m-%Y")
 
zipname="${projektname}_${heute}"
 
ssh -i ~/.ssh/serverid hosting@server.com <<EOF
 
#wechsel zum ordner
cd public_html/${projektname}
 
#db sicher
mysqldump -u $user -p$pw -h $localh $dbname > $projektname.sql
 
#all zippen
zip -r ${zipname}.zip *
 
exit
 
EOF
 
#download zipfile
scp -i ~/.ssh/serverid hosting@server.com:public_html/${projektname}/${zipname}.zip ~/Youtube/
 
 
 
ssh -i ~/.ssh/serverid hosting@server.com <<EOF
 
#wechsel zum ordner
cd public_html/${projektname}
 
rm ${zipname}.zip
rm  ${projektname}.sql
 
EOF

Denkt daran dass ihr die Konfigurationseinstellungen zu eurem Hosting anpasst auch beim Download euren Zielordner

Script ausführbar machen

Wenn ihr fertig seid, dann musst ihr dem Script noch die entsprechenden Rechte geben, damit es ausgeführt werden kann.

1
chmod +x filename

Ausführen

Jetzt öffnet ihr das Terminal oder euer Kommandozeilentool und startet das Script. Geht in den Ordner rein und gebt folgendes ein

1
./filename

Wenn ihr nun alles korrekt eingegeben habt, dann bekommt ihr in ein paar Minute (je nach Projektgrösse) euer gezipptes Backup in den Ordner…

Eine sehr praktische Sache

0 Kommentare

Einen Kommentar abschicken

Du kannst auf Fediverse-Profile verlinken, indem du fl:@benutzername in deinem Kommentar eingibst.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert