четверг, 16 апреля 2015 г.

Залить все таблицы из tar.gz в mysql

Если каждая таблица задамплена отдельно можно отдной командой залить все

find . '*.sql.gz' | while read line; do gunzip < $line | mysql -u root -p 7min ; done

понедельник, 30 марта 2015 г.

mytop через brew в os x install_driver(mysql) failed: Can't load '/usr/local/Cellar/mytop/1.6/libexec/lib/perl5/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/usr/local/Cellar/mytop/1.6/libexec/lib/perl5/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib

Если получаем ошибку при старте или копиляции нужно сделать симлмнк


Ошибка:
mytop
install_driver(mysql) failed: Can't load '/usr/local/Cellar/mytop/1.6/libexec/lib/perl5/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/usr/local/Cellar/mytop/1.6/libexec/lib/perl5/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib
Referenced from: /usr/local/Cellar/mytop/1.6/libexec/lib/perl5/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
Reason: image not found at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
at (eval 13) line 3. Compilation failed in require at (eval 13) line 3.
Perhaps a required shared library or dll isn't installed where expected
at /usr/local/Cellar/mytop/1.6/libexec/bin/mytop line 235.
Создаем симлинк:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

вторник, 3 февраля 2015 г.

Mysql подсказки

Развернуть из gz сразу в  MySQL:

time gunzip < db.sql.gz |mysql -uroot -pPASS dbName

четверг, 10 октября 2013 г.

Редактирвание SQL в vim и подсветка

Для того что бы vim подсвтил синтаксис sql в командном режиме выполняем
:set ft=sql

понедельник, 23 сентября 2013 г.

vagrant mac os x делаем доступную виртуалку на 80 порту

Web Development on Port 80 and 443 in Vagrant

In this post I'm going to talk about using port 80 and 443 for web development on a Mac running 1 or more virtual machines under Vagrant.

Why use port 80 and port 443?

Port 80 is the standard port for HTTP and 443 is the standard port for HTTPS. While other ports can be used, they're non-standard, and some (if not most) webapps make assumptions about those port numbers. You can really get burned on matters of HTTP redirection, such as when a form is submitted or when redirection from HTTP to HTTPS happens. While applications can certainly be built to take the port numbers into account, many are not.
Unfortunately, it's not a simple matter of telling configuring your Vagrant instance to listen on ports 80 and 443. Any port under 1024 requires the program to be running as root. And running an app as the root user is generall y never a good idea.

Can I forward ports from the Vagrant instance?

Why yes, you can! It's as simple as putting these lines in your Vagrantfile:
config.vm.forward_port 80, 8080
config.vm.forward_port 443, 8443

Wait, those are ports 8080 and 8443!

Yes, they are. Remember what I said about needing to be the root user? But, under Mac OS/X we can forward ports 80 and 443 to ports 8080 and 8433. The trick is to use the ipfw utility which comes with OS/X and is used to manage its built in firewall.
Here's a "quick and dirty" way to do it from the command line:
sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443
From that point on, attempting to connect to http://localhost/ and https://localhost/ will be forwarded by ipfw to ports 8080 and 8433, which will be received by Vagrant which will in turn forward any traffic sent there to ports 80 and 443 on its virtual machine.
Until you reboot, at least.

Is there a way to make this forwarding permanent?

Yes, there is. It involves setting up a service through OS/X that is started at bootup.
The first step is to set up a plist in the file /Library/LaunchDaemons/org.dmuth.ipfw.plist:
xml version="1.0" encoding="UTF-8"?>
 
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>org.dmuth.ipfw</string>
    <key>Program</key>
    <string>/sbin/ipfw</string>
    <key>ProgramArguments</key>
    <array>
      <string>/sbin/ipfw</string>
      <string>-q</string>
      <string>/etc/ipfw.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true>
  </true></dict>
</plist>
This will tell the machine that there is a new service which, when started, tells ipfw to load firewall rules out of the file /etc/ipfw.conf. That means we next need to populate /etc/ipfw.conf as follows:
#
# Flush all of our pre-existing rules.
#
flush
 
