MySQLDBBackup новая версия

Автор : Silver Ghost | Разделы : MySQL, Скрипты | Дата : 02-07-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд

Теги : ,

Переписал скрипт для бекапа баз MySQL.

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

Итого получилось такое:

MySQL DB Backup умеет сохранять резервные копии баз данных; позволяет управлять резервированием баз данных из одного места, что гораздо удобнее, чем ручное копирование; проводить ротацию файлов копий, ограничив количество этих копий; создавать резервные копии на удаленном сервере.

[ ... СКАЧАТЬ ... ]

$ svn co --username anonymous http://svn.in-lan.net.ua/svn/MySQLDBBackup

[ ... ИНСТРУКЦИЯ ПО УСТАНОВКЕ ... ]

1. Настройте параметры конфигурации в файле mysqldbbackup.ini.

Раздел Options. В нем находятся настройки
хранения, ротации, доступа к базе данных. Для примера:

[Options]
removedays = *
nob = 10
arch = gzip
copt = c
dbhost = localhost
dbuser = root
dbpass = Mega$uperPa$sword
isslave = 1
bpath = /root/MySQLDBBackup/archives

- removedays отвечает за настройку дня недели, в которые будет проводиться удаление
старых файлов резервных копий. Дни недели указываются через запятую (0 - воскресенье). Можно
указать “*”, что означает каждый день. НЕ ИСПОЛЬЗУЕТСЯ В ЭТОЙ ВЕРСИИ.;
- nob (number of backups) отвечает за количество хранимых бекапов;
- arch - архиватор;
- copt - параметры архиватора;
- dbhost - адрес хоста MySQL сервера;
- dbuser - имя суперпользователя (обычно root);
- dbpass - пароль для указанного пользователя;
- isslave - определяет останавливать репликацию на сервере или нет перед бекапом;
- bpath - путь для бекапов.

2. Установите права запуска на скрипт 700, владельца и группу root.
3. Внесите в crontab запуск скрипта по расписанию:

0 1 * * * root php /path/to/mysqldbbackup.php

5. Все. Скрипт находится в рабочем состоянии.

[ ... TO DO ... ]

1. Персональные настройки для каждой базы.

[ ... HISTORY ... ]

ver. 2.0b1

+ бекап всех баз сервера;
+ остановка репликации на подчиненном сервере;
+ доп. параметры конфига;
+ добавлены параметры архиватора;
* Временно не работает дни бекапа баз;

ver. 1.0

+ Создан конфиг в виде стандартного ini-файла;
+ Добавлена проверка наличия замыкающего слеша;
* Переписана схема ротации;
* Увеличена информативность выводимого отчета.

[ ... REGARDS ... ]

1. Спасибо за помощь в отлове багов Lice (TSRh Team).

Прошу комментировать и вносить предложения. :)

Постовые: room in odessa, яхты украина, russian radio

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Несколько DVB карт в Linux

Автор : Silver Ghost | Разделы : Линукс | Дата : 27-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голос(ов), среднее: 3.00 из 5)

Теги : , ,

Столкнулся с проблемой тут недавно. Несколько DVB карт при перезагрузке менялись местами в произвольном порядке. Весьма неприятное явление, если у Вас каналы идут с разных спутников. Они отваливаются напрочь.

Перерыл кучу всего и только в одном месте смог найти внятное объяснение. Через udev нужно было “зафиксировать” эти карты на своих местах. Проблема была в том, что у меня 4 карты из 5 одного производителя, что влечет за собой невозможность привязки по производителю.

Из положения вышел привязкой по другому параметру. Итак, смотрим параметры карт:

# udevinfo -a -n /dev/dvb/adapter0/frontend0

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/class/dvb/dvb0.frontend0':
    KERNEL=="dvb0.frontend0"
    SUBSYSTEM=="dvb"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:02:00.0':
    KERNELS=="0000:02:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="b2c2_flexcop_pci"
    ATTRS{vendor}=="0x13d0"
    ATTRS{device}=="0x2103"
    ATTRS{subsystem_vendor}=="0x13d0"
    ATTRS{subsystem_device}=="0x2103"
    ATTRS{class}=="0x028000"
    ATTRS{irq}=="21"
    ATTRS{local_cpus}=="00000000"
    ATTRS{local_cpulist}==""
    ATTRS{modalias}=="pci:v000013D0d00002103sv000013D0sd00002103bc02sc80i00"
    ATTRS{numa_node}=="-1"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0':
    KERNELS=="0000:00:1e.0"
    SUBSYSTEMS=="pci"
    DRIVERS==""
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x244e"
    ATTRS{subsystem_vendor}=="0x0000"
    ATTRS{subsystem_device}=="0x0000"
    ATTRS{class}=="0x060400"
    ATTRS{irq}=="0"
    ATTRS{local_cpus}=="00000000"
    ATTRS{local_cpulist}==""
    ATTRS{modalias}=="pci:v00008086d0000244Esv00000000sd00000000bc06sc04i00"
    ATTRS{numa_node}=="-1"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

