Маска подсети

Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета.

Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.

Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0 находится в сети 12.34.56.0 с длиной префикса 24 бита. В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32. Читать далее «Маска подсети»

postgresql

Для разрешения подключения со всех адресов пишем в файле postgresql.conf

listen_addresses = '*'

Для разрешения пользователей указываем в файле pg.hba.conf

#IPv4 local connections:
host all all 0.0.0.0/0 md5

Выполнение команд

sudo -u postgres psql

Создание пользователя:

sudo -u postgres createuser [username]

Применение пароля для пользователя:

$ sudo -u postgres psql
psql=# alter user  with encrypted password '';

Создание функции с IF ELSE

CREATE OR REPLACE FUNCTION is_accesses(role_name varchar, currentuser integer, claims varchar, user_id integer) RETURNS integer
AS 
$BODY$
BEGIN
    IF role_name is null and user_id is null then
		RETURN 1;
	ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then
		RETURN 2;
	ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then  
		RETURN 3;
	ELSEIF (role_name is null and currentuser = user_id) then
		RETURN 4;
	else
		RETURN 0;
	end if;
 END
$BODY$
LANGUAGE plpgsql;

Создание функции

CREATE OR REPLACE FUNCTION get_object_fields()
RETURNS SETOF sys_users
AS 
$
BEGIN
    return QUERY SELECT * from sys_users;
END

$ LANGUAGE plpgsql; 

или

CREATE OR REPLACE FUNCTION get_object_fields()
RETURNS SETOF RECORD AS $
SELECT department_id WHERE ...
$ LANGUAGE sql STABLE;

Создание backup’a

sudo su - postgres 
pg_dump postgres > postgres_db.sql 

Восстановить. Нужно заранее создать бд и пользователя.

su - postgres 
psql -d database -f databas.sql 
====
psql -U postgres dbname < infile

Тестирование ExtJS проектов

Статья: Плагин autotest-plugin для VSCode

Тестирование NodeJS проекта отличается от ExtJS

  • применяется siesta вместо nodeunit
  • добавлена возможность проверки класса
  • есть возможность тестирования в браузере

Для тестирования ExtJS применяется проект siesta. Он позволяет производить тестирование в браузере компоненты ExtJS’a Читать далее «Тестирование ExtJS проектов»

Плагин autotest-plugin для VSCode

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

Для корректной работы плагина требуется наличие следующих утилит:

  • jsdoc
    npm install -g jsdoc
    jsdoc -v // для проверки
  • nodeunit
    npm install -g nodeunit
    nodeunit -v // для проверки

Инструкция по генерации и установке плагина

npm install -g vsce // эту команду можно не выполнять если пакет vsce был установлен до этого. подробнее https://code.visualstudio.com/docs/extensions/publish-extension
git clone git://git.appcode.pw/autotest-plugin.git
npm install
vsce package

Читать далее «Плагин autotest-plugin для VSCode»

Отладка nodejs которое работает через IIS

Устанавливаем

npm install -g node-inspect

В web.config system.webServer добавляем

<iisnode loggingEnabled="true" nodeProcessCommandLine=""%programfiles%\nodejs\node.exe" --inspect-brk" />

Открываем сайт в браузере Chrome (страница должна долго грузиться), затем в браузере вводим

chrome://inspect

И должно быть одно приложение, которое слушает порт 9229, нажимаем на него и снимаем breakpoint

MySQL — логирование долгих запросов

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

nano /etc/mysql/my.cnf

и поправить там настройки:

До версии 5.7

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1

Начиная с версии 5.7

slow_query_log = /var/log/mysql/mysql-slow.log
long_query_time = 1

log_slow_queries (slow_query_log) указывает путь к файлу настроек
long_query_time указывает минимальное время выполнения запроса, после которого он считается медленным в секундах,
После этого необходимо перезапустить MySQL:

/etc/init.d/mysql restart

После этого в файл /var/log/mysql/mysql-slow.log будут попадать медленные запросы, которые Вам прийдется оптимизировать.

Формирование документации при помощи плагина docdash-plugin

Плагин предназначен для автоматического формирования документации для javascript — файлов.

Документирование происходит при помощи синтаксиса JSDoc

Установка плагина

Устанавливаем jsdoc, если он еще не установлен. Для проверки наличия jsdoc можно выполнить следующую команду:

jsdoc -v

Для сборки проекта устанавливаем пакет vsce

npm install -g vsce

Далее собираем проект

git clone git://git.appcode.pw/docdash-plugin.git
npm install
vsce package

Инструкция по установке .vsix пакета тут

Внимание!!! Для корректной работа плагина требуется наличие утилиты jsdoc Читать далее «Формирование документации при помощи плагина docdash-plugin»

fail2ban для wordpress

Чтобы была возможность блокировки атак в wordpress через wp-login нужно:

  1. создать папку с плагинами wp_fail2ban
  2. внутри создать файл с тем же именем
  3. добавить туда код
    <?php
    /**
     * Plugin Name: Return 403 on Failed Login
     */
    function my_login_failed_403() {
        status_header( 403 );
    }
    add_action( 'wp_login_failed', 'my_login_failed_403' );
    
  4. активировать плагин

Оригинал статьи: https://wpmag.ru/2014/fail2ban-wordpress/