Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Kia ora, Habr!

Whāinga

Ka whakamahia e taku whakahaere he tūmau mēra i runga i te papaaho Kerio Connect; kua whakauruhia nga tūmau mēra ki nga taone rereke hei mahi ki o raatau kaiwhakamahi. I te timatanga kaore he hanganga tohatoha, na te mea he rereke nga rohe i te taumata tuatoru, e tohu ana i te taone o te waahi. I mahi nga mea katoa, i koa katoa. I tetahi ra pai, i whakaritea e te kaiwhakahaere he mahi, he maramataka mahi i waenga i nga waahi katoa!

prehistory

I te tuatahi, ko te whakaaro ko te hiki ake i te Kerio Distributed Mail Domain ka mahia e ia nga mea katoa. Kaore i roa ka oti, ka hangaia he rohe toha, engari kaore i penei, kua rite te kaimau ki te tukutahi maramataka, kōpaki, hoapaki - i waenga i nga rohe kei runga i te tūmau kotahi, engari kaore i te haere ki te tukutahi raraunga i waenga i te maha. tūmau.

Ae ra, kaore au i tumanako ki te hopu pera me te wa roa kaore au e whakapono kua ngaro nga mahi e hiahiatia ana e au. I muri mai ka kitea e au he whakaaturanga pakipūmeka mo tenei meka. I tino pohehe ahau, i pouri hoki na tenei.

I pai te huri hei raru.

He aha nga whiringa?

  • Waihangahia nga kaihoko e rua i runga i nga kaitoro rereke e whakawhiti ana i nga raraunga e tika ana me etahi rorohiko tuatoru. He mea tika ki te kimi i tenei punaha tuatoru-tuatoru hei whakatinana i tenei mahi - Kaore au e pai ki te rake penei, engari ko te ahua nei koinei anake te otinga tere.
  • Tuhia taau ake tuhinga mo te tukutahitanga raraunga i waenga i nga tūmau. Ko te mea kei te rongoa a Kerio i ia mea hei konae motuhake, na reira i tika ki te whakawhanake i tetahi tuhinga mo te mahi me nga konae, engari na te nui o nga puna, he ahua uaua te mahi, ina koa me mahi maha. ka arowhai i te tika o nga raraunga, mena ka hangaia e te tangata he mahi i roto i te waa kotahi, aha atu, aha atu.

Ma te titiro whakamua, ka kii ahau ahakoa kei te rongoa a Kerio i tetahi mea hei konae motuhake, ehara i te mea poauau te patai me pehea te mahi o te punaha konae i nga wa katoa ka uru koe ki te ahanoa.

I te paunga o te taima ki te whakaaro, ki te tuhi i te maha o nga pepa me nga mahere "ki te hopu i nga rohe o te hoariri," i te 6 karaka i mahia e au nga whakatau tika e rua:

  • Ko te whakatau tuatahi ko te mahi i a koe ake me te kore e rapu i tetahi mea mai i waho.
  • Ko te otinga tuarua ko te haere ki te moe.

I te ata kua oho ake ahau me te whakaaro kotahi me te pono, i whakahekehia ki etahi reta - DFS

whakatau

Ko te otinga ake he penei te ahua

  • kawea mai nga tūmau katoa ka uru ki te tukutahi ki OS Windows. (Ko tetahi waahanga kei runga i te Linux. I hiahiatia te hekenga o nga raraunga mēra ki tetahi atu OS)
  • Whakatauhia te hanganga o nga raarangi ka uru ki te tukutahi - me rite tonu.
  • Tautuhia nga tūmau mēra katoa i raro i te rohe kotahi me te mokowā DFS kotahi.
  • Waihangahia te rohe o Kerio kua tohatohahia i runga ake nei, na te mea i roto i taku keehi ka hiahiatia te tukutahi raraunga, kaua i waenga i nga kaitoro engari i waenga ano hoki i nga rohe; ko te tuarua ka taea e te kaimau Kerio te whakahaere takitahi. (kaore i rite ki te tuatahi)
  • Tautuhia nga whaiaronga tukutahi ki te mokowā DFS.
  • Haere mai me etahi momo toka (kaore e taea e koe te ora me te kore he toka)

Реализация

He tauira mo nga tūmau mēra e rua (tetahi atu pea)

1. Kerio Distributed rohe

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Kaore te Kaiwhakaako e whai waahi ki te tukutahi, engari ehara tenei i te mea e hiahiatia ana.

Kaore au e whakaahua me pehea te whakaara i tetahi rohe tohatoha Kerio, kaore he mea uaua, ka taea e koe te ako i te mana manul

I te mutunga, me kite koe i te ahua e whai ake nei i te papatohu whakahaere:

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