Соответственно, для других карт смотрим тоже-самое. Дальше “прибиваем” карту к устройству в dev. Создаем файл /etc/udev/rules.d/10-local.rules с содержимым:

SUBSYSTEM=="dvb", KERNELS=="0000:02:00.0", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter0/%%s $${K#*.}'", NAME="%c", GROUP="video"
SUBSYSTEM=="dvb", KERNELS=="0000:02:02.0", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter1/%%s $${K#*.}'", NAME="%c", GROUP="video"

Это для двух DVB-карт. Если надо больше - значит добавляем больше строк. После перезагрузки карты не перемешаются, а останутся зафиксированными.

Постовые: valet parking heathrow, гостиницы болгарии, наращивание ногтей спб

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Виртуальные хосты в Апаче2

Автор : Silver Ghost | Разделы : Apache, Линукс | Дата : 27-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голос(ов), среднее: 4.00 из 5)

Теги : ,

Пришло мне недавно письмо от одного из читателей с просьбой написать о виртуальных хостах в Апаче. Сложного там ничего нет, а потому приведу один из своих конфигов, а после его разберем построчно. Первое, что нужно сделать - это удалить симлинк /etc/apache2/sites-enabled/default.

Потом добавляем в httpd.conf строку:

NameVirtualHost *:80

Создаем файл domain.tld.vhost в каталоге /etc/apache2/sites-available с настройками виртуального хоста:

<VirtualHost *:80>
DocumentRoot /var/www/domain.tld/web

ServerName domain.tld
ServerAlias www.domain.tld
ServerAdmin webmaster@domain.tld

ErrorLog /var/www/domain.tld/log/error.log

<Directory /var/www/domain.tld/web>
Options FollowSymLinks
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all
</Directory>

# mod_php enabled
AddType application/x-httpd-php .php .php3 .php4 .php5
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@domain.tld"
php_admin_value upload_tmp_dir /var/www/domain.tld/tmp
php_admin_value session.save_path /var/www/domain.tld/tmp
php_admin_value open_basedir /var/www/domain.tld:/usr/share/php5:/tmp

</VirtualHost>

Вот так выглядит конфиг для моего сайта. Дальше делем симлинк:

ln /etc/apache2/sites-available/domain.tld.vhost /etc/apache2/sites-enabled/domain.tld.vhost

Рестартуем Апач и все готово.

Теперь разберем сам конфиг:

  • DocumentRoot - корневой каталог сайта
  • ServerName - домен сайта
  • ServerAlias - второй домен сайта, например, с www
  • ServerAdmin - EMail администратора сайта
  • ErrorLog - где будет лежать лог-файл ошибок

Дальше идут параметры каталога сайта и тонкие настройки для PHP. Это уж разберите сами. Типа домашнее задание. :)

Постовые: газеты одессы, iwc replica, valet parking gatwick

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Mikrotik Burst Limit и ABills

Автор : Silver Ghost | Разделы : ABills, Mikrotik | Дата : 25-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд

Теги : ,

В одной из веток форума ABills была просьба о выставлении Burst Limit на микротике для пользователей. Это дает более быстрый серфинг по страничкам при ограниченном канале. В коммерческой версии биллинга это реализовано. Но платить 1000 у.е. как-то не сильно хочется, а пользовать такую возможность было бы очень даже интересно.

Идем в WiKi микротика и находим следующий RADIUS атрибут:

Mikrotik-Rate-Limit - Datarate limitation for clients. Format is: rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]] from the point of view of the router (so “rx” is client upload, and “tx” is client download). All rates should be numbers with optional ‘k’ (1,000s) or ‘M’ (1,000,000s). If tx-rate is not specified, rx-rate is as tx-rate too. Same goes for tx-burst-rate and tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and tx-burst-threshold are not specified (but burst-rate is specified), rx-rate and tx-rate is used as burst thresholds. If both rx-burst-time and tx-burst-time are not specified, 1s is used as default. Priority takes values 1..8, where 1 implies the highest priority, but 8 - the lowest. If rx-rate-min and tx-rate-min are not specified rx-rate and tx-rate values are used. The rx-rate-min and tx-rate-min values can not exceed rx-rate and tx-rate values.

