Gesamtzahl der Seitenaufrufe

Freitag, 25. Januar 2013

backup script Strato Root Server > Strato FTP Server

#!/bin/bash

# Titel: Backup-Script
# Description: Sicherung von /srv, /etc, /var/log und MYSQL-Datenbanken anlegen und automatisch auf einen festgelegten FTP-Server hochladen.
# Copyright: Christian Beier (http://www.beier-christian.eu/)
# Version 1.1
#Script an meine

# Allgemeine Angaben
#MYSQL_USER=dumpmysqluser
#MYSQL_PASS=dasPasswort
#FTP_SERVER=backup.serverkompetenz.de
#FTP_USER=bftpuserij9ß8
#FTP_PASS=passwortftpuserblaundblubb

# Festlegung des Datums - Format: 20130120
DATE=`date +"%Y%m%d"`

# ENDE DER EINSTELLUNGEN

# Backup-Verzeichnis anlegen
mkdir /tmp/backup
#mkdir /tmp/backup/mysql

# Verzeichnisse die ins Backup integriert werden sollen

cp -r /etc /tmp/backup
cp -r /home/user007 /tmp/backup
cp -r /root /tmp/backup
cp -r /var /tmp/backup

cd /tmp/backup











#Kramaus tmp löschen, was im Moment nicht mitgesichert werden soll

rm -r /tmp/backup/var/lib
rm -r /tmp/backup/var/cache
rm -r /tmp/backup/var/drweb



# Sicherung der Datenbanken
# im moment werden die anders gesichert
#mysqldump -AaCceQ -u$MYSQL_USER -p$MYSQL_PASS -r mysql.dbs
#mysqldump -AaCceQ -r mysql.dbs
#cd ../

# Alle Dateien mit tar.bz2 komprimieren


tar cjfp etc-$DATE.tar.bz2 etc
tar cjfp user-$DATE.tar.bz2 user
tar cjfp root-$DATE.tar.bz2 root
tar cjfp var-$DATE.tar.bz2 var


# Alle komprimierten Dateien per FTP auf den Backup-Server laden
# folgende Zeilen auskommentieren
#ftp -ni << END_UPLOAD
#open $FTP_SERVER
#user $FTP_USER $FTP_PASS
#bin
#mput *.tar.bz2
#quit
#END_UPLOAD

mkdir /private-backup/backups/backup-$DATE

cp -r *.tar.bz2 /private-backup/backups/backup-$DATE

# Anschliessend alle auf den Server angelegten Dateien wieder loeschen
rm -r -f /tmp/backup

/var/lib/psa/dumps

Speicherort:     /var/lib/psa/dumps

Temporäre Dateien für das Plesk Backup.
Dazu 2 Ansätze.
 
1. Dateien woanders auslagern
2. Alte Dateien löschen


Da meine /var partition recht klein geraten ist, sind die tempBackups ausgelagert worden mit

/etc/init.d/mysql stop
oder 
service mysql status/stop

rm -R  /var/lib/psa/dumps/*

mysql starten


MySQL Starten / Stoppen / Neustarten:
/etc/init.d/mysql stop
/etc/init.d/mysql start
/etc/init.d/mysql restart


#erstellt das Verzeichnis
mkdir /srv/backup

#setzt die richtigen Rechte chown psaadm  /srv/backup 
#löscht das alte Verzeichnis
rmdir /var/lib/psa/dumps

#symlink setzen
ln -s /srv/backup  /var/lib/psa/dumps

#########################################


Ich nutze auch noch zusätzlich die frühere Lösung ältere Dateien per cronjob zu löschen.




#!/bin/sh
#
# Delete backup more than 35 days old.
#
backupDir="/srv/backup"
#
daysToKeep=35

echo "Check files older than $daysToKeep days in $backupDir"
listOfFiles=`find $backupDir -mtime +$daysToKeep`
if [ ! -z $listOfFiles ]
then
      echo "Found [$listOfFiles]"
else
      echo "None found."
fi
for toDelete in $listOfFiles
do
      echo "Deleting $toDelete"
      rm -rf $toDelete
done
echo "Done."




cp -R * ../ -v