Sicherung

From LUGUM

Jump to: navigation, search
#!/bin/bash
##############################################################################
#                                                                            #
#      Script zum Sichern der Serverdaten                                   #
#                                                                            #
#           Autor: Andreas Kraus (lug@ak1301.de)                       #
#         Version: 0.2                                                       #
#  Ersterstellung: 14.12.2002                                                #
# Letzte Änderung: 22.05.2005                                                #
#                                                                            #
##############################################################################

# Pfad wo Hingesichert werden soll
SICHERUNG=/backup/gatekeeper
# Pfad zum mysqlkennwort
MYSQLPW=/etc/mysql/debian.cnf
MYSQLPFAD=/var/lib/mysql
MYSQLBACKUP=${SICHERUNG}/mysql
MYSQLDUMP=/usr/bin/mysqldump
CHMOD=/bin/chmod
DPKG=/usr/bin/dpkg
IPTABLES=/sbin/iptables
DATE=/bin/date
BACKUPLAUFWERK=/dev/sda7

for f in $MYSQLPFAD $MYSQLDUMP $CHMOD $DPKG $IPTABLES $DATE; do
   if  ! [ -x  $f ]
   then echo "$f existiert nicht oder ist nicht ausführbar"
   exit 1	
fi	 
 done
	  
if ! mount | grep -q $BACKUPLAUFWERK
    then 
    echo "Backuplaufwerk $BACKUPLAUFWERK nicht gemountet"
    exit 1
fi

if [ $# -ne 1 ]
 then
   echo "Usage: $0 Sicherungstag"
   exit 1
fi
if ! [ -d ${MYSQLBACKUP}/${1} ]
	then 
		mkdir -p ${MYSQLBACKUP}/${1}
fi


echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+                 Script zum Sichern der Serverdaten               +"
echo "+                    und überwachen des Servers                    +"
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
cd $MYSQLPFAD
echo "--------------------------------------------------------------------"
pwd
echo "--------------------------------------------------------------------"
echo "Sicherung MYSQL"
$MYSQLDUMP --defaults-file=${MYSQLPW} -A > ${MYSQLBACKUP}/backup_all_${1}.sql
for f in *; do
     [ -d $f ] && $MYSQLDUMP --defaults-file=${MYSQLPW} $f > ${MYSQLBACKUP}/${1}/${f}_${1}.sql
     [ -d $f ] && $CHMOD 400 ${MYSQLBACKUP}/${1}/${f}_${1}.sql
done
cd $SICHERUNG
echo "--------------------------------------------------------------------"
echo "Sicherung Paketliste"
$DPKG --get-selections "*" > ${SICHERUNG}/packetlist_${1}
# Zuruecksticherung:
#dpkg --set-selections < packetlist
# apt-get deselct-upgrade
echo "--------------------------------------------------------------------"
echo "Sicherung DATEN"
echo "--------------------------------------------------------------------"
echo "mysqldump"
tar -czf mysqldump_${1}.tar.gz ${MYSQLBACKUP}/${1} ${MYSQLBACKUP}/backup_all_${1}.sql 
echo "boot"
tar -czf boot.tar.gz /boot
echo "/etc"
tar -czf etc.tar.gz /etc
echo "/home"
tar -czf home.tar.gz /home
echo "/root"
tar -czf root.tar.gz /root
echo "/var/lib/mysql"
tar -czf var_lib_mysql.tar.gz /var/lib/mysql
echo "/usr/local/bin"
tar -czf usr_local_bin.tar.gz /usr/local/bin
echo "/var/log"
tar -czf var_log.tar.gz /var/log
#echo "/var/named"
#tar -czf var_named.tar.gz /var/named
echo "/var/spool"
tar -czf var_spool.tar.gz /var/spool
#echo "/var/spool/mail/"
#tar -czf var_spool_mail.tar.gz /var/spool/mail
echo "/opt"
tar -czf opt.tar.gz /opt
echo "/usr/share/dokuwiki"
tar -czf dokuwiki.tag.gz /usr/share/dokuwiki/data
echo "--------------------------------------------------------------------"
tar -cvf sicherung_${1}.tar.gz \
                        mysqldump_${1}.tar.gz \
			packetlist_${1} \
			boot.tar.gz \
			etc.tar.gz \
			home.tar.gz \
		    	root.tar.gz \
			var_lib_mysql.tar.gz \
			usr_local_bin.tar.gz \
			var_log.tar.gz \
			var_spool.tar.gz \
			opt.tar.gz \
			dokuwiki.tag.gz
echo "--------------------------------------------------------------------"
df -h
echo "--------------------------------------------------------------------"
ls -alh $SICHERUNG
echo "--------------------------------------------------------------------"
$DATE
echo "--------------------------------------------------------------------"
#echo "Läuft der Webserver?"
#pgrep apache2 | grep -q . &&       echo "----------------------------------------------------------Apache Läuft"
#echo "Läuft Postfix?"
#pgrep master | grep -q . &&        echo "---------------------------------------------------------Postfix Läuft"
#echo "Läuft MySQL?"

#pgrep mysqld_safe | grep -q . &&   echo "-----------------------------------------------------------Mysql Läuft"
#echo "Läuft Proftp?"
#pgrep proftpd | grep -q . &&       echo "----------------------------------------------------------Proftp Läuft"
#echo "Läuft courierlogger"
#pgrep  courierlogger| grep -q . && echo "---------------------------------------------------courierlogger Läuft"
#echo "Läuft couriertcpd?"
#pgrep couriertcpd | grep -q . &&   echo "-----------------------------------------------------couriertcpd Läuft"
#echo "Läuft saslauthd?"
#pgrep saslauthd | grep -q . &&     echo "-------------------------------------------------------saslauthd Läuft"
#echo "Läuft cron?"
#pgrep cron | grep -q . &&          echo "------------------------------------------------------------cron Läuft"
#echo "Läuft ntpd?"
#pgrep ntpd | grep -q . &&          echo "------------------------------------------------------------ntpd Läuft"
echo "--------------------------------------------------------------------"
echo "Iptables"
$IPTABLES -L
echo "--------------------------------------------------------------------"
Persönliche Werkzeuge