#!/bin/sh # # VARIABLES # # root backup directory backupdir="/var/dsbackup" # txt mail content + tar verbose output attachement mailfile="$backupdir/backup-mail.txt" tarfile="$backupdir/backup-tar.txt" # current date and time in sortable format timestamp="$(date +'%y-%m-%d-%I:%M')" echo "[DataSync] Generated Timestamp $timestamp." >> $mailfile # # PREPARATION # # delete all mail text related files - from the run before echo "[DataSync] Removing mail file $mailfile & rm $tarfile..." rm $mailfile rm $tarfile # touch empty new mail txt files - to be filled echo "[DataSync] Creating new mail file $mailfile & rm $tarfile..." >> $mailfile touch $mailfile touch $tarfile # # SHUTDOWN DataSync & PostgreSQL SERVICES # # starting announcement of script in mail content echo "[DataSync] Started backup script..." >> $mailfile # shutdown datasync echo "[DataSync] Shutting down Novell DataSynchronizer..." >> $mailfile /usr/sbin/rcdatasync stop >> $mailfile # shutdown postgre sql db echo "[DataSync] Shutting down PostgreSQL Database..." >> $mailfile /usr/sbin/rcpostgresql stop >> $mailfile # # DO BACKUP # # starting announcement echo "[DataSync] Running Backup..." >> $mailfile # create tar from all the necessary directories tar -czvpf $backupdir/$timestamp-pgsql.tgz /var/lib/pgsql >> $tarfile tar -czvpf $backupdir/$timestamp-vardatasync.tgz /var/lib/datasync >> $tarfile tar -czvpf $backupdir/$timestamp-optdatasync.tgz /opt/novell/datasync >> $tarfile tar -czvpf $backupdir/$timestamp-etcdatasync.tgz /etc/datasync >> $tarfile echo "[DataSync] Backup done - everything saved under $backupdir..." >> $mailfile # # START DataSync & PostgreSQL SERVICES # # start postgre sql db - should be started first echo "[DataSync] Starting PostgreSQL Database..." >> $mailfile /usr/sbin/rcpostgresql start >> $mailfile # start datasync echo "[DataSync] Starting Novell DataSynchronizer..." >> $mailfile /usr/sbin/rcdatasync start >> $mailfile # # CLEANUP # #clean up anything older than 20 days echo "[DataSync] Purging any backups older than 20 days from the directory $backupdir..." >> $mailfile find $backupdir -mtime +20 -exec rm -f {} \; echo "[DataSync] Purging for $backupdir done." >> $mailfile # # SEND STATUS MAIL # # send mail to a given recipient - if configured correct mail settings in yast2 echo "[DataSync] Send Mail to it-collector@sz.ch" >> $mailfile mail -r server@company.ch -s "[SERVER] DataSync Backup done" -a $tarfile xyz@company.ch < $mailfil