Последние обновления Страница 2 Показать/спрятать ветки комментариев | Горячие клавиши

  • exebit 4:17 pm on 12.05.2016 Постоянная ссылка | Ответить
    Метки: , mailchimp, mandrill, non-english, POST, UTF8   

    Mandrill search for non-english phrase 

    Try POST request with search query to:
    https://mandrillapp.com/api/1.0/messages/search.json
    {
    "key": "secret_api_key",
    "query": "subject:\"МАМОНТёнок\"",
    "date_from": "2016-05-12",
    "date_to": "2016-05-13",
    "api_keys": [
    "secret_api_key"
    ],
    "limit": 100
    }

    And you will got a wrong response. You need to encode text to UTF, for example you can use http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_unescape and replace line
    document.write(escape("Need tips? Visit W3Schools!"));

    with

    document.write(unescape(encodeURIComponent("МАМОНТёнок")));

    And you will got an appropriate search query value: «ÐœÐÐœÐžÐÐ¢Ñ‘нок», use it in request:

    {
    "key": "secret_api_key",
    "query": "subject:\"МАМОНТёнок\"",
    "date_from": "2016-05-12",
    "date_to": "2016-05-13",
    "api_keys": [
    "secret_api_key"
    ],
    "limit": 100
    }

    Thanks

     
  • exebit 11:31 am on 25.03.2016 Постоянная ссылка | Ответить
    Метки: AWK, , , , , ,   

    Elasticsearch 2.0 update by query 

    Unfortunately ES 2.0  doesn’t have _update_by_query function support even via plugins. So lest’s bash it!

    Get data

    First of all fetch all data (I expect not more 9999) need to be deleted: host is «UA-web1», message contains «Response from bank» and not contans «censored». I’ll put all data in pretty (field by line) mode to the file raw_list.
    curl -XGET http://localhost:9200/logstash-2016.03*/_search?pretty=true -d {'
    "query": {
    "bool": {
    "must": [
    { "match": { "host": "UA-web1"}},
    { "match": { "message": "Response"}},
    { "match": { "message": "from"}},
    { "match": { "message": "bank"}}
    ],
    "must_not": {
    "match": { "message": "censored" }
    }}},
    "fields": "message",
    "size": 9999
    '} > raw_list

    Format list to update

    Then parse raw_list to format «id index»:
    AVON8Q5Hv9AoJbRnorhQ logstash-2016.03.19
    AVON-P9Av9AoJbRnot7r logstash-2016.03.19
    AVOOIA5hv9AoJbRno6Nu logstash-2016.03.19
    AVOOFnFVv9AoJbRno2wT logstash-2016.03.19
    AVOOKeW1v9AoJbRno9SO logstash-2016.03.19

    Here is my AWK script:
    cat raw_list |awk -F'"' '/_id/{id=$4} /_index/{ind=$4} /_score/{print id,ind}' > list_to_delete

    Update records

    Now file list_to_delete contains lines with IDs of records to update.

    CURL query will update a record with _id=$ID and _index=$INDEX:

    curl -XPOST http://localhost:9200/$INDEX/esyslog/$ID/_update?pretty -d '{
    doc: {"message": "This message was fixed" }
    }'

    So read list_to_delete in cycle and update records:

    cat list_to_delete|while read line; do arr=($line);curl -XPOST http://localhost:9200/${arr[1]}/esyslog/${arr[0]}/_update?pretty -d '{
    doc: {"message": "This message was fixed" }
    }'; done

    That’s all!

     
  • exebit 3:29 pm on 23.03.2016 Постоянная ссылка | Ответить
    Метки: , , ,   

    Elasticsearch direct update 

    Try to set field «message» to «_deleted_by_XPOST» where _id=AVOdxbLJv9AoJbRn2TDI and type=esyslog (required field):

    url -XPOST http://localhost:9200/logstash-2016.03.22/esyslog/AVOdxbLJv9AoJbRn2TDI/_update?pretty -d {'
    "doc": { "message": "_deleted_by_XPOST" }
    '}
    

    And successful result is

    {
      "_index" : "logstash-2016.03.22",
      "_type" : "esyslog",
      "_id" : "AVOdxbLJv9AoJbRn2TDI",
      "_version" : 2,
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      }
     
  • exebit 2:50 pm on 23.03.2016 Постоянная ссылка | Ответить
    Метки: , curl, , , , , search, wget   

    Elasticsearch direct queries 

    Try to search entries from Logstash host UA-web1 with message including «Data» and not including «censored». Filter to fetch «path» field only:

    curl -XGET  http://localhost:9200/logstash-2016.03.22/_search?pretty=true -d {'
    "query": {
      "bool": {
        "should": [
          { "match": { "host": "UA-web1"}},
          { "match": { "message": "Data"}}
          ],
        "must_not": { 
          "match": { "message": "censored" }
        }
        }
      },
    "fields": "path"
    '}
    
     
  • exebit 8:43 am on 24.11.2015 Постоянная ссылка | Ответить
    Метки: , FTP, ICS, scan,   

    Windows forwarding false positive ftp detection 

    Problem

    Windows server provides network access via Internet Connection Sharing (ICS) uses FTP inspection by default. Host using this connection generates false positive FTP detection.

    Solution

    FTP inspection can be disabled in registry:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ALG\ISV]

    Find an entry and change its value from «Enable» to «Disable».

    Сhanges will take effect immediately.

     
  • exebit 4:02 pm on 20.11.2015 Постоянная ссылка | Ответить  

    Centos 7 dracut boot recovery 

    Due to migration or clonning Centos server can fail boot with error:

    dracut-initqueue[249]: Warning: Could not boot
    dracut-initqueue[249]: Warning: /dev/mapper/root does not exist
    Entering emergency mode. Exit the shell to continue.

    Problem

    Boot manager can’t find old disk UUID.

    Solution

    Update boot configuration.

    Instructions

    1. Boot centos recovery. Choose appropriate item in boot menu.

    2. List your partitions. In case of LVM run

    ls /dev/mapper

    You shoud see something like:

    /dev/mapper/centos-root /dev/mapper/centos-swap

    3. Mount original Linux image:

    mkdir /mnt/root

    mount /dev/mapper/centos-root /mnt/root

    #bind system paths

    mount -o bind /dev /mnt/root/dev

    mount -o bind /sys /mnt/root/sys

    mount -o bind /proc /mnt/root/proc

    mount /dev/sda1 /mnt/root/boot

    4. Chroot and fix boot:

    chroot /mnt/root

    cd /boot
    dracut -f
    grub2-mkconfig -o /boot/grub2/grub.cfg

    5. And reboot:

    exit
    reboot

     
  • exebit 11:12 am on 03.12.2014 Постоянная ссылка | Ответить
    Метки: sed regexp unix llinux parse   

    SED — неинтерактивный текстовый редактор, предназначенный для пакетного редактирования файлов. Полезен для:

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

    SED копирует строку из input (стандартный или указываемый набор файлов) в PATTERN SPACE (некоторая область), и к этой строке применяет все команды, адреса которых попадают в PATTERN SPACE . Затем PATTERN SPACE копируется в output . (Фактически в PATTERN SPACE находится одна строка, за исключением команды N , см. Функции SED )

    Синтаксис SED

    Формат:

    SED [-n] [-e script] [-f sfile] [files]

    script — набор команд редактирования SED , который может содержать до 200 команд или до 10000 байт.

    sfile — файл со скриптом SED .

    files — файлы, предназначенные для SED-редактирования.

    -n — указывает, что в output выводятся не все строки, но только те, к которым применялась команда p. (См. 4.Функции SED . и 5.Функция контекстной замены.)

    Флаг -e может быть опущен, если он присутствует один.

    script — команда SED :

    [address[,address]] function [arguments]

    address — адрес

    function — функция

    arguments — аргументы

    Основные операции sed

    [lines]/p print
    Печать [указанного диапазона строк]

    [lines]/d delete
    Удалить [указанный диапазон строк]

    s/pattern1/pattern2/ substitute
    Заменить первое встреченное соответствие шаблону pattern1, в строке, на pattern2

    [lines]/s/pattern1/pattern2/ substitute
    Заменить первое встреченное соответствие шаблону pattern1, на pattern2, в указанном диапазоне строк

    [lines]/y/pattern1/pattern2/ transform
    заменить любые символы из шаблона pattern1 на соответствующие символы из pattern2, в указанном диапазоне строк (эквивалент команды tr)

    g

    Global  — операция выполняется над всеми найдеными соответствиями внутри каждой из заданных строк

    lines— диапазон строк, для осуществления отбора строк для редактирования, в адресах команд SED допускается использование регулярных выражений, заключенных в «/ /» и определяемых следующим образом:

    • Регулярное выражение указывается в разделителях: «/ /» ;
      любой символ (кроме специальных: \[.^*$ ) является регулярным выражением себя;
    • ^ в начале регулярного выражения указывает на пустой символ в начале регулярного выражения. (Т.е. на начало строки)
    • $ в конце регулярного выражения указывает на пустой символ в конце регулярного выражения. (Т.е. на конец строки);
    • \n — вставленный newline (новая строка);
    • . — любой символ (кроме обыкновенного newline );
    • — стоящая за регулярным выражением означает любую последовательность вхождений этого выражения, начиная с 0;
    • [ ] — указывает на один из символов, приведенных внутри;
    • [^ ] — указывает на один из символов, кроме приведенных внутри;
    • \ — перед любым символом, кроме цифр и «(» , «)» , означает этот символ. ( Экранирование специальных символов).
    • \(x\) -, где x — регулярное выражение, указывает на x .
    • \d -, где d — цифра, указывает копию d -того выражения, которое заключалось в скобки «\(» и «\)» ;

    конкатенация регулярных выражений является регулярным выражением.

    Функции SED


    (В скобках указывается максимальное число адресов)

    (1) a \text — Добавить «text» после указанной строки (вывести), потом считать следующую.

    (2) b label — Перейти на метку, устанавливаемую, с помощью функции «:» , если label пуст, то перейти в конец скрипта.

    (2) c \text — Удалить pattern space и вывести «text» на output .

    (2) d — Удалить pattern space .

    (2) D — Удалить pattern space до вставленной newline .

    (2) g — Заместить содержимое pattern space содержимым буфера hold space .

    (2) G — Добавить к содержимому pattern space содержимое буфера hold space .

    (2) h — Заместить содержимое буфера hold space на содержимое pattern space .

    (2) H — Добавить к содержимому буфера hold space содержимое pattern space .

    (1) i \text — Вывести текст на output перед указанной строкой.

    (2) n — Вывести pattern space на output и считать следующую строку.

    (2) N — Добавить следующую строку к pattern space , разделяя строки вставленным newline .

    (2) p — Скопировать pattern space на output .

    (2) P — Скопировать pattern space до первой вставленной newline на output .

    (1) q — Переход на конец input . Вывести указанную строку, (если нет флага -n ) и завершить работу SED .

    (2) r rfile — Читать содержимое rfile и вывести его на output прежде чтения следующей строки.

    (2) s — Функция контекстной замены.

    (2) t label — Перейти на метку, устанавливаемую с помощью функции «:» , если для этой строки была осуществлена замена с помощью функции «s» . Флаг осуществления замены восстанавливается при чтении следующей строки или при выполнении функции «s» .

    (2) w wfile — Добавить pattern space к концу файла wfile . (Максимально можно использовать до 10 открытых файлов.)

    (2) x — Поменять местами содержимое pattern space и буфера hold space .

    (2) y /str1/str2/ — Заменить все вхождения символов из str1 на соответствующие из str2 . Длины строк должны быть равными.

    (2) ! func — Применять функцию func (или группу функций в {} ) к стокам НЕ попадающим в указанные адреса.

    (0) : label — Устанавливает метку для перехода по «b» и «t» командам.

    (1) = — Выводит номер строки на output как строку.

    (2) { — Выполняет функции до «}» , только когда выбрано pattern space . Группировка функций.

    (0) — Пустая команда игнорируется.

    1. — Комментарий.

    ( «#n» в скрипте равносильно установке флага -n )

    Функция контекстной замены
    Формат:

    (2)s/ / /

    Функция s заменяет вхождение в pattern space на .

    : Аналогично выше данному, но может быть заключено не в «/ /» а в любые другие символы (не » » (пробел) и не newline ).

    : Любой набор символов. Используются специальные символы:

    «& » — Заменяется на строку, указанную в регулярном выражении.

    «\d» — , где d — цифра, указывает на d -тое выражение, заключенное в «\(«,»\)» в регулярном выражении.

    :

    g — Глобальная замена: заменить все вхождения в строке.

    p — Печатать (выводить на output ) строки, в которых была осуществлена замена.

    w wfile — Выводить в файл wfile строки, в которых была осуществлена замена.

    SED tips

    Пространство между строками:

    • Двойное пространство между строками:
      1. sed G
    • Двойное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом):
      1. sed ‘/^$/d;G’
    • Тройное пространство между строками:
      1. sed ‘G;G’
    • Удалить каждую вторую строку:
      1. sed ‘n;d’
    • Вставить пустую строку перед каждой строкой соответствующей регулярному выражению «regex»:
      1. sed ‘/regex/{x;p;x;}’
    • Вставить пустую строку после каждой строки соответствующей регулярному выражению «regex»:
      1. sed ‘/regex/G’
    • Вставить пустую строку перед и после каждой строки соответствующей регулярному выражению «regex»:
      1. sed ‘/regex/{x;p;x;G;}’

    Нумерация:

    • Нумерация каждой стоки в файле filename. Используя отступ (tab) (смотрите примечание по ‘\t’ в конце документа) вместо пустой строки:
      1. sed = filename | sed ‘N;s/\n/\t/’
    • Нумерация каждой строки в файле filename (номер слева, выравненый по правому краю):
      1. sed = filename | sed ‘N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /’
    • Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк:
      1. sed ‘/./=’ filename | sed ‘/./N; s/\n/ /’
    • Подсчет строк (эмуляция «wc -l»):
      1. sed -n ‘$=’

    Преобразование и замена текста:

    • В UNIX окружении: преобразование окончания строк из формата DOS (CR/LF) в формат Unix (LF):
      1. sed ‘s/.$//’ (подразумевается что все строки заканчиваются с CR/LF)
      2. sed ‘s/^M$//’ (в bash/tcsh, нажмите Ctrl-V затем Ctrl-M)
      3. sed ‘s/\x0D$//’ (работает в ssed, gsed 3.02.80 или выше)
    • В UNIX окружении: преобразование разрыва строк Unix (LF) в формат DOS:
    1. sed «s/$/`echo -e \\\r`/» (команда в ksh)
    2. sed ‘s/$'»/`echo \\\r`/» (команда под bash)
    3. sed «s/$/`echo \\\r`/» (команда под zsh)
    4. sed ‘s/$/\r/’ (команда под gsed 3.02.80 или выше)
    • В DOS окружении: преобразование разрыва строк Unix (LF) в формат DOS:
    1. Версия 1: sed «s/$//»
    2. Версия 2: sed -n p
    • В DOS окружении: преобразование разрыва строк DOS (CR/LF) в формат Unix. Can only be done with UnxUtils sed, version 4.0.7 or higher. The UnxUtils version can be identified by the custom «—text» switch which appears when you use the «—help» switch. Otherwise, changing DOS newlines to Unix newlines cannot be done with sed in a DOS environment. Use «tr» instead.:
    1. sed «s/\r//» infile >outfile (UnxUtils sed v4.0.7 или выше)
    2. tr -d \r outfile (GNU tr версии 1.22 или выше)
    • Удалить все пробелы и символы табуляции в начале каждой строки файла (смотрите примечание по табуляции в конце документа):
      1. sed ‘s/^[ \t]*//’
    • Удалить все пробелы и символы табуляции в конце каждой строки файла (смотрите примечание по табуляции в конце документа):
      1. sed ‘s/[ \t]*$//’
    • Удалить все пробелы и символы табуляции в начале и конце каждой строки файла (смотрите примечание по табуляции в конце документа):
      1. sed ‘s/^[ \t]*//;s/[ \t]*$//’
    • Вставить 5 пробелов в начале каждой строки (создать смещение страницы):
      1. sed ‘s/^/ /’
    • Расположить весь текст по правому краю столбца шириной в 79 символов:
      1. sed -e :a -e ‘s/^.\{1,78\}$/ &/;ta’ (устанавливает как 78 плюс 1 пробельный символ)
    • Центрировать весь текст посередине столбца шириной 79 символов. В версии 1, пробелы добовляются в начало и конец строки. В версии 2, пробелы добовляются только в начало строки:
      1. Версия 1: sed -e :a -e ‘s/^.\{1,77\}$/ & /;ta’
      2. Версия 2: sed -e :a -e ‘s/^.\{1,77\}$/ &/;ta’ -e ‘s/\( *\)\1/\1/’
    • Поиск и замеа «foo» на «bar» в каждой строке:
      1. sed ‘s/foo/bar/’ (замена только первого совпадения в строке)
      2. sed ‘s/foo/bar/4’ (замена первых 4рех совпадений в строке)
      3. sed ‘s/foo/bar/g’ (замена ВСЕХ совпадений в строке)
      4. sed ‘s/\(.*\)foo\(.*foo\)/\1bar\2/’ (замена предпоследнего совпадения)
      5. sed ‘s/\(.*\)foo/\1bar/’ (замена только последнего совпадения)* Замена «foo» на «bar» ТОЛЬКО для строк содержащих «baz»:
    1. sed ‘/baz/s/foo/bar/g’
    • Замена «foo» на «bar» ИСКЛЮЧАЯ строки содержащие «baz»:
      1. sed ‘/baz/!s/foo/bar/g’
    • Замена «scarlet» или «ruby», или «puce» на «red»:
      1. sed ‘s/scarlet/red/g;s/ruby/red/g;s/puce/red/g’ (большинство sed-ов)
      2. gsed ‘s/scarlet\|ruby\|puce/red/g’ (только GNU sed)
    • Перевернуть последовательность строк (эмуляция «tac») (ошибка/особеннось в HHsed v1.5 причина удалению пустой строки):
      1. Версия 1: sed ‘1!G;h;$!d’
      2. Версия 2: sed -n ‘1!G;h;$p’
    • Перевернуть каждую строку в файле задом наперед (эмуляция «rev»):
      1. sed ‘/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//’
    • Соеденить каждую пару строк бок о бок (подобно «paste»):
      1. sed ‘$!N;s/\n/ /’
    • Если линия заканчивается обратной косой чертой «\», то присоеденить следующую линию:
      1. sed -e :a -e ‘/\\$/N; s/\\\n//; ta’
    • Если линия начинается с знака «=», то присоеденить ее к предыдущей линии и заменить «=» пробелом:
      1. sed -e :a -e ‘$!N;s/\n=/ /;ta’ -e ‘P;D’
    • Добавить запятые к строке из чисел, изменяя «1234567» на «1,234,567»:
      1. gsed ‘:a;s/\B[0-9]\{3\}\>/,&/;ta’ (GNU sed)
      2. sed -e :a -e ‘s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta’ (другие sed-ы)
    • Добавить запятые к числу с десятичной частью и знаком минуса (GNU sed):
      1. gsed -r ‘:a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta’
    • Добавить пустую строку через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.):
      1. gsed ‘0~5G’ (только GNU sed)
      2. sed ‘n;n;n;n;G;’ (другие sed-ы)Выборочная печать некоторых строк:
    • Печатать первые 10 линий файла (эмуляция «head»):
      1. sed 10q
    • Печатать первую строку файла (эмуляция «head -1»):
      1. sed q
    • Печатать последние 10 строк файла (эмуляция «tail»):
      1. sed -e :a -e ‘$q;N;11,$D;ba’
    • Печатать последние 2 строки файла (эмуляция «tail -2»):
      1. sed ‘$!N;$!D’
    • Печатать последнюю строку файла (эмуляция «tail -1»):
      1. Версия 1: sed ‘$!d’
      2. Версия 2: sed -n ‘$p’
    • Печатать предпоследнюю строку в файле:
      1. sed -e ‘$!{h;d;}’ -e x (для однострочного файла печатать пустую строку)
      2. sed -e ‘1{$q;}’ -e ‘$!{h;d;}’ -e x (для однострочного файла печатать эту строку)
      3. sed -e ‘1{$d;}’ -e ‘$!{h;d;}’ -e x (для однострочного файла ничего не печатать)
    • Печатать только те строки, которые совпадают с регулярным выражением (эмуляция «grep»):
      1. Версия 1: sed -n ‘/regexp/p’
      2. Версия 2: sed ‘/regexp/!d’
    • Печатать только те строки, которые НЕ совпадают с регулярным выражением (эмуляция «grep -v»):
      1. sed -n ‘/regexp/!p’ — Версия 1, corresponds to above
      2. sed ‘/regexp/d’ — Версия 2, simpler syntax
    • Печатать строку непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение:
      1. sed -n ‘/regexp/{g;1!p;};h’
    • Печатать строку непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение:
      1. sed -n ‘/regexp/{n;p;}’
    • Печатать по одной строке перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция «grep -A1 -B1»):
      1. sed -n -e ‘/regexp/{=;x;1!p;g;$!N;p;D;}’ -e h
    • Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности):
      1. sed ‘/AAA/!d; /BBB/!d; /CCC/!d’
    • Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности):
      1. sed ‘/AAA.*BBB.*CCC/!d’
    • Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC (эмуляция «egrep»):
      1. sed -e ‘/AAA/b’ -e ‘/BBB/b’ -e ‘/CCC/b’ -e d (большинство sed’ов)
      2. gsed ‘/AAA\|BBB\|CCC/!d’ (только GNU sed)
    • Печатать абзац если он содержит AAA (пустая строка разделяет абзацы) (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):
      1. sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/!d;’
    • Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):
      1. sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/!d;/BBB/!d;/CCC/!d’
    • Печатать абзац если он содержит AAA или BBB, или CCC (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):
      1. sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/b’ -e ‘/BBB/b’ -e ‘/CCC/b’ -e d
      2. gsed ‘/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d’ (только GNU sed)
    • Печатать строки длиной равной или большей 65 символов:
      1. sed -n ‘/^.\{65\}/p’
    • Печатать строки длиной меньше или равной 65 символов:
      1. sed -n ‘/^.\{65\}/!p’ — Версия 1, отвечает условию
      2. sed ‘/^.\{65\}/d’ — Версия 2, более простой синтаксис
    • Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла:
      1. sed -n ‘/regexp/,$p’
    • Печатать часть файла основываясь на номерах строк (строки 8-12, включительно):
      1. Версия 1: sed -n ‘8,12p’
      2. Версия 2: sed ‘8,12!d’
    • Печатать строку под номером 52:
      1. sed -n ’52p’ — Версия 1
      2. sed ’52!d’ — Версия 2
      3. sed ’52q;d’ — Версия 3, эффективен на больших файлах
    • Начиная с 3ей строки печатать каждую седьмую строку в файле:
      1. gsed -n ‘3~7p’ (только GNU sed)
      2. sed -n ‘3,${p;n;n;n;n;n;n;}’ (другие sed-ы)
    • Печатать часть файла между двумя регулярными выражениями (включительно):
      1. sed -n ‘/Iowa/,/Montana/p’ (регистро зависимый)

    Избирательное удаление определенных строк:

    • Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями:
      1. sed ‘/Iowa/,/Montana/d’
    • Удалить дубликаты последовательных строк в файле (эмуляция «uniq»). Первая строка в наборе дубликатах строк удерживается от удаления:
      1. sed ‘$!N; /^\(.*\)\n\1$/!P; D’
    • Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed: (Beware not to overflow the buffer size of the hold space)
      1. sed -n ‘G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P’
    • Печатать только дубликаты строк (эмуляция «uniq -d»).:
      1. sed ‘$!N; s/^\(.*\)\n\1$/\1/; t; D’
    • Удалить первые 10 строк в файле:
      1. sed ‘1,10d’
    • Удалить последнюю строку в файле:
      1. sed ‘$d’
    • Удалить 2 последние строки файла:
      1. sed ‘N;$!P;$!D;$d’
    • Удалить последние 10 строк файла:
      1. Версия 1: sed -e :a -e ‘$d;N;2,10ba’ -e ‘P;D’
      2. Версия 2: sed -n -e :a -e ‘1,10!{P;N;D;};N;ba’
    • Удалить каждую восьмую строку в файле:
      1. gsed ‘0~8d’ (только GNU sed)
      2. sed ‘n;n;n;n;n;n;n;d;’ (другие sed-ы)
    • Удалить строки совпадающие с регулярным выражением:
      1. sed ‘/pattern/d’
    • Удалить ВСЕ пустрые строки из файла (эмуляция «grep ‘.’ «):
      1. Версия 1: sed ‘/^$/d’
      2. Версия 2: sed ‘/./!d’
    • Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция «cat -s»):
      1. sed ‘/./,/^$/!d’ (Версия 1, допускается 0 пустых строк в начале и 1 в конце файла)
      2. sed ‘/^$/N;/\n$/D’ (Версия 2, допускается 1 пустая строка в начале и 0 в конце файла)
    • Оставить последовательность пустых строк не более двух одновременно:
      1. sed ‘/^$/N;/\n$/N;//D’
    • Удалить все пустые строки в начале файла:
      1. sed ‘/./,$!d’
    • Удалить все пустые строки в конце файла:
      1. sed -e :a -e ‘/^\n*$/{$d;N;ba’ -e ‘}’ (для всех sed-ов)
      2. sed -e :a -e ‘/^\n*$/N;/\n$/ba’ (для всех, кроме gsed 3.02.*)
    • Удалить последнюю непустую строку в каждом абзаце:
      1. sed -n ‘/^$/{p;h;};/./{x;/./p;}’

    Специальные приложения:

    • Удалить конкретный символ (к примеру: символ возврата) из man страницы. Для использования команды ‘echo’ может потребоваться указать параметр -e (если вы используете Unix System V или оболочку bash):
      1. sed «s/.`echo \\\b`//g» (двойные кавычки необходимы в Unix окружении)
      2. sed ‘s/.^H//g’ (в bash/tcsh, нажмите Ctrl-V и затем Ctrl-H)
      3. sed ‘s/.\x08//g’ (hex выражение для sed 1.5, GNU sed, ssed)
    • Получить заголовок Usenet/e-mail сообщения:
      1. sed ‘/^$/q’ (удаляет все после первой пустой строки)
    • Получить тело Usenet/e-mail сообщений:
      1. sed ‘1,/^$/d’ (удаляет все до первой пустой строки)
    • Получить заголовок Subject (тема Usenet/e-mail сообщения), без удаления части «Subject: «:
      1. sed ‘/^Subject: */!d; s///;q’
    • Получить заголовок обратный адрес:
      1. sed ‘/^Reply-To:/q; /^From:/h; /./d;g;q’
    • Анализировать правильный исходящий адрес. # Pulls out the e-mail address by itself from the 1-line return address header (see preceding script):
      1. sed ‘s/ *(.*)//; s/>.*//; s/.*[: /’
    • Удалить скобку и пробел в начале каждой строки (unquote a message):
      1. sed ‘s/^> //’
    • Удалить большинство HTML тегов (включая теги состоящие из несколько строк):
      1. sed -e :a -e ‘s/]*>//g;/

    Использованные источники:
    ОИВС
    gazette.linux.ru.net
    снова gazette.linux.ru.net
    source.nnov.ru

     
  • exebit 11:21 am on 22.09.2014 Постоянная ссылка | Ответить
    Метки: cluster, failover, mysql,   

    Mysql Replication Cluster 

    Master-Slave

    node1 — master

    Edit mysqld config

    [mysqld]
    server-id = 1
    log-bin = /var/lib/mysql/mysql-bin 
    replicate-do-db = somedb

    Grand replicate permissoin to user replication on database somedb:

    mysql@master>  GRANT replication slave ON "somedb".* TO "replication"@"192.168.1.102" IDENTIFIED BY "password";

    Then restart daemon

    service mysqld restart

    Set ReadOnly mode:

    mysql@master> SET GLOBAL read_only = ON;

    Make dump:

     /usr/bin/mysqldump --single-transaction --flush-logs --routines --events somedb > master.dump

    View binlog inforamation:

    mysql@master> SHOW MASTER STATUS\G
    File: mysql-bin.000003
    Position: 98
    Binlog_Do_DB:
    Binlog_Ignore_DB:

    Remove ReadOnly mode:

    mysql@master> SET GLOBAL read_only = OFF;

    node2 — slave

    Edit mysqld config:

    server-id = 2
    relay-log = /var/lib/mysql/mysql-relay-bin
    relay-log-index = /var/lib/mysql/mysql-relay-bin.index
    replicate-do-db = somedb

    Then restart daemon

    service mysqld restart

    Restore from master dump:

    mysql somedb < master.dump

    Configure slave replication:

    mysql@replica> CHANGE MASTER TO MASTER_HOST = "192.168.1.101 ", MASTER_USER = "replication ", MASTER_PASSWORD = "password", MASTER_LOG_FILE = "mysql-bin.000003", MASTER_LOG_POS = 98;

    Start replication:

    mysql@replica> start slave;

    View status

    mysql@replica> SHOW SLAVE STATUS\G
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.1.101
    Master_User: replication
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000003
    Read_Master_Log_Pos: 98
    Relay_Log_File: mysql-relay-bin.001152
    Relay_Log_Pos: 235
    Relay_Master_Log_File: mysql-bin.000003
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Replicate_Do_DB: testdb,testdb
    Replicate_Ignore_DB:
    Replicate_Do_Table:
    Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
    Last_Errno: 0
    Last_Error:
    Skip_Counter: 0
    Exec_Master_Log_Pos: 98
    Relay_Log_Space: 235
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
    Master_SSL_Allowed: No
    Master_SSL_CA_File:
    Master_SSL_CA_Path:
    Master_SSL_Cert:
    Master_SSL_Cipher:
    Master_SSL_Key:
    Seconds_Behind_Master: 5
     
  • exebit 12:28 pm on 28.04.2014 Постоянная ссылка | Ответить  

    Полезные команды vim 

    Сменить кодировку открытого файла:
    
    :e ++enc=cp1251
    
    Заменить подстроку foo на bar:
    :%s/foo/bar/g 
    
    ключ g показывает поиск по всем строкам, указав вместо него c - получим запрос на подтверждение
    
    Установить размер таубляции 
    :set ts=4
    
    
     
  • exebit 1:31 pm on 13.11.2013 Постоянная ссылка | Ответить
    Метки: , pci-dss, security   

    Информационная технология — Методы и средства обеспечения безопасности – Менеджмент риска информационной Безопасности ISO 27005 2011 

    Скачать можно здесь:

    ISO 27005-2011-ru-v1

     
c
cоздать новую запись
j
следующая запись/комментарий
k
предыдущая запись/комментарий
r
Ответить
e
Изменить
o
показать/скрыть комментарии
t
перейти наверх
l
Go to login
h
Показать/Скрыть помощь
shift + esc
Отмена