From LUGUM
#!/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 "--------------------------------------------------------------------"