I muri mai i hiahia ahau ki nga kōpaki tiritahi; i runga i te Kaiwhakaako Kaiwhakaako ka taea e koe te tohu i nga whiringa e whai ake nei:

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

He mea motuhake mo ia rohe - e kore te tūmau e tukutahi i ngā kōpaki tūmatanui i waenga i ngā rohe

He mea noa ki nga rohe katoa - ka whakarērea e ngā tūmau katoa ngā kōpaki tūmatanui o ia rohe me te hanga kōpaki kotahi hōu mō ngā rohe katoa ki ia tūmau mēra.

Tūpato Ahakoa ka huri tenei kōwhiringa i te kaupapa here whirihoranga i runga i nga tūmau katoa, ka tukutahi motuhake mai i ia tūmau (ara, karekau he mokowā noa)

Ka whai mana tonu te kaiwhakahaere ki te tohatoha uru ki waenga i nga kaiwhakamahi.
i roto i taku keehi, noku katoa, me te tukutahitanga katoa (I to keehi, he rereke pea te otinga) i runga i ia tūmau ka hiahia koe ki te hanga i nga huinga rite o nga rohe e hiahia ana ki te tukutahi.

2. Kerio raraunga whaiaronga

Inaianei me hanga e koe nga raarangi tiritiri rite me tukutahi ki ia o nga kaitoro. Kōpaki, Maramataka, Hoapā.

Tohutohu - Waihangahia nga raarangi i te reo Ingarihi, mena ka hangaia e koe ki te reo Latina, ka whai ingoa te raarangi ki etahi whakawaehere kore e marama, he iti rawa tenei.

Inaianei me rapu koe i nga ara tinana o nga kōpaki mēra i ia tūmau.

He mea noa ki nga rohe katoa ~DataMailmail#publicСинхронизируемый каталог#msgs
He mea motuhake mo ia rohe ~DataMailmail**Domain**#publicСинхронизируемый каталог#msgs

Kia mahara kaore matou e tukutahi i te raarangi katoa, engari ko te ipu anake me nga raraunga #msgs — ko nga taonga ake kei te rongoa i konei, me wehe kee nga raraunga katoa mo ia tūmau.

3.DFS

Kaore au e whakaahua taipitopito me pehea te whirihora i te DFS, he nui nga korero mo tenei take.

He ratonga mahi a DFS i roto i te Windows Server e whakarato ana i te kaha ki te whakakotahi i nga kōpaki tiritahi kei runga i nga tūmau rereke
Hono ki te tuhinga MS DFS

I mua i te whakatuu DFS, me whakamutua e koe nga tūmau mēra ka uru ki te tukutahi raraunga.

I te otinga o te tatūnga, me whiwhi koe i te ahua e whai ake nei mo ia kōpaki tukutahi

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Ko te tikanga, kaore matou e hiahia ki te whakaputa i nga kōpaki tukurua.

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Whai muri i te tukuruatanga (karekau he mea motuhake hei taarua ki reira - kua putua nga kōpaki), ka taea te tiimata i nga kaitoro mēra.

I muri mai, ka taea e koe te whakaki i tetahi o nga kaituku mēra ki nga raraunga me te tirotiro kei te tika te whakahou i nga raraunga.

4. Tootoo

Whakaahuatanga o te whakaata

Ka kite koe i muri i te tiimatanga o nga raraunga ki te tukutahi (DFS), mena i hanga e koe tetahi mea i runga i te tūmau tuatahi, karekau he mea ka puta ki te tūmau tuarua, ka puta mai engari kaore i nga wa katoa.

Kaua e ngakaukore; o te akoranga, ka puta mai ki reira i muri mai, engari ka pai ake i muri mai. No te mea kua roa rawa i roto i nga haora 6 - 12.

Ko te mea ko te wa i hanga e koe tetahi mea i runga i te tūmau tuatahi, i runga i nga kaitoro tuarua me muri mai ka puta tonu te konae na te punaha DFS, engari mena kua panuihia tenei raarangi mēra e tetahi i mua. ka tonohia ano, karekau te kaimau e panui ano i te kōpaki #msgs engari ka tuwhahia e ia nga raraunga mai i tana ake taurangi, kaore pea e rite ki to maatau.

Kei a Kerio tetahi tikanga mo te panui ano i te taurangi, engari ka taea te mahi i roto i te ono haora, a i roto i enei haora 6 ka ngaro pea te whai take o te mahi i roto i te maramataka.
Hei whakamatautau i te tukutahitanga i tenei wa, ka taea e koe te muku i te konae i roto i te index.fld whaiaronga tukutahi, i muri i te urunga ano ki te kōpaki i runga i te tūmau mēra a mena kei te ngaro tenei konae, ka panui ano a Kerio i te whaiaronga me nga raraunga ka puta. Ko te ahua tenei ko te otinga, mukua te konae ka huri nga raraunga, engari kaore tenei e mahi i nga wa katoa, engari ko te wa tuatahi, katahi ka ngaro a Kerio mo etahi take i te index.fld.
Ka timata ano te tuwha i nga karere kaore e marama ki te kaiwhakamahi - mo etahi momo taurangi me te mea kei te mahi ano ia ki reira.