Для тех, кто не понимает английского языка переведу:

Mikrotik-Rate-Limit - ограничение потока данных для клиентов. Формат: rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]] с точки зрения маршрутизатора (таким образом “rx” - клиентская отдача, а “tx” является клиентской загрузкой). Все нормы должны быть числами с дополнительным ‘k’ (1,000s) или ‘М’ (1,000,000s). Если tx-rate не определен, то tx-rate принимается как и rx-rate. То же самое идет для tx-burst-rate, tx-burst-threshold и tx-burst-time. Если и rx-burst-threshold и tx-burst-threshold не определены (но burst-rate определен), rx-rate и tx-rate используются как burst thresholds. Если и rx-burst-time и tx-burst-time не определены, 1s используется как значение по умолчанию. Приоритет принимает значения от 1 до 8, где 1 подразумевает самый высокий приоритет, а 8 - самый низкий. Если rx-rate-min и tx-rate-min не определенные значения используются rx-rate и tx-rate. rx-rate-min и tx-rate-min значения не могут превышать значения rx-rate и tx-rate.

Т.е. мы можем для каждого тарифного плана выставить RADIUS параметр Mikrotik-Rate-Limit. Для примера возьму из своего биллинга для 1 мегабита:

Mikrotik-Rate-Limit = '1M 1536k 768k 8 8 1M'

rx-rate - 1 Mbps
rx-burst-rate - 1536 kbps
rx-burst-threshold - 768 kbps
rx-burst-time - 8 секунд
priority - 8
rx-rate-min - 1 Mbps

Т.е. я ограничиваю полосу пропускания канала в 1 мегабит (как гарантированную, так и максимальную), но если пользователь за 8 секунд не превышает 768 кбит, то ему может быть отдано 1.5 мегабита.

Таким образом мы добиваемся быстрого серфинга страничек, если пользователь не забивает канал закачками. Ну и конечно получам частичку коммерческой версии биллинга. :)

Если я в чем-то не прав - поправьте. Буду только рад.

Постовые: odessa wohnung, пули одесса, вечерние платье

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Команды rundll32

Автор : aleksandr | Разделы : Windows, Работа | Дата : 22-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голос(ов), среднее: 5.00 из 5)

Теги : ,

Вот, нашел в инете довольно большой список команд rundll32 windows, работающие под ХР.

rundll32 shell32.dll,Control_RunDLL hotplug.dll

диалоговое окно Отключение или извлечение аппаратного устройства

rundll32 мсprint2.dll,RUNDLL_PrintTestPage

распечатать тестовую страницу на принтере

rundll32 netplwiz.dll,AddNetPlaceRunDll

вызов мастера подключения нового сетевого ресурса “Добавление в сетевое окружение”.

rundll32 rnaui.dll,RnaWizard

вызов мастера “Удаленный доступ к сети”.

rundll32 rnaui.dll,RnaWizard /1м

вызов мастера “Удаленный доступ к сети” без отображения начального окна.

rundll32 shell,ShellExecute

открыть Проводник (папка “Рабочий стол”)

rundll32 shell32,Control_RunDLL

открыть в Проводнике папку “Панель управления”.

rundll32 shell32,Control_RunDLL appwiz.cpl,,n

вызов диалогового окна “Установка и удаление программ”, в котором будет открыта вкладка с номером “n” (от 1 до 3).

rundll32 shell32,Control_RunDLL main.cpl @0

открыть диалог “Свойства мыши”.

rundll32 shell32,Control_RunDLL main.cpl @1

открыть диалог “Свойства клавиатуры”.

rundll32 shell32,Control_RunDLL main.cpl @2

открыть папку “Принтеры”.

rundll32 shell32,Control_RunDLL main.cpl @3

открыть папку “Шрифты”

rundll32 SHELL32,Control_RunDLL modem.cpl, add

открыть диалог “Свойства модема”

rundll32 shell32,Control_RunDLL timedate.cpl

открыть диалог “Дата и время”. * rundll32 shell32,OpenAs_RunDLL - вызвать диалог “Открыть с помощью…”.

