Чистим мусор в мускуле кроном в скрипте

Создаем скрипт /root/clearcontent.sh:
#!/bin/sh

/usr/local/mysql/bin/mysql -u root -pyourpass smeta_ru -sN -e "UPDATE smeta_ru.news SET clear_content = REPLACE(clear_content, ' ',' ');"
/usr/local/mysql/bin/mysql -u root -pyourpass smeta_ru -sN -e "UPDATE smeta_ru.page SET clear_content = REPLACE(clear_content, ' ',' ');"


Делаем его исполняемым:

chmod 750 /root/clearcontent.sh


В кроне запускаем каждые 20 минут:
*/20  * * * *   root    /root/clearcontent.sh

Обновляем данные в MySQL

//на определенную дату
UPDATE tariff SET DATE_CLOSE = '2013-09-09 11:11:11' WHERE DATE_CLOSE IS NULL OR DATE_CLOSE = '0000-00-00 00:00:00';


//реплейсем все совпадения
UPDATE news SET clear_content = REPLACE(clear_content, '& nbsp ;',' ');


//обновляем на текущую дату в C#
string datenow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string notnullsql = "UPDATE tariff SET DATE_CLOSE = '" + datenow + "' WHERE DATE_CLOSE IS NULL OR DATE_CLOSE = '0000-00-00 00:00:00'";
MySqlCommand notnullcmd = new MySqlCommand(notnullsql, Connection());
notnullcmd.ExecuteScalar();

Создаем и публикуем WCF-сервис на C# в IIS

Дело было вечером, делать было нечего… ))
Но да ладно — перейдем к чистой практике))

1. Создаем новый проект в visual studio:
Visual C# -> WCF -> Приложение службы WCF (наше название - WcfService2)


2. Здесь мы меняем с дефолта только тип входящего и выходного параметра с int на string:
а) в файле IService1.cs в GetData меняем тип на string:
string GetData(string value)

б) в файле Service1.svc.cs в GetData меняем тип на string:
public string GetData(string value)


3. Проверяем:
в обозревателе решений переходим на Service1.svc.cs и жмем на F5 — запускается тестовый WCF-клиент; выбираем метож GetData и в значении вбиваем любую строку — потом «Вызвать». В результате видим: «You entered: Maxa»

4. Публикуем:
В обозревателе решений правой кнопкой мыши на головном файле сервиса (в нашем случае WcfService2) выбираем Опубликовать. Именование профиля — обязательно свое (не дефолтное). Способ публкиации — Файловая система. Выбираем путь и жмем на «Опубликовать». Далее переходим в проводнике на эту папку и снимаем галочку «только для чтения»

Читать дальше →

Проверка и запуск менеджера Mysql Cluster

Файл C:\mysql\cluster\bin\checkmgmd.vbs

Set oShell = WScript.CreateObject("WScript.Shell")
strComputer = "."
strProcess = "ndb_mgmd.exe"
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = '" & strProcess & "'")
If colProcesses.Count = 0 Then
	oShell.Run "C:\mysql\cluster\bin\manager.vbs",0,False
End If

Добавляем запуск вышеуказанного скрипта в планировщик заданий с интервалом в пять минут на каждый день

Атомы и несколько частей одной функции в Erlang

… А также вызов одной функции из другой и заменой конкатенации аргумента в строку встроенным средством форматирования (~s)

%заголовок модуля должен совпадать с именем файла; без расширения
-module(er).

%объявляем функции перечислением
-export([init/0, hello/1]).

%однострочная функция без аргумента
hello(atom)->
io:format("Hello, Max\n" ,[]);

%многострочная функция с конкатенацией и аргументом
hello(Name)->
	io:format("Hello, ~s" ,[Name]),
	io:format("\n").

%вызов функции из другой функции
init()->
	hello(atom).


Вызывать выражение с атомом нужно точно:

er:hello(atom).


Другое выражение этой же функции с аргументом вызывается как и раньше:

er:hello("Nadya").


Таким образом, использование атома дало нам право не объявлять две разные функции, а использовать одну с двумя выражениями.

Первая прога на Erlang

Модуль er.erl


%заголовок модуля должен совпадать с именем файла; без расширения
-module(er).

%объявляем функции перечислением
-export([hello/0, hello/1]).

%однострочная функция без аргумента
hello()->
	io:format("Hello, Max\n" ,[]).

%многострочная функция с конкатенацией и аргументом
hello(Name)->
	io:format(string:concat("Hello, ",Name) ,[]),
	io:format("\n").


Запуск:

er:hello().

или:

er:hello("Nadya").

Сетевая папка в windows c другой учеткой

Под правами админа запускаем cmd и пишем волшебной палочкой:
net use o: \\192.168.100.20\backup_web /PERSISTENT:NO /User:SERVER-UCHETOLD\YOURNAME yourpassword

В проводнике вбиваем
O:\
и пользуемся.

P.S. Если вдруг вылезает проблема с «множественным подключением», рубим сессию:
net session \\192.168.100.20 /del

получение данных в VBS через ODBC


set args = WScript.Arguments
num = args.Count

limitvar = "3000"

if num > 0 then
limitvar = args.Item(0)
end if

sqlvar = "SELECT username, user_email FROM phpbb_users  where user_email LIKE '%@smeta.ru' LIMIT "

set appAccess = createObject("AdoDB.Connection")
set objRecordset = createObject("AdoDB.Recordset")
appAccess.open "DSN=forum"
objRecordset.open sqlvar & limitvar,appAccess,3,3

do until objRecordset.EOF
WScript.Echo objRecordset(0).value & VbTab & VbTab & VbTab & objRecordset(1).value
objRecordset.Movenext
loop
objRecordset.close
appAccess.Close


P.S. запуск этого скрипта в консоли (cmd) с аргументом количества нужных записей (например 7):

cscript odbc.vbs 7