← Back to team overview

sslug-teknik team mailing list archive

Backup script gav Segmentation fault

 

Hejsa,

Jeg har gaflet et backupscript, som jeg var vældig glad for i en uge,
men det crashede maskinen og jeg aner ikke hvorfor.
Det crashede med en Segmentation fault der resulterede i at jeg ikke kunne 
andet end pinge maskinen, den svarede ikke på ssh, ftp, http eller andet, 
jeg tør ikke aktivere det igen.

(scriptet er i bunden af denne besked)

Da det kørte for ottende gang gik det galt.

Den første backup kørte jeg manuelt ved at kalde scriptet, og resten er kørt 
fra cron.daily
Den jeg har kørt manuelt har af ukendte årsager fået navnet 
boxen-tor.tar og ikke i det engelske format boxen-Thu.tar som alle de andre 
filer er blevet navngivet efter.

Kan det være derfor det gik galt ?

Det skal også nævnes at jeg har tilføjet flere directories der skulle 
inkluderes i backup'en i ugens løb, bla. /var
Er der nogen der kan se noget grundliggende galt med scriptet, eller 
skyldes det min håndtering af det.

Jeg så gerne en henvisning til et andet backup script som i kan anbefale, 
tak.


Her er error-mailen fra cron.daily 
(mit script hedder systembackup)

bin/tar: Removing leading `/' from member names
/bin/tar: /var/lib/mysql/mysql.sock: socket ignored
/bin/tar: /var/spool/postfix/public/showq: socket ignored
/bin/tar: /var/spool/postfix/private/cleanup: socket ignored
/bin/tar: /var/spool/postfix/private/rewrite: socket ignored
/bin/tar: /var/spool/postfix/private/bounce: socket ignored
/bin/tar: /var/spool/postfix/private/defer: socket ignored
/bin/tar: /var/spool/postfix/private/flush: socket ignored
/bin/tar: /var/spool/postfix/private/smtp: socket ignored
/bin/tar: /var/spool/postfix/private/error: socket ignored
/bin/tar: /var/spool/postfix/private/local: socket ignored
/bin/tar: /var/spool/postfix/private/virtual: socket ignored
/bin/tar: /var/spool/postfix/private/lmtp: socket ignored
/bin/tar: /var/spool/postfix/private/cyrus: socket ignored
/bin/tar: /var/spool/postfix/private/uucp: socket ignored
/bin/tar: /var/spool/postfix/private/ifmail: socket ignored
/bin/tar: /var/spool/postfix/private/bsmtp: socket ignored
/etc/cron.daily/systembackup: line 53:  7585 Segmentation fault      $TAR 
$NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES
run-parts: /etc/cron.daily/systembackup exited with return code 139
run-parts: failed to exec /etc/cron.daily/tmpwatch: Bad address
run-parts: /etc/cron.daily/tmpwatch exited with return code 1
-----------------------------------------

Her er de filer der ligger i /mnt/backup 
Det er et nfs mounted drev.
 
-rw-r--r--    1 root     root         159M maj  9 23:43 boxen-tor.tar
-rw-r--r--    1 root     root         159M maj 10 04:02 boxen-Fri.tar
-rw-r--r--    1 root     root         160M maj 11 04:01 boxen-Sat.tar
-rw-r--r--    1 root     root         222M maj 12 04:01 boxen-Sun.tar
-rw-r--r--    1 root     root          14M maj 13 04:01 boxen-Mon.tar
-rw-r--r--    1 root     root          63M maj 14 04:00 boxen-Tue.tar
-rw-r--r--    1 root     root          94M maj 15 04:01 boxen-Wed.tar
-rw-r--r--    1 root     root          60M maj 16 04:00 boxen-Thu.tar
--------------------------------

Backup script:
--------
#!/bin/sh
# full and incremental backup script
# created 07 February 2000
# Based on a script by Daniel O'Callaghan <danny@xxxxxxxxxxx>
# and modified by Gerhard Mourani <gmourani@xxxxxxxxxxxx>

#Change the 5 variables below to fit your computer/backup

COMPUTER=boxen                                  # name of this computer
DIRECTORIES="/etc /var /usr/local/apache/ /usr/local/frontpage /root /www"     
BACKUPDIR=/mnt/backup                           # where to store the backups
TIMEDIR=/mnt/backup/last-full                   # where to store time of f
ull backup
TAR=/bin/tar  

#You should not have to change anything below here

PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a`                          # Day of the week e.g. Mon
DOM=`date +%d`                          # Date of the Month e.g. 27
DM=`date +%d%b`                 # Date and Month e.g. 27Sep

# On the 1st of the month a permanet full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last weeks incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets it date from the file written every Sunday.


# Monthly full backup
if [ $DOM = "01" ]; then
        NEWER=""
        $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DM.tar $DIRECTORIES
fi

# Weekly full backup
if [ $DOW = "Sun" ]; then
        NEWER=""
        NOW=`date +%d-%b`

        # Update full backup date
        echo $NOW > $TIMEDIR/$COMPUTER-full-date
        $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES

# Make incremental backup - overwrite last weeks
else

        # Get date of last full backup
        NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"
        $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES
fi
----------------

Mit spørgsmål:
Er der nogen forklaring på hvorfor det script crashede maskinen ?
Tak,
Mvh
Dennis







Follow ups