Снятие дампа MySql

mysqldump -uname -ppwd --databases database_name > dump.sql

Подробнее тут

Развертывание дампа
Перенаправляем поток в обратную сторону и развертываем базу данных:

mysql -uroot -h82.82.82.82 -p database < database.sql

Или через mysql-console:

mysql> use database;
mysql> source database.sql

тут

Работа в bash скриптами

Первой строкой всегда должна быть надпись

#!/bin/bash

Для вывода строки информации использовать команду echo «тут строка»
Для передачи аргументов применять $1. Например:

./script test

А внутри вызывать так

echo $1

Читать далее «Работа в bash скриптами»

Проксирование с помощью iptables

Ниже указан пример перенаправления с одного IP на другой

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to 192.168.74.129:80
iptables -t nat -A POSTROUTING -j MASQUERADE // нужен чтобы маскировать IP адрес

Обязательно нужно включить эту настройку

sysctl -w net.ipv4.ip_forward=1

Чтобы изменения в файле sysctl.conf вступили в силу, выполните следующую команду:

sysctl -p /etc/sysctl.conf

СОХРАНИТЬ ПРАВИЛА IPTABLES
Все настройки iptables, которые вы указали с помощью этих команд сохранятся только до перезагрузки. После перезагрузки компьютера все изменения будут стерты. Поэтому чтобы сохранить правила iptables, нужно выполнить специальную команду. Только в разных дистрибутивах она отличается. В Ubuntu выполните:

 sudo /sbin/iptables-save

А в Red Hat или CentOS:

 sudo /sbin/service iptables save

Использование модуля для обработки ошибок

Приложение можно скачать здесь.

Для передачи данных об ошибке в клиентском приложение добавить следующий скрипт (лучше в теге head)

var __error = window.onerror;
var __es = [];
// дополнительные параметры
var __meta = {
    user: 'test',
    ver: '1.0.0' // указание версии обязательно
};
var __ts = null;
window.onerror = function (msg, url, num, p, err) {
    var str = '';
    if (err && (str = err.stack)) {
        __es.push(str.replace(new RegExp(location.href, 'gi'), ''));
        if (__ts == null) {
            __ts = setTimeout(function () {
                clearTimeout(__ts);
                __ts = null;
                __se();
            }, 500);
        }
    }

    if (__error)
        return __error(msg, url, num, p, err);

    return false;
}
/**
 * отправка сообщений об ошибке
 */
function __se() {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", 'http://localhost:3000/api/error?id=1', true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(JSON.stringify({
        m: __meta,
        e: __es
    }));
}

Заменив в нем адрес отправки http://localhost:3000/api/error?id=1 не требуемый. При этом идентификатор приложения (id) можно указать любой.
Так же с клиента можно дополнительно передавать требуемые поля для анализа в объекте __meta.

Серверное приложение имеет три активные ссылки:

  • /api/error — принимает постовые запросы с ошибками
  • /list?id=1&ver=0.0.0 — выводит список ошибок по приложению (id) и версии (ver)
  •  /upload — позволяет загружать на сервер приложения для обработки

Для корректной работы требуется:

  • чтобы в папке public были созданы папки: apps, logs, temp
  • дать права этим папкам на запись

Распознавание текста с изображения

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

Данное приложение можно установить, как на Linux, так и на Windows. Далее будет показан пример работы с данным приложение под Windows.

Скачиваем установочный файл http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.00dev.exe

Запускаем его. Когда будет предложено выбрать устанавливаемые компоненты оставляем по умолчанию. Ну вот и все теперь можно пользоваться данным приложением. Работать с ним нужно через консоль, запускаем её.

cd /d «C:\Program Files (x86)\Tesseract-OCR»

tesseract.exe «c:\… путь к изображению.png» «e:\text» -l eng -psm 3

где «e:\text» — путь к файлу, где будет «распарсенный» текст,

-l eng — язык распознования (можно указать и rus, но для этого надо загрузить данные)

-psm 3 — параметр по умолчанию

Всю справочную информацию можно получить выполнив команду tesseract.exe —help

Чтобы дополнительно подключить другие языки распознаванию нужно с https://github.com/tesseract-ocr/langdata скачать требуемый файл *.traineddata и перенести его в папку C:\Program Files (x86)\Tesseract-OCR\tessdata

Есть изображение с указанным текстом tesseract «путь к изображению.png» «e:\text» -l eng -psm 3 и в папке e:\ будет файл text.txt в котором будет текст Hello my friend

Запуск node js приложения на iis

Установка Node Js
1.Устанавливаем nodejs https://nodejs.org/en/ (ставить последнюю LTS версию)
2.https://github.com/tjanczuk/iisnode — от сюда устанавливаем расширение для iis (см. Installing for IIS 7.x/8.x)

Настройка IIS

1. https://www.iis.net/downloads/microsoft/url-rewrite устанавливаем расширение для iis

2. Перезагрузить сервер

Статьи:

https://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx

https://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html

Создание клиента socket.io на c# для nodejs

1. Создаем консольное приложение
2. Install-Package SocketIoClientDotNet

using System;
using Quobject.SocketIoClientDotNet.Client;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var socket = IO.Socket("http://localhost:5000/server.js");
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("message", "0");
 
            });
 
            socket.On("hi", (data) =>
            {
                Console.WriteLine(data);
                socket.Disconnect();
            });
            Console.ReadLine();
        }
    }
}

Статьи:

https://github.com/Quobject/SocketIoClientDotNet

Отладка в nodejs

Актуально для версии Node JS 8.9.0

Устанавливаем:
npm install —global node-inspect

Выполняем команду: node —inspect-brk [filename].js

Должен открыться chrome для начала отладки

Полезные статьи.

https://nodejs.org/en/docs/inspector

https://nodejs.org/api/debugger.html

https://github.com/nodejs/node-inspect