He whiringa kee, ki te hanga i tetahi mea - i te wa e hanga ana he ahanoa hou, ka mohio ohorere te kaimau kua tangohia kee te ingoa konae e hiahia ana ia ki te tautapa, engari he poihuka a he kowhiringa mate tenei.

Me pehea?

Mena ka aro ano tatou ki te pikitia kua mohio kee tatou.

Te tukutahitanga katoa o nga kōpaki tiritahi, hoapaki, maramataka i waenga i nga kaitoro Kerio Connect kua tohatohahia

Engari i runga i tetahi atu rererangi, ka taea e koe te kite i tetahi paatene tino pai e hiahiatia ana inaianei - Reindex kōpaki

Ina hoki. Mena ka paato tatou i tenei paatene i runga i te tūmau mēra kaore i te mohio kua huri ke tetahi mea i roto i te #msgs tukutahi, ka whiwhi tatou i te hua pumau, tere. Ko nga mea katoa e huna ana ka marama.

I roto i te raarangi ka kite koe kia pehea te roa o tenei mahi; i taku keehi me etahi mano (15 mano) nga rekoata e 3-4 meneti pea.

Ko nga mea noa ma tatou ko te whakaaro me pehea te pehi tonu i tenei paatene ina hiahia ana tatou.

Ka puta Kerio kei a raatau ake API

Whakaahuatanga
Tuhinga

Ko te mahi e mahi ana i a maatau mahi penei te ahua:
session = callMethod("Domains.checkPublicFoldersIntegrity",{}, token)

Mai i nga mea katoa i runga ake nei, me tuhi he tuhinga hei tirotiro i te ahua o nga kōpaki o te paanga, a, ki te mea kua rereke tetahi mea, mahia te mahi e hiahiatia ana.

E hiahia ana ahau ki te kii i tuhia e au etahi momo momo tuhinga rereke e mahi ana i nga arowhai rereke, me te whakatau ki te mea e whakatau ana i nga whakatau katoa i runga i te maha o nga konae.

Whakatinana tuhinga

CMD tauira tuhinga me te whakaahuatanga

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

Ko te kape o te tuhinga ka rere ki ia tūmau mēra (ka taea te whakamahi hei ratonga, kaore e hiahiatia nga mana Adm)

Ka panui te tuhinga i te konae Setup%Computername%.List

Ko %Rorohiko% te ingoa o te tūmau o nāianei (Kei roto i te whaiaronga nga rarangi o nga tūmau katoa i te wa kotahi.)

Ko te kōnae %Computername%.List – kei roto nga ara katoa o nga whaiaronga tukutahi, ka tuhia ia ara ki runga i te raina hou, me te kore e uru ki roto i nga rarangi kau.

I muri i te whakarewatanga tuatahi, ka mahia e te tuhinga te tikanga tohu, ahakoa he mea tika, kaore ranei, ka hangaia ano hoki e te tuhinga he tohu mo te maha o nga konae kei roto i ia raarangi tukutahi.

Ko te kaupapa o te tuhinga he tatau i nga konae katoa kei roto i te raarangi kua tohua.

I te mutunga o te tatau i ia whaiaronga, mena karekau te uara o naianei o naianei o nga konae e rite ki te raarangi o mua, ka mukua e te tuhinga nga konae mai i te raarangi pakiaka o te raarangi mēra tukutahi: index.fld, indexlog.fld, search.fld ka timata i te mahi tohu tohu o nga kōpaki mēra tiritahi.

Ka makahia nga korero mo te mahi mahi ki roto i te raarangi LOG.

Te mahi tohu tohu
Ko te mahi tohu tohu ka heke ki te whakahaere i tetahi mahi API Kerio
Wātū = callMethod("Domains.checkPublicFoldersIntegrity",{}, tohu)

He tauira whakatinanatanga kei roto – python
PublicFolds.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 ka taea e koe te waiho kia rite, engari ki te hiahia koe ki te HTTPS, me whakawhirinaki te python ki te tiwhikete Kerio.

I roto ano i te konae me tohu koe i tetahi kaute me nga mana ki te mahi i tenei mahi (Adm - kōpaki mēra tūmatanui) o te tūmau mēra.

Ko taku tumanako ka whai hua taku tuhinga ki nga kaiwhakahaere o Kerio Connect.

Source: will.com

Tāpiri i te kōrero