Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

Manuia le aoauli, Habr!

Faamoemoega

O lo'o fa'aogaina e la'u fa'alapotopotoga se meli meli i luga o le Kerio Connect platform; o lo'o fa'apipi'i 'au meli i 'a'ai 'ese'ese e tautua ai a latou tagata fa'aoga. I le taimi muamua e leai se fausaga tufatufaina, talu ai e eseese vaega i le tulaga lona tolu, e faʻaalia ai le aai o le saite. Sa aoga mea uma ma sa fiafia tagata uma. I se tasi aso lelei, na faatulaga ai e le pulega se galuega, o se kalena masani o gaoioiga i le va o nofoaga uma!

prehistory

Muamua, o le manatu o le siitia lea o le Kerio Distributed Mail Domain ma o le a faia mea uma lava. O le taimi lava na fai mai ai, na faia se vaega tufatufaina, ae e le o le tulaga lena, ua sauni le server e faʻafetaui kalena, faila, fesoʻotaʻiga - i le va o vaega o loʻo i luga o le server lava e tasi, ae e leʻi alu e faʻafetaui faʻamaumauga i le va o le tele. 'au'auna.

O le mea moni, ou te leʻi faʻamoemoeina se puʻe ma mo se taimi umi e le mafai ona talitonu o loʻo misi le galuega na ou manaʻomia. Mulimuli ane na ou mauaina ni faamaoniga o lenei mea moni. Sa ou matua le mautonu ma le fiafia i lenei mea.

Na sologa lelei le galuega i se faafitauli.

O a filifiliga?

  • Fausia ni tagata fa'atau se lua i luga o 'au'aunaga eseese e fa'afesuia'i fa'amatalaga talafeagai ma nisi polokalama fa'apitoa. Na manaʻomia le suʻeina o lenei polokalame lona tolu o le a faʻatinoina lenei faʻatinoga - Ou te le fiafia i na rake, ae na foliga mai na o le pau lea o le fofo vave.
  • Tusi lau oe lava tusitusiga mo faʻamaumauga faʻatasi i le va o sapalai. O le mea moni o Kerio o loʻo teuina mea taʻitasi o se faila eseese, o lea na tatau ai ona atiaʻe se tusitusiga mo le galue ma faila, ae i le vaʻai i le lava numera o punaoa, o le galuega na foliga mai e faigata tele, aemaise lava talu ai e tatau ona faʻatino le tele. siaki mo le sa'o o fa'amaumauga, pe a fai e faia e se tasi se galuega i le taimi lava e tasi, ma isi, ma isi.

Vaʻai i luma, o le a ou fai atu e ui lava e teuina e Kerio se mea e fai o se faila ese, e le faʻavalevalea e fesili pe faʻafefea le faiga faila i taimi uma e te maua ai le mea.

I le faʻaaluina o le tele o le taimi e mafaufau ai, tusia se fusi o fasipepa ma fuafuaga "e faoa le teritori a le fili," i le 6 i le taeao na ou faia ai ni filifiliga saʻo se lua:

  • O le filifiliga muamua o le faia lea o lau lava mea ae le o le suʻeina o se mea mai fafo.
  • O le fofo lona lua o le alu e moe.

Ua i ai i le taeao na ou ala aʻe ma se manatu tasi ma le moni, lea na faʻaititia i ni nai mataitusi - DFS

faaiuga

O le fofo lava ia e pei o lenei

  • aumai uma 'au'aunaga o le a auai i le fa'amaopoopoina i le OS Windows. (O se vaega sa i luga ole Linux. Sa mana'omia le femalaga'iga o fa'amatalaga meli ile isi OS)
  • Fuafua le faʻatulagaina o faʻatonuga o le a auai i le faʻamaopoopoina - e tatau ona tutusa.
  • Fa'amatala 'au'aunaga meli uma i lalo o le tasi vaega ma se avanoa DFS e tasi.
  • Fausia le vaega o loʻo taʻua i luga o le Kerio, talu ai i laʻu mataupu e manaʻomia le tuʻufaʻatasia o faʻamaumauga, e le gata i le va o sapalai ae faʻapea foi i le va o vaega; o le lona lua e mafai ona taulimaina e le Kerio server tutoatasi. (e le pei o le muamua)
  • Seti fa'atonu fa'atonuga ile avanoa DFS.
  • Sau i luga ma se ituaiga tootoo (pe a uma, e le mafai ona e ola e aunoa ma se tootoo)

Реализация

Fa'ata'ita'iga i 'au meli e lua (atonu e sili atu)

1. Kerio Distributed domain

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

E le auai le Matai i le faamaopoopoina, ae e le o se tulaga manaomia.

O le a ou le faʻamatalaina pe faʻafefea ona faʻatupuina se Kerio tufatufaina atu, e leai se mea faigata e uiga i ai, e mafai ona e suʻesuʻeina le ofisa aloaia. manul

Mulimuli ane, e tatau ona e vaʻai i le ata lenei i le faʻamafanafanaga pulega:

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

O le isi sa ou fiafia i faila fefaʻasoaaʻi; i luga o le Master server e mafai ona e faʻamaonia filifiliga nei:

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

