Скрипт для бекапа сервера 2

Первая часть была тут .
Усовершенствованный скрипт для бекапа. Добавлено разделение по базам данных.

#!/bin/sh
BACKUPDATE=`date +%Y-%m-%d`;
REMOTESERVER=11.22.33.44
HOSTNAME=`hostname`
BACKUPDIR=/backup/${HOSTNAME}_${BACKUPDATE}

mkdir -p ${BACKUPDIR}
for i in `mysql -u user -ppass -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump —default-character-set=koi8r -u user -ppass $i | gzip -9 > /root/mysql/$i-`date +%Y-%m-%d`.gz.sql;done
tar -czf ${BACKUPDIR}/mysql-`date +%Y-%m-%d`.tar.gz /root/mysql/*
tar -czf ${BACKUPDIR}/home-`date +%Y-%m-%d`.tar.gz /home/*
tar -czf ${BACKUPDIR}/apache-confs-`date +%Y-%m-%d`.tar.gz /etc/httpd/conf/*
tar -czf ${BACKUPDIR}/named-zones-`date +%Y-%m-%d`.tar.gz /var/named/*
tar -czf ${BACKUPDIR}/named-conf-`date +%Y-%m-%d`.tar.gz /etc/named.conf
scp -Cr /backup/${HOSTNAME}_${BACKUPDATE} root@${REMOTESERVER}:/backup/
rm -f /root/mysql/*

0.00 avg. rating (0% score) - 0 votes

18 комментариев

  • Саня — маладец. Сила джедая всегда с тобой будет))

  • Не подскажешь я хочу сделать такую вещь. Бэкап базы данных. Имя бэкапа — текущая дата — время. С этим я разберусь, но хочу сделать еще и скрипт, который восстанавливал бы последний имеющийся бекап. Как в скрипте взять последний созданный файл и передать его имя в переменную?

  • По коду щас точно не скажу, алгоритм примерно такой:
    получить список файлов из директории с бекапами в массив $Array
    rsort($Array);
    $Array[0] = последний дамп, который ты сделал.
    exec(«mysqldump -u user -ppass dbname < $Array[0]»);
    Вот как то так.

  • это под php, для линуха впринципе не суть важно на чем скрипт, на баше или на пхп

  • Хотелось бы все таки на баше сделать.
    Для поиска последнего созданного файла использую такую конструкцию.
    #!/bin/sh
    for i in $(ls -rt);do
    done
    echo $i

  • Кстати, если делать скрипт на пхп, то первая строчка как будет выглядеть? где искать исполняемый файл?

  • По поводу баша — пхп из под шелла работает не медленнее.
    Для пхп надо искать где он стоит
    which php
    whereis php
    обычно она такая #!/usr/bin/php
    Прописывать не обязательно, можно запускать командой php ./script.php
    ПыСы
    Твоя конструкция на пхп под шелл
    $last_file = exec(«ls | sort —reverse»);
    Все проще чем я думал

  • сварганил свой первый бекап скрипт, который перед заливкой файлов на фтп — кодирует их
     
    сильно не казните … знаю что чуток корявый вышел…..

    • teaseo, ну норм, че ))
      С удалением файлов не стал поэму писать в одну строку, через баш сделал ))
      Ну и самое основное — а где бекап то? )) Сейчас там только закодировать гзип и залить на фтп ))

  • я использую virtualmin.com , бекы он делает, но кодировать не умеет и вот так я ему помог тоесть твой скрипт можно вмести с эти соединить, кому надо будет,  а вот из минусов то что
    curl -v -T «$myfile».out ftp://login:»FTppassThere»@ftpserveraddres.com/${BACKUPDATE}/»$myfile» -Q «MKD ${BACKUPDATE}»;
    curl -v -T «$myfile».out ftp://login:»FTppassThere»@ftpserveraddres.com/${BACKUPDATE}/»$myfile» ;

    тоесть логика та что
    1)залить в папку, создать её
    2)залить в папку, (не создавать)
    тоесть если это первый раз то папка создаётся и заливается а второй бекап уже при 1 вызовет ошибку так как папка создана,
    а зато успешно будет заливатся 2-й коммандой

  • Попробуй через scp сделать, он вроде создает папки при их отсутствии.

  • хех scp  не всем дают ..,
    кстатит  как ты добавил к вордпресу .html (в урле)?
     

    • хех scp не всем дают

      наверно если шелл есть, то и scp есть

      кстатит как ты добавил к вордпресу .html (в урле)?

      wp-admin/options-permalink.php—>
      Произвольно—>
      /%postname%.html или что душе угодно ставишь

  • […] Понадобилось восстановить резервную базу из бекапа сервера. […]

  • очень простенький, лучше бы разбивать бд в разные файлы

    • Завраб, разбивать ниразу не лучше. И качать один файл удобнее и импортировать.

  • […] восстанавливал сайт из бекапа (бекап кстати делаю вот этим скриптом), архиватор робко отказался распаковывать […]

  • […] восстанавливал сайт из бекапа (бекап кстати делаю вот этим скриптом), архиватор робко отказался распаковывать […]

css.php