Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Masikati akanaka, Habr!

Basa

Sangano rangu rinoshandisa sevha yetsamba papuratifomu yeKerio Connect; maseva etsamba akaiswa mumaguta akasiyana kuti ashumire vashandisi vawo. Pakutanga pakanga pasina chimiro chakagoverwa, sezvo madomasi akasiyana padanho rechitatu, zvichiratidza guta renzvimbo. Zvese zvakashanda uye munhu wese aifara. Rimwe zuva rakanaka, manejimendi akagadzira basa, rakajairwa karenda rezviitiko pakati pemasaiti ese!

prehistory

Pakutanga, pfungwa yacho yaive yekusimudza Kerio Yakagoverwa Mail Domain uye yaizoita zvese pachayo. Munguva pfupi yapfuura, nzvimbo yakagoverwa yakagadzirwa, asi handizvo, sevha yakanga yakagadzirira kuwiriranisa makarenda, maforodha, mazita - pakati pemadomasi ari pane imwechete sevha, asi akanga asiri kuenda kunoyananisa dhata pakati akati wandei. servers.

Ini, chokwadi, ndakanga ndisingatarisiri kubata kwakadaro uye kwenguva yakareba handina kukwanisa kutenda kuti kushanda kwandaida kwakanga kusipo. Gare gare ndakazowana humbowo hwechokwadi ichi. Ndakashamiswa uye ndakaodzwa mwoyo nazvo.

Basa racho rakashanduka rikava dambudziko.

Ndezvipi zvingasarudzwa?

  • Gadzira vatengi vaviri pamaseva akasiyana anochinjana data inodiwa neimwe software yechitatu. Zvaive zvakakodzera kuti nditsvage iyi yechitatu-bato software yaizoshandisa kuita uku - ini handifarire rake rakadaro, asi zvaiita sekunge iyi ndiyo yega mhinduro yekukurumidza.
  • Nyora yako script yekubatanidza data pakati pemaseva. Chokwadi ndechekuti Kerio anochengeta chinhu chimwe nechimwe sefaira rakasiyana, saka zvaive zvakafanira kugadzira script yekushanda nemafaira, asi tichitarisa huwandu hwakakwana hwezvakabva, basa racho rakaita serakaoma, kunyanya sezvo zvaive zvakakodzera kuita akawanda. inotarisa kurongeka kwedata, kana mumwe munhu akagadzira basa munguva imwe chete yenguva, nezvimwe, nezvimwe.

Ndichitarisa kumberi, ndichataura kuti kunyangwe Kerio achichengeta chinhu sefaira rakasiyana, harina kupusa kubvunza kuti mafaera ari kuita sei pese paunowana chinhu.

Ndapedza nguva yakawanda ndichifunga, kudhirowa mapepa akawanda ane hurongwa "dzekutora nzvimbo yevavengi," na6 o'clock ndakaita sarudzo mbiri chaidzo:

  • Sarudzo yekutanga kuita zvinhu zvako wega kwete kutsvaga chero chinhu kubva kunze.
  • Mhinduro yechipiri ndeyekuenda kunorara.

Atova mangwanani ndakamuka nepfungwa imwe chete uye yechokwadi, iyo yakaderedzwa kuva mavara mashoma - DFS

chisarudzo

Mhinduro yacho pachayo yakaita seizvi

  • unza maseva ese anozotora chikamu mukuwiriranisa kune OS Windows. (Chimwe chayo chaive paLinux. Kutamiswa kwedata retsamba kuenda kune imwe OS kwaidiwa)
  • Sarudza chimiro chemadhairekitori anozotora chikamu mukuyananisa - anofanirwa kunge akafanana.
  • Tsanangura ese maseva etsamba pasi pedomendi imwe ine imwe nzvimbo yeDFS.
  • Gadzira iyo yataurwa pamusoro yakagoverwa Kerio domain, sezvo mune yangu nyaya kuwiriranisa data kunodiwa, kwete chete pakati pemaseva asiwo pakati pemadomasi; yechipiri inogona kubatwa neKerio server yakazvimirira. (kusiyana neyokutanga)
  • Seta madhairekitori akawiriraniswa kune DFS nzvimbo.
  • Huya nerumwe rudzi rwetsvimbo (mushure mezvose, haugone kurarama usina mudonzvo)

Kutevedzera

Muenzaniso pamaseva maviri eemail (pamwe mamwe)

