KAN`ский блог Мысли вслух…
  • Янв
    6

    Как сделать бакап (Backup) важных файлов в FreeBSD

    Filed under: Без рубрики;

    Итак, имеем веб-сервер на freebsd c mysql, firebird, postgresql и svn
    Нужно всё это забакапить…Делаем исполняемый файл на sh

    #!/bin/sh
    #
    rm -f -r /home/kan/tmp/* #папка куда будут кидаться временные файлы
    #MySQL
    /usr/local/bin/mysqldump -uroot -pПАРОЛЬ all > /home/kan/tmp/all.sql
    /usr/local/bin/mysqldump -uroot -pПАРОЛЬ events > /home/kan/tmp/events.sql
    #PostgreSQL
    PGPASSWORD=ПАРОЛЬ
    export PGPASSWORD
    /usr/local/bin/pg_dump -U pgsql ishop > /home/kan/tmp/ishop.sql
    unset PGPASSWORD
    #FireBird
    cd /usr/firebird
    for filename in *.FDB
    do
     echo "back up" $filename
     /usr/local/firebird/bin/gbak -b /usr/firebird/$filename /home/kan/tmp/$filename.fbk -user SYSDBA -pass ПАРОЛЬ
    done
    #SVN
    mkdir -p /home/kan/tmp/repositories/
    cd /home/svn/repositories
    for filename in *
    do
     echo "back up" $filename
     /usr/local/bin/svnadmin hotcopy /home/svn/repositories/$filename /home/kan/tmp/repositories/$filename --clean-logs
    done
    #Переменная дабы хранить бакапы по датам
    BACKUPFILE=$(date +%Y-%m-%d)
    archive=$BACKUPFILE
    #архивируем все базы
    tar -czvf /home/kan/fbackup-$archive.tgz /home/kan/tmp/
    #www
    tar -czvf /home/kan/www-$archive.tgz --exclude='*/.svn/*' --exclude='*/cache/*' --exclude='*/apache22/*' --exclude='*/lib/*' /usr/local/www/
    #www-log
    tar -czvf /var/log/www-$archive.tgz /var/log/www/
    rm -f /var/log/www/*
    /usr/local/etc/rc.d/apache22 restart
    #удалить устаревшие файлы, 5ти дневной давности
    BACKUPFILE=$(date -v-5d +%Y-%m-%d)
    archive=$BACKUPFILE
    rm -f /var/log/www-$archive.tgz
    rm -f /home/kan/fbackup-$archive.tgz
    rm -f /home/kan/www-$archive.tgz
    echo "backup done!"

    Под рутом делаем задание, исполнить наш файл в 2ч 7м:
    crontab -u root -e

    SHELL=/bin/sh
    HOME=/root
    MAILTO=root
    7       2       *       *       *       /root/mycronjob > /root/last.log

    Смотрим есть ли задание
    crontab -u root -l

    Комментарии к записи Как сделать бакап (Backup) важных файлов в FreeBSD отключены

Comments are closed.