#
# Forward port 80 to our Vagrant instance.
#
add 100 fwd 127.0.0.1,8080 tcp from any to me 80
 
#
# Same deal for port 443
#
add 101 fwd 127.0.0.1,8443 tcp from any to me 443
Now we just need to enable the service. Run this on the command line
sudo launchctl load -w /Library/LaunchDaemons/org.dmuth.ipfw.plist

That was a lot of work!

It sure was. But it can be automated. This is the part where you should read my Chef 101 article because things like the above can be completely automated. In fact, I created a cookbook for the above. It can be installed with the following Chef command:
sudo chef-solo -c ./config.rb -o mac-os-x-ipfw

пятница, 8 февраля 2013 г.

Записать рабочий стол в ubuntu

gtk-recordesctop ставим и запускаем на запись, после конвертируем в avi командой
mencoder -idx out.ogv -ovc lavc -oac mp3lame -o output.avi

CButtonColumn url для стандартных кнопок

array(    'class'=>'CButtonColumn',    'viewButtonUrl'=>'Yii::app()->controller->createUrl("students/view",array("id"=>$data->id))',    'updateButtonUrl'=>'Yii::app()->controller->createUrl("students/update",array("id"=>$data->id))',    'deleteButtonUrl'=>'Yii::app()->controller->createUrl("students/delete",array("id"=>$data->id))',
),


четверг, 31 января 2013 г.

Cgridview checkbox


        array(
            'header' => '#',
            'name' => 'id_coupon',  -> какие данные отправлять
            'class' => 'CCheckBoxColumn',
            'checked' => '($data->recomendet_coupon== 1)?(1):(0)', --> проверяем чекнутый или нет
        ),
        arr

среда, 11 апреля 2012 г.

yii поиск по критерию

  1. public function actionIndex()
  2.         {
  3.                  // $request = Yii::app()->request;
  4.            
  5.                   if (Yii::app()->user->isAdmin()) {
  6.                         $dataProvider = new CActiveDataProvider('User');
  7.                     } else {
  8.                        $id = Yii::app()->user->id;
  9.                        $criteria = new CDbCriteria;
  10.                        $criteria->condition = 'user_id=:user_id';
  11.                        $critetia->params = array(':user_id' => $id);
  12.                        $dataProvider = new CActiveDataProvider('User', array(
  13.                                                                     'criteria'=>$critetia,
  14.                            
  15.                     ));
  16.                     }
  17.      
  18.                 $this->render('index',array(
  19.                         'dataProvider'=>$dataProvider,
  20.                 ));
  21.         }

понедельник, 6 декабря 2010 г.

Вылисить от iframe хостинг


Итак, если ваш сайт взломан или подобран пароль к вашему фтп-аккаунту и в некоторых (или во всех) файлах присутствует вражеский код iframe – самое время заняться чисткой.
Обнаружение противника
Для начала вражеский код нужно обнаружить. Самый безопасный и правильный подход – найти подозрительные участки кода в зараженных файлах и детерминировать их как вредоносные.
find . -name “*.php*” -or -name “*.*htm*” -exec grep “iframe” {} \; -print | less
В результате вы увидите код ифреймов и пути к зараженным файлам:
Теперь, когда вы уже знаете врага в лицо, можно приступать к чистке:
ind . -name “*.php*” -or -name “*.*htm*” -exec sed -i ” -e ‘s/\\<\/iframe\>//g’ {} \;
/!\ Внимание /!\sed отредактирует ваши файлы! Если вы не уверены в правильности составленного кода, можете использовать более безопасный вариант (без ” после ключа -i):
find . -name “*.php*” -or -name “*.*htm*” -exec sed -i -e ‘s/\\<\/iframe\>//g’ {} \;
В этом случае, sed оставит исходные копии файлов с именами с -е в конце (исходный: 1.shtml-e, исправленный: 1.shtml). Если *вдруг* что-то пошло не так, сможете быстро восстановить исходные файлы.

среда, 1 декабря 2010 г.

Удаление файлов по маске


find /home/vasya -name "*.txt" | xargs rm
rm *.txt, rm -r *.txt

