Ребят поделитесь плиз у кого как сделано сие чудо система debian postgresql 9.1 и 9.3 ( для теста накатил) интересует запуск по крону
Пример не из postgresql отправка на яндекс диск: Код (Text): #!/usr/local/bin/php <?php $dbhost = "..."; $dbuser = "..."; $dbpass = "..."; $dbname = "..."; $dbdate = date("Y-m-d-H-i-s"); shell_exec("mysqldump --skip-opt --quick -u$dbuser -h$dbhost -p$dbpass $dbname | gzip -c > $dbname-$dbdate.gz"); $yadisk_email='...'; $yadisk_pass='...'; $yadisc_dir='mysqldump/'; shell_exec("curl --user $yadisk_email:$yadisk_pass -T $dbname-$dbdate.gz https://webdav.yandex.ru/$yadisc_dir"); ?> Или отправка на мыло Код (Text): #!/bin/bash DBHOST=localhost DBUSER=qsllogin DBPASS=qslpassword DBNAME=sqldbname DBDATE=`date +%Y-%m-%d` mysqldump --skip-opt --quick -u$DBUSER -h$DBHOST -p$DBPASS $DBNAME | gzip -c > $DBNAME-$DBDATE.gz TO=youremail@gmail.com SUBJECT=mysqldump echo "Body message" | mutt -a $DBNAME-$DBDATE.gz -s "Subject" -- $TO Добавлено спустя 1 минуту 25 секунд: Отправка на мыло зараза каждый понедельнник утром мылит глаза, будешь на мыло слать, не шли на основное ))
У меня почему-то создание бэкапа базы в крон НЕ вставлено ))) Наверное я жду неприятностей. Зато есть интересное, как мне кажется, бэкапирование+копирование по требованию - через SSH. Настроена авторизация по сертификату. Я не ввожу пароль чтобы зайти по SSH. В домашней папке удаленного компа есть под-папка backup и в ней скрипт на удаленном хосте dump Код (Text): #!/bin/sh FILE=bck-`date +%Y%m%d-%H%M`.sql.gz mysqldump -u dbuser -h host --password="password" --single-transaction dbname | gzip > /home/thisuser/backup/$FILE echo $FILE т.е. имя архива файла с дампом содержим метку времени. В финале я вывожу это имя - ниже поясню зачем. Мне удобно держать на локалке копию актуальной базы и отлаживаться на ней. Для дампов у меня на локалке также папка backup. Оригинально, правда!? Получаю и развертываю этот дамп так (cygwin помогает мне работать в почти настоящей юниксовой командной строке с нормальным шеллом))) скрипт на локалке dump-get-restore Код (Text): #!/bin/sh echo Dump and gzip on remote... FILE=`ssh myremotehost.com -t 'cd backup && ./dump' | dos2unix` echo $FILE echo Get from remote... scp myremotehost.com:backup/$FILE ~/backup echo Ungzip and restore on local... zcat ~/backup/$FILE | mysql -u dbuser -h 127.0.0.1 --password="password" dbname Поясняю по тексту: - удаленно вызываю процедуру создания и архивации дампа. она выдаст echo с именем файла, это имя мне понадобится. "| dos2unix" это воркэраунд, т.к. ssh возвращает мне строку с \r\n на конце, что блин чертовски непонятно другим командам. приходится cygwin-ой конвертилкой обрезать \r - имя файла попало в переменную FILE - снова обращаюсь по ssh, на этот раз команда копирования с удаленного хоста - полученный архив по конвееру через распаковщик подаю в локальный mysql Профит! у меня бэкапы на двух компах и живая копия базы
и про то и про другое у меня просто пока все было на тестовых базах .. и потихонечку полегонечку начинают появляться боевые - которые уже хотелось бы бекапить 2 раза в день ( обед и ночью) и хочется посмотреть как это сделано у других Добавлено спустя 6 минут 54 секунды: ребят у меня постгришка о_О ладно сейчас почитаю манулы по ключам
про дамп я рассказал, а про cron: по идее надо мне вызвать на удаленном хосте crontab -e и прописать там вызов моего скрипта dump (см. выше) типа так: Код (Text): 00 23 * * * /home/thisuser/backup/dump 2>&1>> /dev/null чтобы каждый день в 11 вечера создавался очередной архив с дампом