versus
|
|
« : 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
|
|
« Ответ #1 : 01 Августа 2009, 09:34:04 » |
|
Кстати, кто-нибудь разобрался почему скрипт не работает, если его перенести в /etc/periodic/weekly/?
я было думал, что дело в переменных окружения, да прописал полный путь к mysql (/usr/local/bin/mysql), но это не помогло.
Хотя... я сейчас смотрю, что к mysqldump не прописан полный путь. вероятно дело в нем
|
|
|
Записан
|
|
|
|
elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #2 : 01 Августа 2009, 17:29:59 » |
|
Кстати, этот скрипт дампит таблицу `traf_info` Нужна ли она?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #3 : 02 Августа 2009, 00:19:55 » |
|
да, думаю ее можно исключить
|
|
|
Записан
|
|
|
|
trio
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 76
|
|
« Ответ #4 : 02 Августа 2009, 00:35:43 » |
|
Хотя... я сейчас смотрю, что к mysqldump не прописан полный путь. вероятно дело в нем
/usr/local/bin/mysqldump - Эфект нулевой
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #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
|
|
« Ответ #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
Сообщений: 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
|
|
« Ответ #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
Сообщений: 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
Сообщений: 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
Сообщений: 38
|
|
« Ответ #11 : 23 Января 2010, 15:46:13 » |
|
Разобрался. Думаю уместно для новичков, как это и смешно, указать что перед командами восстановления нужно архив распаковать. 10 мин Гугла и находим tar -x -f dd-mm-yyyy.tar.gz
|
|
|
Записан
|
|
|
|
versus
|
|
« Ответ #12 : 23 Января 2010, 15:48:17 » |
|
|
|
|
Записан
|
|
|
|
olegotek
NoDeny
Пользователь
Карма: 1
Offline
Сообщений: 38
|
|
« Ответ #13 : 23 Января 2010, 16:07:40 » |
|
Уважаемый, это уже оскорбление, эта книга написана для вообще неопределенных людей, которые вообще незнают что они хотят. Для меня, управляющего сетью с двух сотен абонентов задача четкая: поставить побыстрее нодени. Я сам, конечно благодаря оперативной техподдержке по скайпу, установил Фряху при том что первый раз ее видел, в том числе и tar.gz. А всю документацию к нодени я виучил почти наизусть. Со временем только наберемся опыта.
|
|
|
Записан
|
|
|
|
goletsa
NoDeny
Спец
Карма: 21
Offline
Сообщений: 973
|
|
« Ответ #14 : 23 Января 2010, 16:12:26 » |
|
Ну очевидно что sql.gz это архивированный файл который мускул несможет захавать.
|
|
|
Записан
|
|
|
|
|