8.1 Varmuuskopiointi Windows-työasemalle

Varmistaminen Windows-työasemalle on suhteellisen varmatoiminen ja samalla edullisin varmistustapa. Jos pakkauksen jättää tekemättä, on myös tiedostojen palauttaminen todella helppoa. Huono puoli tässä kuitenkin on se, että varmistus ei ole paloturvallinen (ellei työasema satu sijaitsemaan eri palotilassa, joka lienee epätödennäköistä ainakin pienissä toimistoissa)

  1. Asenna tarvittaessa paketti smbclient komennolla

    apt-get install smbclient

  2. Luo hakemisto, johon Windows-työaseman jaettu hakemisto mountataan komennolla

    mkdir /mnt/varmistus

  3. Varmista, että windows-työaseman jaettu hakemisto mounttautuu komennolla

    mount -t smbfs -o username=useri,password=passu
    //workstation/varmistus /mnt/varmistus

  4. Pura mounttaus komennolla umount /mnt/varmistus

  5. Tee seuraavanlainen varmistusskripti:

    #!/bin/bash
    #
    # varmistus_win.sh
    # tekee varmuuskopiot windows-työasemalle
    #
    BACKUPDIRS="/etc /var/log /usr/local/bin /home/yhteinen"
    LOG="/usr/local/bin/log/backup.log"
    ERRORS="/usr/local/bin/log/backup_errors.log"
    NOTICE="admin@test.com"
    SERVER=`uname -n`
    MOUNT="/mnt/varmistus"
    DAY=`date | awk '{print $1}'`
    NULL=""
    #
    # Varmuuskopsausta ei tehdä la-su eikä su-ma välisenä yönä
    if [ "$DAY" = "Sun" ] || [ "$DAY" = "Mon" ];
    then
    echo "Ei ole varmuuskopsupäivä"
    exit
    else
    # Mountataan winkkarihakemisto
    mount -t smbfs -o username=useri,password=passu \ 
    //workstation/varmistus $MOUNT
    # Varmistetaan, että mounttaus onnistui
    STATUS=`mount |grep varmistus`
    if [ "$STATUS" == "$NULL" ]
    then
    mail -s "Erros in backup on server $SERVER - Couldn't \
    mount backup folder" $NOTICE
    exit
    else
    echo "System backup on `date` of following directories:" \
    > $LOG
    echo >> $LOG
    # kirjoitetaan lokiin varmuuskopioitavat hakemistot
    for path in $BACKUPDIRS
    do
    echo $path >> $LOG
    done
    echo >> $LOG
    # siirretään vanhat varmuuskopsut alta pois
    for path in $BACKUPDIRS
    do
    FILENAME=`echo $path | sed 's/\//varmistus_/' | \
    sed 's/\//_/g'`
    mv -f $MOUNT/$FILENAME.tar.gz \ 
    $MOUNT/$FILENAME\_onedayold.tar.gz
    done
    # varmuuskopiodaan hakemistot
    for path in $BACKUPDIRS
    do
    FILENAME=`echo $path | sed 's/\//varmistus_/' | \
    sed 's/\//_/g'`
    tar -czvf $MOUNT/$FILENAME.tar.gz $path >> $LOG
    if [ $? -eq 0 ]
    then
    echo >> $LOG
    echo "Backup of $path succeful" >> $LOG
    echo >> $LOG
    else
    echo >> $LOG
    echo "ERRORS IN BACKUP OF $path! See more details in \
    $ERRORS" 1>&2 >> $LOG
    mpack -s "Errors in backup ($SERVER)" $ERRORS $NOTICE
    fi
    done
    echo >> $LOG
    echo "System backups complete on `date`" >> $LOG
    echo >> $LOG
    # Puretaan mounttaus
    umount -t smbfs $MOUNT
    mpack -s "$SERVER varmuuskopiointi suoritettu" $LOG \
    $NOTICE
    fi
    fi
    

  6. Muokkaa rootin crontabia komennolla crontab -e ja lisää sinne seuraava rivi

    0 5 * * * /usr/local/bin/varmistus.sh \
    &>/usr/local/bin/log/backup_errors.log

    joka suorittaa varmistuksen joka yö klo 5.00 ja ohjaa kaikki tar:in antamat virheilmoitukset tiedostoon backup_errors.log, joka lähetetään skriptin toimesta jos tar palauttaa virheitä.



Lauri Laukkarinen 2006-03-23