вторник, 12 октября 2010 г.

Директивы nginx

Вот наткнулся на такую статью . Директивы nginx http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#keepalive_timeout

четверг, 9 сентября 2010 г.

Скорость перезаписи днс серверов на домене

biz.ua, co.ua - несколько минут
com.ua - 2 часа
in.ua, kiev.ua, org.ua - 6 часов
региональные - 48-96 часов
net.ua - 96 часов
Международные:
com, net, org, biz, info - несколько минут
bz, name, ws - 24 часа.
Другие:
российские - 24 часа.
зарубежные - 24 часа.
New.Net - 24 часа.

среда, 25 августа 2010 г.

nginx 502 при логине на сайте

"такс как уже говорилось 502 вываливает из-за того что nginx считает http заголовки запроса мего огромными и не предает апачу на обработку.
Описал человек в ветке что необходимо увеличить вес такого заголовка в конфиге, но как и что писать не сказал. У меня свой собственный хостинг и клиенты никогда не говорили про 502 ошибку, вот поставил магазин и столкнулся, потому даловаться некому, необходимо решить самому.
Вообщем у меня редхат стоит потому конфиг тут:
/etc/nginx/nginx.conf
в нем находим:
я делал глобально для всех клиентов (мало ли кому такое нуна будет, а нагрузки на серв нету)
потому в часть конфига там где
http { 

вбиваем там ниже чем включение gzip сжатия
proxy_buffer_size 16k;
proxy_buffers 16 16k; 

вторник, 24 августа 2010 г.

Перенастройка exim4 debian

dpkg-reconfigure exim4-config

linux google chrome автопрокрутка

Вот росширение росширение тыц) ставим 2-й плагин он проверен ребутим хром и радуемся!

пятница, 6 августа 2010 г.

debian+kvm

И так пришло время немного привести свои записи в порядок.
  • Первым делом хочу поблагодарить человека под ником inkvizitor68sl благодаря которому собственно я немного розобрался в виртуализации на базе kvm. Его блог вы можете почитать здесь Нажать. И там же есть подробная инструкция по настройке kvm на debian.
  • Я не буду здесь описывать как установить и настроить дистрибутив Debian так как считаю что это описывать излишне.
  • Начнем с установки необходимых пакетов.
  • sudo apt-get install kvm libvirt-bin virtinst bridge-utils
  • Настроим сеть на основной (хост машине) правим файл /etc/network/interfaces