1. Kerio Distributed domain

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Tenzi haatore chikamu mukuwiriranisa, asi ichi hachisi chinhu chekutanga.

Ini handisi kuzotsanangura nzira yekusimudza Kerio yakagoverwa domain, hapana chakaomarara pazviri, unogona kudzidza mukuru. manul

Pakupedzisira, iwe unofanirwa kuona unotevera mufananidzo mune yekutonga console:

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Tevere ndaifarira mafolda akagovaniswa; pane Master server unogona kutsanangura zvinotevera sarudzo:

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Zvakananga kune yega yega domain - sevha haizowiriranise maforodha eruzhinji pakati pemadomasi

Inowanikwa kune ese madomasi - ese maseva anosiya aripo eruzhinji maforodha mune yega yega dura uye kugadzira matsva maforodha eese madomasi pane yega mail server.

Cherechedza chinyorwa! Kunyangwe iyi sarudzo ichichinja iyo yekumisikidza mutemo pane ese maseva, inowiriranisa yakaparadzana kubva kune yega sevha (kureva, pasina imwe chete yakajairika nzvimbo)

Mutariri achange achiri kugona kugovera kupinda pakati pevashandisi.
mune yangu, ese ndeangu uye ini ndinoda kuenderana kwakazara (Munyaya yako, mhinduro inogona kunge yakasiyana) pane yega yega sevha iwe unofanirwa kugadzira akafanana seti emadomasi anoda kuwiriraniswa.

2. Kerio data zvinyorwa

Iye zvino iwe unofanirwa kugadzira akafanana akagovaniswa madhairekitori anoda kuwiriraniswa pane imwe neimwe yemaseva. Folders, Calendars, Contacts.

Zano - gadzira madhairekitori muChirungu, kana ukaagadzira muchiLatin, dhairekitori rinenge rine zita mune imwe isinganzwisisike encoding, izvi zvinenge zvisingaite.

Iye zvino iwe unofanirwa kutsvaga nzira dzemuviri dzemaforodha eemail pane yega server.

Inowanikwa kune ese madomasi ~DataMailmail#publicΠ‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³#msgs
Zvakananga kune yega yega domain ~DataMailmail**Domain**#publicΠ‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³#msgs

Ndokumbira utarise kuti isu hatizowiriranisa dhairekitori rese, asi chete mudziyo une data #msgs - izvo zvinhu pachazvo zvakachengetwa pano, mamwe ese data anofanirwa kuve akasiyana kune yega sevha.

3.DFS

Ini handisi kuzotsanangura zvakadzama maitiro ekugadzirisa DFS, pane ruzivo rwakakwana panyaya iyi.

DFS ibasa rekuita muWindows Server inopa kugona kusanganisa maforodha akagovaniswa ari pamaseva akasiyana
Batanidza kune MS DFS gwaro

Usati wamisa DFS, unofanirwa kumisa ese maseva etsamba anozotora chikamu mukuyananisa data.

Paunenge wapedza kuseta, iwe unofanirwa kugamuchira iyo inotevera mufananidzo kune yega yega yakawiriraniswa mafolda

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Sezvingatarisirwa, isu hatifanire kuburitsa akadzokororwa maforodha.

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Mushure mekudzokorora kunoitika (uye hapana chakakosha kudzokorora ipapo - maforodha haana chinhu), maseva etsamba anogona kutangwa.

Tevere, unogona kuzadza imwe yemasevha eemail nedata uye tarisa kuti iyo data inodzokororwa nemazvo.

4. Crutch

Tsanangudzo yekufungisisa

Sezvauri kuona mushure mekunge data yatanga kuwiriranisa (DFS), kana iwe ukagadzira chimwe chinhu pane yekutanga sevha, neimwe nzira hapana chinooneka pane yechipiri sevha, kana chinooneka asi neimwe nzira kwete nguva dzose.

Usaora mwoyo; hongu, ichaonekwa ipapo nokukurumidza kana kuti gare gare, asi zviri nani nokukurumidza kupfuura gare gare. Nekuti kunonoka mumaawa 6 - 12.

Chinhu ndechekuti kana uchinge wagadzira chimwe chinhu pane yekutanga sevha, pane yechipiri uye inotevera maseva, faira ichabva yaonekwa nekukurumidza nekuda kweiyo DFS system, asi kana chiitiko ichi dhairekitori retsamba ratoverengwa nemumwe munhu kare. uye inokumbirwa zvakare, sevha haizoverenge zvakare #msgs folda asi ichapfira data kubva kune yayo pachayo index, iyo inogona kunge isingachaenderane neyedu chaiyo.

