Debian Beast FTP BackUp
Version vom 8. November 2020, 13:19 Uhr von Raz0rsedge (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<syntaxhighlight lang="bash" line='line'> #!/usr/bin/env bash # Dieses script wird per cronjob jede Nacht um 3.59 Uhr gestartet # Script Location: /bak/backupf…“)
1 #!/usr/bin/env bash
2 # Dieses script wird per cronjob jede Nacht um 3.59 Uhr gestartet
3 # Script Location: /bak/backupftp.sh
4
5 #Startzeit des Script-Durchlaufs
6 STARTZEIT=`date`
7
8 #Variablen fuer Script setzen, die erstellten Dateien beinhalten nur den Wochentag
9 #Dies hat den Hintergrund, dass nach einer Woche der entsprechende Wochentag ueberschrieben wird
10 #um Platz zu sparen, das Backup hat also genau eine Woche Ruecklauf
11 DATE=`date +%a`
12 #MySQL User Name der die nötigen Rechte besitzt
13 MYUSER=root
14 #MySQL Passwort
15 MYPASS=##########
16 BACKUPdatei=/bak/log/backup.log
17 ERRdatei=/bak/log/backup_err.log
18 ALLdatei=/bak/log/*.log
19
20 # Log-Ordner unter /bak/ erstellen
21 mkdir -p /bak/log
22
23 #Vorhandene Log-Dateien loeschen
24 rm -rf $ALLdatei
25 rm -rf "/backup/*.gz"
26 #Log-Dateien-Dummies setzen
27 touch /bak/log/backup.log
28 touch /bak/log/backup_err.log
29
30 #Verzeichnisstruktur unter / erstellen in der das Backup
31 #erstellt wird bevor es via ftp auf den Backup-Server geladen wird
32 mkdir -p /backup/mysql 1>>$BACKUPdatei 2>>$ERRdatei
33
34 #Dateien blockweise kopieren, hier koennen alle Pfade angegeben werden die
35 #ihr regelmaessig sichern wollt:
36 rsync -az --delete --delete-after /etc /backup 1>>$BACKUPdatei 2>>$ERRdatei
37 #rsync -az --delete --delete-after /var/www /backup 1>>$BACKUPdatei 2>>$ERRdatei
38 rsync -az --delete --delete-after /var/log /backup 1>>$BACKUPdatei 2>>$ERRdatei
39 #rsync -az --delete --delete-after /var/mail /backup 1>>$BACKUPdatei 2>>$ERRdatei
40 rsync -az --delete --delete-after /home/raz0rsedge /backup 1>>$BACKUPdatei 2>>$ERRdatei
41
42 #Pause 5 Sek
43 sleep 5
44
45 #Ordner wechseln um Datenbanken separat zu sichern
46 cd /backup/mysql
47
48 #ALLE Datenbanken sichern
49 mysqldump -AaCceQ -u$MYUSER -p$MYPASS -r mysql.dbs 1>>$BACKUPdatei 2>>$ERRdatei
50
51 #Pause 5 Sek
52 sleep 5
53
54 #Zum uebergeordneten Ordner wechseln
55 cd /backup
56
57 #Ueberpruefung eventuell vorhandener gz-Dateien aus vorhergehenden Scriptruns
58 gz=`find /backup -maxdepth 1 -iname "*.gz"`
59 if [ -n "$gz" ]; then
60 echo "gz-Dateien vorhanden" 1>>$BACKUPdatei
61 echo "gz-Dateien werden nun verworfen" 1>>$BACKUPdatei
62 rm -rf /backup/*.gz 1>>$BACKUPdatei 2>>$ERRdatei
63 else
64 echo "gz-Dateien nicht vorhanden" >>$BACKUPdatei
65 fi
66 #Pause 2 Sek
67 sleep 2
68 # Komprimieren der kopierten Ordner
69 for files in *
70 do
71 tar -czvf $files.${DATE}.tar.gz $files 1>>$BACKUPdatei 2>>$ERRdatei
72 done
73 #Wir benutzen den debian linux standard ftp client. Anmeldesyntax:
74 # open remoteftp, user BENUTZERNAME PASSWORT
75 `ftp -ni << EOFTP
76 open u*****.your-backup.de
77 user u***** **************
78 bin
79 prompt off
80 mdelete *.${DATE}.tar.gz
81 mput *.gz
82 quit
83 EOFTP`
84
85 sleep 5
86 #Abschliessend alle gz Dateien wieder loeschen
87 cd /backup
88 rm -rf *.gz 1>>$BACKUPdatei 2>>$ERRdatei
89 exit 0
90 #Ende