25 марта 2008 г.

Резервное копирование

Подумал о правильном резервном копировании данных на моем компьютере. Раньше я делал это простым tar скриптом, который все данные скидывает в один файл и все. Недостаток этого дела, в том что затруднен доступ к отдельным файлам, процесс резервного копирования достаточно долог. У меня резервная копия занимает около 14 Гб. Поиск в Интернете привел меня вот к такому посту:

http://www.linuxforum.org.ua/viewtopic.php?f=13&t=329

На всякий случай сделаю копию у себя:

Встала задача "правильно" бекапить свои файлы.
Начитался про инкрементное резервное копирование - захотелось и самому :)


nncron.ru писал(а):Инкрементное резервное копирование - очень эффективный и вместе с тем надежный способ резервного копирования. Его основные преимущества - скорость и высокая степень настраиваемости: в зависимости от размера исходных данных вы можете выбирать схему резервного копирования, которая уменьшит затраты времени на восстановление данных (особенно при больших объемах информации).


Режим инкрементного резервного копирования напоминает действие популярной юниксовой утилиты dump и позволяет сначала выполнить резервное копирование всего исходного каталога и потом "добавлять" к нему те файлы, которые изменились со времени последнего резервного копирования.

после некоторого времени потраченного на тесты - разобрался в системе и "подсел" на нее. Очень удобно. В первую очередь хочу поделиться с вами и с самим собой небольшой шпаргалкой по использованию rdiff-backup.

условимся что,
каталог /test/from - каталог с исходными файлами
каталог /test/to - каталог с бекапами

вот так вот делаем резервную копию
--print-statistics выводит небольшой отчет о бакапе.

Код:

rdiff-backup --print-statistics /test/from /test/to


вот так вот сравниваем изменения между уже существующим бекапом и настоящими файлами

Код:

rdiff-backup --compare /test/from /test/to


если мы не хотим бекапить определенный каталог - не страшно
/test/from/hernya - каталог который мы не хотим бекапить.

Код:

rdiff-backup --exclude /test/from/hernya --print-statistics /test/from /test/to


вот так вот просмотриваем количество сохраненных резервных копий и обьем которые занимают инкременты

Код:

rdiff-backup --list-increment-sizes /test/to


если все дисковое пространство сьели инкременты, можно например удалить все что старее чем "сейчас" (сам бекап остается)

Код:

rdiff-backup --remove-older-than now /test/to


а вот так восстанавливаем текущий бекап обратно (now можно заменить на другое время)

Код:

rdiff-backup -r now /test/to /test/from


кстати rdiff-backup работает не только с локальными дисками - но у удаленными.
еще примеров можно найти тут: http://www.nongnu.org/rdiff-backup/examples.html

Ну на совет мастера это не тянет, ну как шпора думаю пойдет :)

З.Ы. единственное что не получилось реализовать - статус бар прогресса выполнения копирования. (хотя с другой стороны, зачем он нужент - ведь это инкрементное копирование.)
исправления ошибок, дополнения и т.д. приветствуются.

20 марта 2008 г.

Как компилировать клиент MySql в Windows

С удивлением заметил, что мой C++ клиент для MySQL не хочет компилироваться из под Windows компилятором MinGW.

Инет говорит, что это нужно лечить вот так:

http://forums.mysql.com/read.php?45,64209,72004

Привет.

Я работаю под Windows XP SP2 и mingw32 (конечно и msys).

Чтобы собрать libmysql.def и libmysql.a нужно:
- Установить mingw-utils (с сайта mingw.org) (для reimp.exe и dlltool.exe)
- установить Windows версию mysql
- вручную скопировать $(MYSQL_PATH)/lib/opt/* в $(MINGW_PATH)/lib/mysql/
- вручную скопировать $(MYSQL_PATH)/include/* в $(MINGW_PATH)/include/mysql/
- запустить msys
- cd $(MINGW_PATH)/lib/mysql
- reimp.exe libmysql.lib
- mv liblibmysql.a libmysql.a

В ваших программах:

#include <winsock.h> // Всегда на первом месте!
#include <mysql.h>
#include ....



Компилировать со следующими флагами:

CFLAGS=-I$(MINGW_PATH)/include/mysql

LDFLAGS=-L$(MINGW_PATH)/lib/mysql -lmysql -lm -lz


У меня это работает. Я могу соеденяться, выбирать базу данных, создавать базу данных, выполнять запросы...


У меня это работает тоже.

18 марта 2008 г.

Как сделать USB звуковуху, устройством по умолчанию

Когда втыкаешь в компьютер внешнюю USB звуковую карточку, чтобы сделать ее alsa устройством по умолчанию нужно дать команду:

asoundconf set-default-card Audio

Чтобы увидеть список звуковых устройств нужно дать команду:

asoundconf list

14 марта 2008 г.

Доводка Eclipse

Продолжаем доводку Eclipse зубилом и напильником. В Ubuntu только что установленный Eclipse жутко тормозит.

Первым делом нужно заставить его работать под управлением java машины от Sun. Для это нужно в файле /etc/eclipse/java_home первой строчкой поставить путь к java машине от Sun, что-то типа этого /usr/lib/jvm/java-6-sun.

Второе, у меня периодически во время индексирования С++ исходного кода, Eclipse вылетал с сообщением о нехватке памяти. Иклипсу нужно дать больше памяти. Чтобы это сделать его нужно запускать вот так:

eclipse -vmargs -Xmx512m -Xms512m

Надеюсь, что жить под Eclipse станет легче.