Kerio ine nzira yekuverenga zvakare index, asi inogona kushanda mumaawa matanhatu, uye mukati maawa matanhatu aya kukosha kwebasa mukarenda kunogona kurasika.
Kuti uedze kuwiriranisa izvozvi, unogona kudzima faira mune inofananidzwa dhairekitori index.fld, mushure mekuwanazve folda pane mail server uye kana iyi faira isipo, Kerio achaverenga zvakare dhairekitori uye data. ichaonekwa. Zvingaita sekuti iyi ndiyo mhinduro, bvisa iyo faira kana data richichinja, asi izvi hazvishande nguva dzese, asi kekutanga chete, ipapo Kerio nekuda kwechimwe chikonzero anorasikirwa nese kufarira index.fld.
Inotangawo kupfira mameseji asinganzwisisike kumushandisi - nezve imwe mhando ye index uye kuti iri kutoita chimwe chinhu ipapo.

Pane imwe sarudzo, kugadzira chimwe chinhu - panguva yekugadzira chinhu chitsva, sevha inongoerekana yaona kuti zita refaira rayaida kugovera rakatotorwa, asi ichando chechando uye iyi isarudzo yakafa.

Kuve sei?

Kana tikateerera zvakare kumufananidzo uyo watozivikanwa kwatiri.

Kuenderana kwakazara kwemaforodha akagovaniswa, maforodha, makarenda pakati peakagoverwa Kerio Batanidza maseva

Asi pane imwe ndege, unogona kuona bhatani rinonakidza iro ratinoda izvozvi - Reindex folders

Uye zvechokwadi. Kana tikadzvanya bhatani iri pane sevha yetsamba isingazive kuti chimwe chinhu chatochinja mune yakawiriraniswa #msgs, tinowana yakagadzikana, nekukurumidza mhedzisiro. Zvose zvakavanzwa zvichabuda pachena.

Mune iyo log iwe unogona kuona kuti maitiro aya anotora nguva yakareba sei; mune yangu ine zviuru zvinoverengeka (15 zviuru) zvinyorwa zvinotora anenge 3-4 maminetsi.

Chatinofanira kuita kuona kuti tonyatsodzvanya sei bhatani iri patinenge tichirida.

Zvinoitika kuti Kerio vane yavo API

tsananguro
Zvinyorwa

Basa rinoita basa redu rinotaridzika seizvi:
session = callMethod("Domains.checkPublicFoldersIntegrity",{}, token)

Kubva pane zvose zviri pamusoro apa, tinoda kunyora script iyo inogona kutarisa mamiriro ezvinyorwa zvekufarira uye, kana chimwe chinhu chachinja, ita basa ratinoda.

Ini ndinoda kutaura kuti ndakanyora akati wandei akasiyana mascript anoita macheki akasiyana, uye akagadzika pane iyo inotora mhedziso dzese zvichienderana nehuwandu hwemafaira.

Script kushandiswa

CMD script muenzaniso uye tsananguro

Re-index.bat

@echo off
set dir=%~dp0
%dir:~0,2%
CD "%~dp0"
md "%CD%LOG"
md "%CD%Setup"

ECHO -Start- >> "%CD%LOG%Computername%.log"
ECHO Start -> %Computername% %Date% %Time% >> "%CD%LOG%Computername%.log"

SetLocal EnableDelayedExpansion
for /f "UseBackQ Delims=" %%A IN ("%CD%Setup%Computername%.List") do (
  set /a c+=1
  set "m!c!=%%A"
)

set d=%c%
Echo Folder = %c%
ECHO Folder = %c% >> "%CD%LOG%Computername%.log"
ECHO.
ECHO. >> "%CD%LOG%Computername%.log"

:start
cls
if %c% LSS 1 exit
set /a id=1
set R=0

:Find
REM PF-Start
if "%id%" gtr "%c%" if %R% == 1 Goto Reindex 
if "%id%" gtr "%c%" timeout 60 && Goto start

For /F "tokens=1-3" %%a IN ('Dir "!m%id%!#msgs" /-C/S/A:-D') Do Set 2DirSize!id!=!DS!& Set DS=%%c
if "2DirSize!id!" == "" set 1DirSize!id!=!2DirSize%id%!

echo %id%
ECHO !m%id%!
echo Count        [ !1DirSize%id%! -- !2DirSize%id%! ]