Fa'apitoa mo vaega ta'itasi - o le a le fa'aogaina e le 'au'aunaga fa'asalalauga lautele i le va o vaega

E masani i itu uma - o le a lafoa'i e 'au'aunaga uma faila fa'alaua'itele o lo'o iai i vaega ta'itasi ma fa'atupu ni fa'ailoga fou e tasi mo vaega uma i luga o sapalai meli ta'itasi.

Faʻamolemole faʻamolemole! E ui lava o lenei filifiliga e suia le faiga faʻavae i luga o 'auʻaunaga uma, e tuʻufaʻatasia ese mai 'auʻaunaga taʻitasi (o lona uiga, e aunoa ma se avanoa masani e tasi)

O le pule o le a maua pea le tomai e tufatufa atu avanoa i le va o tagata faʻaoga.
i loʻu tulaga, o latou uma o aʻu ma ou te manaʻomia le tuʻufaʻatasia atoatoa (I lau mataupu, atonu e ese le fofo) i luga o 'auʻaunaga taʻitasi e te manaʻomia le fatuina o seti tutusa o domains e manaʻomia ona tuʻufaʻatasia.

2. Kerio fa'amaumauga fa'amaumauga

Ole taimi nei e te manaʻomia le fatuina o faʻasalalauga faʻasoa tutusa e manaʻomia ona faʻafetaui i luga o 'auʻaunaga taʻitasi. Folders, Kalena, Feso'ota'iga.

Fautuaga - fai fa'atonuga i le Igilisi, afai e te fatuina i le Latina, o le lisi o le ai ai se igoa i nisi fa'ailoga e le mafai ona malamalama i ai, o le mea lea e le faigofie.

Ole taimi nei e te mana'omia le su'eina o ala fa'aletino o fa'ailoga meli i luga ole server ta'itasi.

E masani i itu uma ~DataMailmail#publicСинхронизируемый каталог#msgs
Fa'apitoa mo vaega ta'itasi ~DataMailmail**Domain**#publicСинхронизируемый каталог#msgs

Faamolemole ia matau o le a matou le fa'amaopoopoina le lisi atoa, ae na'o le atigipusa ma fa'amaumauga #msgs - o mea lava ia o loʻo teuina iinei, o isi faʻamatalaga uma e tatau ona tuʻueseese mo server taʻitasi.

3.DFS

O le a ou le faʻamatalaina auiliili pe faʻafefea ona faʻapipiʻi le DFS, e lava faʻamatalaga i lenei mataupu.

O le DFS o se tautua taua i le Windows Server e maua ai le tomai e tuʻufaʻatasia ai faila faʻasoa o loʻo i luga o sapalai eseese
So'oga ile MS DFS pepa

A'o le'i fa'atūina le DFS, e tatau ona e fa'amuta uma 'au meli o le a auai i fa'atasiga fa'amaumauga.

A maeʻa le seti, e tatau ona e mauaina le ata o loʻo i lalo mo faʻasalalauga taʻitasi

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

E masani lava, matou te le manaʻomia le faʻasalalauina o faila faila.

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

A maeʻa le toe faia (ma e leai se mea faʻapitoa e toe faia iina - o loʻo gaogao faʻailoga), e mafai ona amataina le meli.

Ma le isi, e mafai ona e faʻatumu se tasi o meli meli i faʻamaumauga ma siaki o faʻamaumauga saʻo saʻo.

4. Tootoo

Fa'amatalaga o mafaufauga

E pei ona mafai ona e vaʻaia pe a uma ona amata faʻatasi faʻamaumauga (DFS), afai e te fatuina se mea i luga o le server muamua, e leai se mea e aliali mai i luga o le server lona lua, pe faʻaalia ae e le o taimi uma.

Aua le faʻavaivai; ioe, o le a aliali mai iina i se taimi vave pe mulimuli ane, ae sili atu i se taimi mulimuli ane. Aua ua tuai tele ile 6 - 12 itula.

O le mea o le taimi lava na e fatuina ai se mea i luga o le server muamua, i luga o le server lona lua ma mulimuli ane o le faila o le a vave ona aliali mai faʻafetai i le DFS system, ae i le tulaga ua uma ona faitauina e se tasi lenei lisi meli. ma toe talosagaina, o le a le toe faitau e le server le #msgs folder ae o le a sasaa mai faʻamatalaga mai lana lava faasino igoa, atonu e le toe fetaui ma lo tatou moni.

Kerio ei ai se masini mo le toe faitauina o le faasinoupu, ae e mafai ona galue i le tusa ma le ono itula, ma i totonu o nei itula 6 atonu e fai si leiloa le taua o le galuega i le kalena.
Ina ia mafai ona faʻataʻitaʻi le faʻamaopoopoina i le taimi nei, e mafai ona e tapeina le faila i totonu o le faʻatonuga faʻapipiʻi tutusa index.fld, pe a uma ona toe faʻafeiloaʻi le faila i luga o le meli meli ma afai e misi lenei faila, o le a toe faitau e Kerio le lisi ma faʻamaumauga. o le a aliali mai. E foliga mai o le fofo lea, tape le faila pe a suia faʻamaumauga, ae e le aoga i taimi uma, ae naʻo le taimi muamua, ona faʻaumatia ai lea e Kerio mo nisi mafuaaga le fiafia i le index.fld.
E amata fo'i ona tu'u i fafo ni fe'au e le mafai ona malamalama i ai le tagata fa'aoga - e uiga i se ituaiga o fa'asinomaga ma o lo'o ia faia se mea iina.