auto lo
iface lo inet loopback
auto  eth0
iface eth0 inet static
auto br0
iface br0 inet static
address   178.ххх.ххх.137
netmask   255.255.255.192
network 178.ххх.ххх.0
broadcast 178.ххх.ххх.191
gateway   178.ххх.ххх.129
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
  • Применяем изменени
    • /etc/init.d/networking restart
  • Для удобства создадим каталоги:
    • mkdir /iso && mkdir /vms


  • И скачаем образ установочный образ debian
    Так как я все делаю на lvm разделах то мне нужно создать раздел под виртуалку. 

    • lvcreate -L20G -n name  namegrouplvm


  • Где name -это имя виртуального разделя для vps

  • namegrouplvm -это имя групы lvm тома в которой создаем раздел для виртуалки

  • -L20G - создаст раздел обёмом 20 гб

  • Приступим к созданию виртуальной машины 




            • virt-install -n vm1 -r 1024 -f /dev/namegrouplvm/name -c /iso/debian-cd/5.0.4/amd64/iso-cd/debian-504-amd64-CD-1.iso –accelerate –os-type=linux –os-variant=generic26 -v –vnc -w bridge:br0
              Расскажу о приведенных выше опциях:
              -n vm1 – имя домена (виртуальной машины)
              -r 1024 – количество оперативной памяти
              -f /dev/namegrouplvm/name -расположение раздела созданного выше
              -c /iso/debian-cd/5.0.4/amd64/iso-cd/debian-504-amd64-CD-1.iso – указываем iso образ, с которого будем производить установку системы. Рекомендую запускать 64х битные образы под 64й битной ОС хост-машины.
              –accelerate –os-type=linux –os-variant=generic26 -v – оптимизируем VDS для работы с виртуальным Linux с ядром 2.6.хх
              –vnc – запускаем VNC-сервер для доступа к виртуальной машине.
              -w bridge:br0 – указываем, что виртуальная машина должна использовать сетевлй мост br0  хост-машины
              Теперь вы должны увидеть в VNC установщик Debian. Ставим всё как обычно





                    четверг, 29 июля 2010 г.

                    Установка и настройка named первичного и вторичного

                    Установка
                    • Проверяем устновлены ли у нас пакеты bind и bind-chroot
                    rpm -q bind
                    bind-9.3-..бла бла
                    rpm -q bind-chroot
                    bind-chroot-9.3 бла бла
                    • Благодаря второму пакету, мы повышаем защищенность сервера от взлома, изолируя bind от остальной системы. Обратите внимание, после установки этого пакета все файлы, которые использует bind, перемещаются в каталог /var/named/chroot/. При этом в файлах конфигурации пути менять не нужно
                    Настройка
                    • bind использует данные о текущем времени. Поскольку мы настраиваем его в режиме chroot, необходимо заменить файл /var/named/chroot/etc/localtime файлом с данными о вашем часовом поясе. Подробнее об этом: Выбор часового пояса. Обратите внимание, нужно именно заменить файл, т.к. в режиме chroot символическая ссылка на другой файл вне каталога /var/named/chroot/работать не будет.Файл /var/named/chroot/etc/rndc.key содержит ключ авторизации для программы rndc. Эта программа осуществляет управление сервером bind, показывает статистику обращений.
                    • Сначала создайте строку-ключ:
                    dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey
                    • Эта команда создаст два файла в текущем каталоге. В файле *.private в третьей строке будет находится ключ вида:
                    PBpLBGUy6QRdCnUMwv9dxw==
                    • Создайте файл rndc.key с этим ключем:
                    key "rndckey" {
                      algorithm hmac-md5;
                      secret "PBpLBGUy6QRdCnUMwv9dxw==";
                    };
                    • И, наконец, создайте файл named.conf:
                    options {
                      directory "/var/named";
                      dump-file "/var/named/data/cache_dump.db";
                      statistics-file "/var/named/data/named_stats.txt";
                      listen-on { 127.0.0.1; };
                      version "unknown";
                      allow-recursion { none; };
                      allow-query { any; };
                    };
                    • Замените 127.0.0.1 на желаемый IP, по которому должен откликаться bind(Даже если вы за модемом или точкой всеравно указывайте ip интерфейса).Кстати, установив параметр version в значение unknown, мы спрятали версию сервера в стандартном приветствии и таким образом немного защитили свой сервер от злоумышленников.Проверить файл конфигурации на ошибки можно командой:
                    named-checkconf /var/named/chroot/etc/named.conf
                    • Готово! Можно добавлять домены.

                    Отправка почты через внешний smtp (Exim4+google)

                    И так с сегоднешнего дня буду стараться писать статьи более понятны. НЕ только для себя).
                    Сегодня заставим Exim4 в Debian отправлять почту через внешний smtp.В Нашем случае это будет Google.
                    Делаем все от прав root.

                    1. aptitude install exim4 -ставим сам exim ,хотя он может быть и установлен.
                    2. Редактируем параметры в конфиге для отправки через google который находится вот здесь:/etc/exim4/update-exim4.conf.conf В нем находим 2 строчки котрые нам нужно привести к фиду:

                    dc_eximconfig_configtype=’smarthost’
                    dc_smarthost=’smtp.gmail.com::587′
                      
                     3.Добавим пару строчек в файл авторизации /etc/exim4/passwd.client не забудьте вписать свои логин и пароль соотвецтвенно:

                    gmail-smtp.l.google.com:mylogin@gmail.com:password
                    *.google.com:mylogin@gmail.com:password
                    smtp.gmail.com:mylogin@gmail.com:password
                     4.Применим новые настройки : 
                     update-exim4.conf
                              
                    Вот и все! Все отправляется теперь.
                    НУ и конечно же оригинал Нажать