rundll32 shell32,ShellAboutA

информация о версии Windows.

rundll32 shell32,SHExitWindowsEx 0

закрыть все программы, перегрузить оболочку.

rundll32 shell32, SHExitWindowsEx 1

выключить ПК

rundll32 shell32, SHExitWindowsEx 2

перегрузить ПК

rundll32 shell32,SHExitWindowsEx 4

принудительно закрыть все программы

rundll32 shell32,SHExitWindowsEx 8

выход из Windows и выключение ATX-совместимого ПК.

rundll32 shell32,SHFormatDrive

вызов диалога форматирования диска А:

rundll32 SHELL32,SHHelpShortcuts_RunDLL AddPrinter

запуск “Мастера установки
принтера”

rundll32 shell32,SHHelpShortcuts_RunDLL Connect

запуск мастера подключения сетевого диска

rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintTestPage

распечатать тестовую страницу.

rundll32 sysdm.cpl,InstallDevice_Rundll

вызов мастера установки оборудования

rundll32 url.dll,FileProtocolHandler %1

открыть веб-страницу, где %1 - URL сайта (включая http://).

rundll32 url.dll,MailToProtocolHandler %1

создать новое письмо, где %1 - e-mail адресата.

rundll32 user,CASCADECHILDWINDOWS

расположить все окна каскадом.

rundll32 user,TILECHILDWINDOWS

расположить все окна по экрану.

rundll32 user,disableoemlayer

сбой системы (!) - выключить все функции ввода-вывода (клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать.

rundll32 user,ExitWindowsExec

быстрая перезагрузка Windows.

rundll32 user,RepaintScreen

выполнить команду “Обновить”

rundll32 user,SetCaretBlinkTime n

задать частоту мигания курсора, соответствующую значению параметра n.

rundll32 user,SetCursorPos

переместить курсор мыши в верхний левый угол экрана

rundll32 user,SetDoubleClickTime n

задать скорость двойного нажатия левой кнопки мыши (Double Click), соответствующую параметру n.

rundll32 user,SwapMouseButton

поменять местами клавиши мыши (обратная смена невозможна)

rundll32 user,WNetConnectDialog

вызов диалога “Подключение сетевого диска”

rundll32 user,WNetDisconnectDialog

вызов диалога “Отключение сетевого диска”

rundll32 AppWiz.Cpl,NewLinkHere %1

запуск мастера создания нового ярлыка, где %1 - путь к исходному файлу

Постовые: семинары и тренинги, косметика mary kay, катера и яхты

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Включаем возможность переподключения в Pandion

Автор : aleksandr | Разделы : jabber | Дата : 22-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голос(ов), среднее: 5.00 из 5)

Теги : ,

К сожалению в Jabber клиенте, который я использую в своей сети есть большой недостаток - он не переподключается при потере соединения с сервером. Но, к счастью, это исправимо.

В C:\Program Files\Pandion\src\main\XMPPOnStream.js меняем блок (в районе 297-ой строки)

Было:

else if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error’ ) )
{
if ( external.windows.Exists( ’signup’ ) )
OnLoginAbort
();
else
{
external.
globals( ‘XMPPReconnect’ ) = false;
var Str = ‘</stream:stream>’;
warn
( ‘SENT: ‘ + Str );
external.
XMPP.SendText( Str );
external.
XMPP.Disconnect();
}
}

Стало:

else if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error’ ) )
{
if ( external.windows.Exists( ’signup’ ) )
OnLoginAbort
();
else
{
if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error/system-shutdown’ ) )
external.
globals( ‘XMPPReconnect’ ) = true;
else
external.
globals( ‘XMPPReconnect’ ) = false;
}
}

Постовые: tiffany москва, генплан поселка, cheap replica watches

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Работа с архиваторами в Linux

Автор : aleksandr | Разделы : Software, Линукс | Дата : 22-06-2009 | Версия для печати
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голос(ов), среднее: 5.00 из 5)

Теги : ,

Полезная памятка по работе с архиваторами (архивами) в линухе.

tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
tar xf file.tar – распаковать file.tar
tar czf file.tar.gz files – создать архив tar с сжатием Gzip
tar xzf file.tar.gz – распаковать tar с Gzip
tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 – распаковать tar с Bzip2
gzip file – сжать file и переименовать в file.gz
gzip -d file.gz – разжать file.gz в file

Потовые: железнодорожные контейнерные перевозки, odessa apartments, детский отдых болгария

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com