if "!1DirSize%id%!" == "!2DirSize%id%!" ECHO Synk

REM DEL index.fld
if "!1DirSize%id%!" NEQ "!2DirSize%id%!" del /f /q !m%id%!index.fld && del /f /q !m%id%!indexlog.fld && del /f /q !m%id%!search.fld && set R=1 && ECHO RE-index Count && ECHO RE-index Count %Date% %Time% - Delete !m%id%! >> "%CD%LOG%Computername%.log"

set 1DirSize!id!=!2DirSize%id%!

ECHO.
ECHO.

set /a id+=1
goto Find

:Reindex
ECHO. >> "%CD%LOG%Computername%.log"
ECHO --- RE-INDEX - Start - %Date% %Time% --- >> "%CD%LOG%Computername%.log"
ECHO. >> ----------------------------------- >> "%CD%LOG%Computername%.log"
call PublicFolders.py
timeout 60
goto start

exit

Kopi yezvinyorwa inomhanya pane yega yega mail server (inogona kushandiswa sevhisi, kodzero dzeAdm hadzidiwi)

Iyo script inoverenga faira Setup%Computername%.List

Iko %Computername% ndiro zita resevha iripo (Iyo dhairekitori inogona kuve nemazita emaseva ese kamwechete.)

Faira %Computername%.Rondedzero - rine nzira dzakazara dzedhairekitori dzakawiriraniswa, nzira yega yega inonyorwa pamutsetse mutsva, uye haifanirwe kunge iine mitsetse isina chinhu.

Mushure mekutanga kwekutanga, script inoita iyo indexing maitiro, zvisinei kuti zvakakosha here kana kwete, uye script inogadzirawo index yehuwandu hwemafaira mune imwe neimwe yakawiriraniswa dhairekitori.

Chinangwa che script kuverenga mafaera ese ari mudhairekitori rakataurwa.

Pakupera kwekuverenga dhairekitori rimwe nerimwe, kana mune imwechete dhairekitori kukosha kwazvino kwemafaira kusingaenderane neyakapfuura, script inodzima mafaera kubva kumudzi wedhairekitori yeakawiriraniswa mail dhairekitori: index.fld, indexlog.fld, search.fld uye inotanga iyo indexing process yeakagovaniswa tsamba maforodha.

Ruzivo rwekuita basa runokandwa muLOG dhairekitori.

Indexing process
Iyo indexing process inosvika pakuita Kerio API basa
Session = callMethod("Domains.checkPublicFoldersIntegrity",{}, chiratidzo)

Muenzaniso wekuita unopihwa mukati - python
PublicFolders.py

import json
import urllib.request
import http.cookiejar
""" Cookie storage is necessary for session handling """
jar = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(jar))
urllib.request.install_opener(opener)
""" Hostname or ip address of your Kerio Control instance with protocol, port and credentials """

server = "http://127.0.0.1:4040"
username = "user"
password = "password"

def callMethod(method, params, token = None):
    """
    Remotely calls given method with given params.
    :param: method string with fully qualified method name
    :param: params dict with parameters of remotely called method
    :param: token CSRF token is always required except login method. Use method "Session.login" to obtain this token.
    """
    data =  {"method": method ,"id":1, "jsonrpc":"2.0", "params": params}

    req = urllib.request.Request(url = server + '/admin/api/jsonrpc/')
    req.add_header('Content-Type', 'application/json')
    if (token is not None):
        req.add_header('X-Token', token)    

    httpResponse = urllib.request.urlopen(req, json.dumps(data).encode())

    if (httpResponse.status == 200):
        body = httpResponse.read().decode()
        return json.loads(body)

session = callMethod("Session.login", {"userName":username, "password":password, "application":{"vendor":"Kerio", "name":"Control Api-Local", "version":"Python"}})
token = session["result"]["token"]
print (session)

session = callMethod("Domains.checkPublicFoldersIntegrity",{"domainId": "test2.local"}, token)
print (session)

callMethod("Session.logout",{}, token)

http://127.0.0.1:4040 unogona kuisiya sezvairi, asi kana iwe uchida HTTPS, python inofanirwa kuvimba neKerio chitupa.

Zvakare mufaira unofanirwa kutsanangura account ine kodzero yekuita basa iri (Adm - public mail folders) ye mail server.

Ndinovimba chinyorwa changu chichabatsira kuKerio Connect administrator.

Source: www.habr.com

Voeg