O loʻo i ai se isi filifiliga, e fai ai se mea - i le taimi o le fatuina o se mea fou, na faʻafuaseʻi ona iloa e le 'auʻaunaga o le igoa faila na manaʻo e tuʻuina atu ua uma ona ave, ae o le kiona ma o se filifiliga mate.

E faʻapefea?

Afai tatou te toe gauai atu i le ata lea ua masani ai i tatou.

Fa'atasiga atoa o faila fefa'asoaa'i, feso'ota'iga, kalena i le va o fa'aumau o le Kerio Connect

Ae i luga o se isi vaalele, e mafai ona e vaʻai i se ki sili ona manaia matou te manaʻomia nei - Toe fa'asino igoa

Ma e moni lava. Afai tatou te kiliki i luga o lenei ki i luga o se meli meli e le iloa ua uma ona suia se mea i le synchronized #msgs, o le a tatou maua se taunuuga mautu, vave. O mea uma natia o le a manino.

I totonu o le ogalaau e mafai ona e vaʻai pe o le a le umi o lenei faagasologa; i laʻu tulaga ma le tele o afe (15 afe) faʻamaumauga e tusa ma le 3-4 minute.

Pau lava le mea e tatau ona tatou faia o le mafaufau pe faʻafefea ona oomi moni lenei ki pe a tatou manaʻomia.

E aliali mai Kerio e iai a latou lava mea API

faʻamatalaga
Tusi

O le galuega e faʻatino ai la matou galuega e pei o lenei:
session = callMethod("Domains.checkPublicFoldersIntegrity",{}, token)

Mai mea uma o loʻo i luga, e manaʻomia ona tatou tusia se tusitusiga e mataʻituina ai le tulaga o faila e fiafia i ai ma, afai ua suia se mea, fai le galuega tatou te manaʻomia.

Ou te fia fai atu na ou tusia le tele o lomiga eseese o tusitusiga e faia ai siaki eseese, ma faʻamautu i luga o le tasi e maua ai faʻaiuga uma e faʻatatau i le numera o faila.

Fa'atinoina o tusitusiga

CMD script faʻataʻitaʻiga ma faʻamatalaga

Toe 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

O se kopi o le tusitusiga e faʻaoga i luga o meli taʻitasi (e mafai ona faʻaaogaina o se tautua, e le manaʻomia le aia tatau a Adm)

E faitau e le tusitusiga le faila Setup%Computername%.List

O fea %Computername% o le igoa o le 'au'aunaga o lo'o i ai nei (O le fa'atonuga e mafai ona iai lisi o fa'aumau uma i le taimi e tasi.)

O le faila %Computername%.List – o lo'o i ai ala atoa o fa'atonuga fa'atasi, o ala ta'itasi e tusia i se laina fou, ma e le tatau ona i ai ni laina gaogao.

A maeʻa le faʻalauiloaina muamua, e faʻatino e le tusitusiga le faʻasologa o le faasino igoa, e tusa lava pe talafeagai pe leai, ma o le tusitusiga foi e fatuina ai se faʻailoga o le numera o faila i totonu o faʻasalalauga taʻitasi.

O le fa'amoemoega o le fa'asologa o le faitau uma o faila i totonu o le lisi fa'apitoa.

I le fa'ai'uga o le faitauina o fa'atonuga ta'itasi, pe a le itiiti ifo ma le tasi le fa'atonuga o le tau o faila o lo'o i ai nei e le fetaui ma le mea muamua, e tapeina e le tusitusiga faila mai le a'a o le lisi meli fa'atasi: index.fld, indexlog.fld, search.fld ma amata le fa'asologa o fa'asinomaga o faila meli fefa'asoaa'i.

O fa'amatalaga e uiga i le fa'atinoina o galuega e lafo i totonu o le LOG directory.

Fa'asologa o fa'asinomaga
O le fa'asologa o fa'asinomaga e sau i lalo i le fa'atinoina o se galuega Kerio API
Session = callMethod("Domains.checkPublicFoldersIntegrity",{}, fa'ailoga)

O se faʻataʻitaʻiga faʻatinoga o loʻo tuʻuina atu i totonu - 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 e mafai ona e tuʻua e pei ona i ai, ae afai e te manaʻomia HTTPS, e tatau i le python ona faʻatuatuaina le tusi faamaonia Kerio.

I totonu foi o le faila e tatau ona e faʻamaonia se tala ma aia tatau e faʻatino ai lenei galuega (Adm - public mail folders) o le meli meli.

Ou te faʻamoemoe o le a aoga laʻu tusiga i Kerio Connect pule.

puna: www.habr.com

Faaopoopo i ai se faamatalaga