Debian Beast FTP BackUp

Aus AirSpaceWatch & More
Zur Navigation springen Zur Suche springen
 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