Биллинговая система Nodeny
19 Апреля 2024, 19:57:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3 ... 6
  Печать  
Автор Тема: Скрипты Бэкапа  (Прочитано 56089 раз)
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« : 31 Июля 2009, 23:01:59 »


Назрела необходимость сделать бэкап удаленный, поэтому частично переношу скрипты из группы в форум, что бы не искать

Спасибо разработчикам

Код:
#!/bin/sh 
passwd_root_mysql='hardpass'
fl=`date "+%d-%m-%Y"`
cd /usr/local/nodeny
echo show tables | mysql -u root \
  --password=${passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v '^Tables' | \
  xargs mysqldump -Q --add-locks -u root \
  --password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz

 
если делается бэкап с удаленной машины по сети
Код:
#!/bin/sh 
user_mysql='root'
passwd_root_mysql='hardpass'
host_mysql='localhost'
fl=`date "+%d-%m-%Y"`
cd /home/backups/bill/
echo show tables | mysql -h ${host_mysql} -u ${user_mysql} --password=$ {passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v '^Tables' | \
  xargs mysqldump -Q --add-locks -h ${host_mysql} -u ${user_mysql} -- password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz
 
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 01 Августа 2009, 09:34:04 »

Кстати, кто-нибудь разобрался почему скрипт не работает, если его перенести в /etc/periodic/weekly/?

я было думал, что дело в переменных окружения, да прописал полный путь к mysql (/usr/local/bin/mysql), но это не помогло.

Хотя... я сейчас смотрю, что к mysqldump не прописан полный путь. вероятно дело в нем
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #2 : 01 Августа 2009, 17:29:59 »

Кстати, этот скрипт дампит таблицу `traf_info`
Нужна ли она?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #3 : 02 Августа 2009, 00:19:55 »

да, думаю ее можно исключить
Записан
trio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #4 : 02 Августа 2009, 00:35:43 »

Хотя... я сейчас смотрю, что к mysqldump не прописан полный путь. вероятно дело в нем

/usr/local/bin/mysqldump - Эфект нулевой
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #5 : 06 Августа 2009, 09:12:27 »

нет, не нулевой. Все работает:

Код:
#!/bin/sh
passwd_root_mysql='hardpass'
fl=`date "+%d-%m-%Y"`
cd /var/backups/
echo show tables | /usr/local/bin/mysql -u root --password=${passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v '^Tables' | \
  xargs /usr/local/bin/mysqldump -Q --add-locks -u root --password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #6 : 06 Августа 2009, 09:18:00 »

да, traf_info можно не бекапить:

Код:
#!/bin/sh
passwd_root_mysql='hardpass'
mysql_cmd='/usr/local/bin/mysql'
mysqldump_cmd='/usr/local/bin/mysqldump'

fl=`date "+%d-%m-%Y"`
cd /var/backups/
echo show tables | ${mysql_cmd} -u root --password=${passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v 'traf_info' | grep -v '^Tables' | \
  xargs ${mysqldump_cmd} -Q --add-locks -u root --password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz
Записан
trio
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #7 : 30 Сентября 2009, 17:39:22 »

Чтобы не хранить много архивов можно просто старые удалять за ненадобностью оставляя например актуальные архив за последний месяц ( если конечно происходит бэкап ежедневно)
Для это добавляем в конец бэкапа вот такую строчку:

Код:
#!/bin/sh 
user_mysql='root'
passwd_root_mysql='hardpass'
host_mysql='localhost'
fl=`date "+%d-%m-%Y"`
cd /home/backups/bill/
echo show tables | mysql -h ${host_mysql} -u ${user_mysql} --password=$ {passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v '^Tables' | \
  xargs mysqldump -Q --add-locks -h ${host_mysql} -u ${user_mysql} -- password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz

find . -name \*.tar.gz -depth 1   | sort -r | sed 1,31d | xargs rm

удаляет фалы из папки старше 31-го дня.
Получается всегда файлов в папке с бэкапами будет ровно 31 штука ) - тоесть на каждый день по штучке грубо говоря (актуальность бекапов - 1 мес )
« Последнее редактирование: 30 Сентября 2009, 23:21:44 от trio » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #8 : 10 Октября 2009, 16:38:55 »

Можно не указывать пароль в скрипте:

Код:
#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
passwd_root_mysql=`perl -e'require "/usr/local/nodeny/history.nod"; print $sql_root_pass;'`
mysql_cmd='/usr/local/bin/mysql'
mysqldump_cmd='/usr/local/bin/mysqldump'

fl=`date "+%d-%m-%Y"`
cd /var/backups/
echo show tables | ${mysql_cmd} -u root --password=${passwd_root_mysql} bill | \
  grep -v '^[stuvxyz]2' | grep -v 'traf_info' | grep -v '^Tables' | \
  xargs ${mysqldump_cmd} -R -Q --add-locks -u root --password=${passwd_root_mysql} \
  --default-character-set=cp1251 bill $1 > bill_${fl}.sql
tar -c -z -f ${fl}.tar.gz bill_${fl}.sql
rm -f bill_${fl}.sql
chmod 400 ${fl}.tar.gz
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #9 : 02 Декабря 2009, 01:15:22 »


find . -name \*.tar.gz -depth 1   | sort -r | sed 1,31d | xargs rm

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

мне выражение
find . -name \*.tar.gz -mtime +31 -delete
кажется элегантней: удаляются файлы старше 31 дня без учета их названия, в результате чего получается бекап на 31 день.
Записан
olegotek
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #10 : 23 Января 2010, 02:13:25 »

Скрипт получился хорош, но помогите пожалуйста запустить восстановление. Выдает ошибку:
mysql> source bill_22-01-2010.sql;
ERROR:
Failed to open file 'bill_22-01-2010.sql', error: 2

Записан
olegotek
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #11 : 23 Января 2010, 15:46:13 »

Разобрался. Думаю уместно для новичков, как это и смешно, указать что перед командами восстановления нужно архив распаковать. 10 мин Гугла и находим tar -x -f dd-mm-yyyy.tar.gz
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #12 : 23 Января 2010, 15:48:17 »

Я думаю что тебе надо прочитать эту книгу...
http://forum.nodeny.com.ua/index.php?topic=366.msg3393#msg3393
Записан
olegotek
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #13 : 23 Января 2010, 16:07:40 »

Уважаемый, это уже оскорбление, эта книга написана для вообще неопределенных людей, которые вообще незнают что они хотят. Для меня, управляющего сетью с двух сотен абонентов задача четкая: поставить побыстрее нодени. Я сам, конечно благодаря оперативной техподдержке по скайпу, установил Фряху при том что первый раз ее видел, в том числе и tar.gz. А всю документацию к нодени я виучил почти наизусть. Со временем только наберемся опыта.
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #14 : 23 Января 2010, 16:12:26 »

Ну очевидно что sql.gz это архивированный файл который мускул несможет захавать.
Записан
Страниц: [1] 2 3 ... 6
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!