Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Feasgar math, Habr!

Amas

Bidh a’ bhuidheann agam a’ cleachdadh frithealaiche puist air an àrd-ùrlar Kerio Connect; tha frithealaichean puist air an stàladh ann am bailtean-mòra eadar-dhealaichte gus seirbheis a thoirt don luchd-cleachdaidh aca. An toiseach cha robh structar sgaoilte ann, leis gu bheil na raointean eadar-dhealaichte aig an treas ìre, a’ comharrachadh baile-mòr na làraich. Dh’obraich a h-uile càil agus bha a h-uile duine toilichte. Aon latha math, shuidhich an luchd-stiùiridh gnìomh, mìosachan coitcheann de ghnìomhachd eadar gach làrach!

ro-eachdraidheil

An toiseach, b 'e am beachd a bhith a' togail Fearann ​​​​Puist Sgaoilte Kerio agus dhèanadh e a h-uile càil fhèin. Cha bu luaithe a chaidh a ràdh na chaidh a dhèanamh, chaidh àrainn sgaoilte a chruthachadh, ach cha robh sin fìor, bha am frithealaiche deiseil airson mìosachain, pasganan, fiosan a shioncronachadh - eadar raointean a tha suidhichte air an aon fhrithealaiche, ach cha robh e idir a’ dol a shioncronachadh dàta eadar grunn seirbhisich.

Gu dearbh, cha robh dùil agam ri leithid de ghlacadh agus airson ùine mhòr cha b’ urrainn dhomh a chreidsinn gu robh an comas-gnìomh a bha a dhìth orm a dhìth. Nas fhaide air adhart lorg mi fianais aithriseach mun fhìrinn seo. Bha mi gu math fo imcheist agus diombach le seo.

Thionndaidh an obair gu rèidh gu bhith na dhuilgheadas.

Dè na roghainnean a bh’ ann?

  • Cruthaich dà neach-dèiligidh air diofar luchd-frithealaidh a bhios ag iomlaid an dàta riatanach le cuid de bhathar-bog treas-phàrtaidh. Bha e riatanach am bathar-bog treas-phàrtaidh seo a lorg a chuireadh an gnìomh seo an gnìomh - cha toil leam an leithid de ràcan, ach bha e coltach gur e seo an aon fhuasgladh sgiobalta.
  • Sgrìobh an sgriobt agad fhèin airson sioncronadh dàta eadar frithealaichean. Is e an fhìrinn gu bheil Kerio a’ stòradh gach nì mar fhaidhle air leth, agus mar sin bha e riatanach sgriobt a leasachadh airson a bhith ag obair le faidhlichean, ach leis an àireamh gu leòr de stòran, bha coltas caran toinnte air a’ ghnìomh, gu sònraichte leis gu robh feum air ioma-obair a dhèanamh. sgrùdaidhean airson ceartachd an dàta, gun fhios nach cruthaich cuideigin gnìomh san aon ùine, msaa, msaa.

A’ coimhead air adhart, canaidh mi ged a tha Kerio a’ stòradh nì mar fhaidhle air leth, nach eil e cho gòrach a bhith a’ faighneachd ciamar a tha siostam nam faidhlichean a’ dèanamh a h-uile uair a gheibh thu cothrom air an nì.

Às deidh dhomh tòrr ùine a chuir seachad a’ smaoineachadh, ag ullachadh dòrlach de phàipearan le planaichean “gus fearann ​​​​nàmhaid a ghlacadh,” aig 6 uairean rinn mi dà cho-dhùnadh ceart:

  • Is e a’ chiad cho-dhùnadh do rud fhèin a dhèanamh agus gun a bhith a’ coimhead airson dad bhon taobh a-muigh.
  • Is e an dàrna fuasgladh a dhol gu cadal.

A-cheana sa mhadainn dhùisg mi le aon fhìor bheachd, a chaidh a lughdachadh gu beagan litrichean - DFS

co-dhùnadh

Bha am fuasgladh fhèin a’ coimhead mar seo

  • thoir a h-uile frithealaiche a ghabhas pàirt ann an sioncronadh gu OS Windows. (Bha pàirt dheth air Linux. Bha feum air dàta puist-d a ghluasad gu OS eile)
  • Obraich a-mach structar nan clàran a ghabhas pàirt ann an sioncronadh - feumaidh iad a bhith co-ionann.
  • Mìnich a h-uile frithealaiche puist fo aon raon le aon àite DFS.
  • Cruthaich an àrainn Kerio sgaoilte gu h-àrd, oir anns a ’chùis agam tha feum air sioncronadh dàta, chan ann a-mhàin eadar frithealaichean ach cuideachd eadar raointean; faodaidh an dàrna fear a bhith air a làimhseachadh le frithealaiche Kerio gu neo-eisimeileach. (eu-coltach ris a’ chiad fhear)
  • Suidhich clàran sioncronaich gu àite DFS.
  • Thig a-steach le seòrsa de chrutch (às deidh a h-uile càil, chan urrainn dhut a bhith beò às aonais crutch)

Реализация

Eisimpleir air dà fhrithealaiche puist ('s dòcha barrachd)

1. Kerio àrainn air a chuairteachadh

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Chan eil am Maighstir a’ gabhail pàirt ann an sioncronadh, ach chan eil seo riatanach.

Cha toir mi cunntas air mar a thogas tu àrainn sgaoilte Kerio, chan eil dad iom-fhillte mu dheidhinn, faodaidh tu sgrùdadh a dhèanamh air an oifigear làmh-làimhe

Aig a 'cheann thall, bu chòir dhut an ìomhaigh a leanas fhaicinn anns a' chonsail rianachd:

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

An ath rud bha ùidh agam ann am pasganan co-roinnte; air a’ phrìomh fhrithealaiche faodaidh tu na roghainnean a leanas a shònrachadh:

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Sònraichte airson gach àrainn - cha dèan am frithealaiche sioncronachadh air pasganan poblach eadar raointean

Coitcheann do gach raon - trèigidh a h-uile frithealaiche na pasganan poblach a tha ann mu thràth anns gach raon agus cruthaichidh iad pasganan singilte ùra airson a h-uile raon air gach frithealaiche puist.

Thoir aire! Ged a dh’ atharraicheas an roghainn seo am poileasaidh rèiteachaidh air a h-uile frithealaiche, bidh e a’ sioncronadh air leth bho gach frithealaiche (is e sin, às aonais aon àite cumanta)

Bidh comas aig an rianaire fhathast ruigsinneachd a sgaoileadh eadar luchd-cleachdaidh.
anns a 'chùis agam, tha iad uile leamsa agus tha feum agam air làn shioncronachadh (Anns a' chùis agad, is dòcha gum bi am fuasgladh eadar-dhealaichte) air gach frithealaiche feumaidh tu seataichean co-ionann de raointean a chruthachadh a dh'fheumas a bhith air an sioncronadh.

2. Clàran dàta Kerio

A-nis feumaidh tu clàran co-ionann co-ionann a chruthachadh a dh'fheumas a bhith air an sioncronadh air gach aon de na frithealaichean. Filltearan, Mìosachain, Caraidean.

Comhairle - cruthaich clàran sa Bheurla, ma chruthaicheas tu iad ann an Laideann, bidh ainm aig an eòlaire ann an còdachadh neo-thuigsinn, tha seo co-dhiù mì-ghoireasach.

A-nis feumaidh tu slighean fiosaigeach nam pasgan puist a lorg air gach frithealaiche.

Coitcheann do gach raon ~DataMailmail#publicСинхронизируемый каталог#msgs
Sònraichte airson gach àrainn ~DataMailmail**Domain**#publicСинхронизируемый каталог#msgs

Thoir an aire nach sioncronaich sinn an eòlaire gu lèir, ach dìreach an soitheach leis an dàta #msgs - tha na stuthan fhèin air an stòradh an seo, feumaidh a h-uile dàta eile a bhith air leth airson gach frithealaiche.

3.DFS

Cha toir mi cunntas mionaideach air mar a chuireas tu DFS air dòigh, tha fiosrachadh gu leòr air a’ chùis seo.

Tha DFS na sheirbheis dreuchd ann an Windows Server a bheir seachad comas pasganan co-roinnte a tha suidhichte air diofar luchd-frithealaidh a chur còmhla
Ceangal gu sgrìobhainn MS DFS

Mus stèidhich thu DFS, feumaidh tu stad a chuir air a h-uile seirbheisiche puist a ghabhas pàirt ann an sioncronadh dàta.

Nuair a bhios an rèiteachadh deiseil, bu chòir dhut an dealbh a leanas fhaighinn airson gach pasgan sioncronaich

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Gu nàdarra, chan fheum sinn pasganan ath-aithris fhoillseachadh.

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Às deidh ath-riochdachadh a dhèanamh (agus chan eil dad sònraichte ri ath-riochdachadh an sin - tha na pasganan falamh), faodar na frithealaichean puist a thòiseachadh.

An uairsin, faodaidh tu aon de na frithealaichean puist a lìonadh le dàta agus dèanamh cinnteach gu bheil an dàta air ath-aithris ceart.

4. Crutch

Tuairisgeul air meòrachadh

Mar a chì thu às deidh don dàta tòiseachadh a ’sioncronadh (DFS), ma chruthaich thu an dàrna cuid rudeigin air a’ chiad fhrithealaiche, dòigh air choireigin chan eil dad a ’nochdadh air an dàrna frithealaiche, no tha e a’ nochdadh ach ann an dòigh air choireigin chan eil an-còmhnaidh.

Na bi eu-dòchas; gu dearbh, nochdaidh e an sin luath no mall, ach nas fheàrr nas luaithe na nas fhaide air adhart. Leis gu bheil e ro fhadalach ann an 6 - 12 uairean.

Is e an rud, cho luath ‘s a tha thu air rudeigin a chruthachadh air a’ chiad fhrithealaiche, air an dàrna frithealaiche agus na frithealaichean às deidh sin gu dearbh bidh am faidhle a ’nochdadh sa bhad le taing don t-siostam DFS, ach ma tha an eòlaire puist seo air a leughadh le cuideigin roimhe seo agus thathar ag iarraidh a-rithist, cha leugh am frithealaiche am pasgan #msgs a-rithist ach dòirtidh e a-mach dàta bhon chlàr-amais aige fhèin, is dòcha nach eil a’ freagairt ris an fhìrinn againn tuilleadh.

Tha uidheamachd aig Kerio airson an clàr-amais ath-leughadh, ach faodaidh e obrachadh ann an timcheall air sia uairean a thìde, agus anns na 6 uairean sin dh’ fhaodadh iomchaidheachd na h-obrach sa mhìosachan a bhith air a chall beagan.
Gus an sioncronadh a dhearbhadh an-dràsta, faodaidh tu am faidhle a dhubhadh às anns an eòlaire sioncronaich co-fhreagarrach index.fld, às deidh dhut faighinn a-steach don phasgan air frithealaiche a’ phuist agus ma tha am faidhle seo a dhìth, leughaidh Kerio an eòlaire agus an dàta a-rithist nochdaidh. Bhiodh e coltach gur e seo am fuasgladh, cuir às don fhaidhle nuair a dh’ atharraicheas an dàta, ach chan obraich seo a h-uile uair, ach dìreach a ’chiad uair, an uairsin bidh Kerio airson adhbhar air choireigin a’ call a h-uile ùidh ann an index.fld
Bidh e cuideachd a 'tòiseachadh a' sgoltadh teachdaireachdan nach eil furasta a thuigsinn don neach-cleachdaidh - mu dheidhinn clàr-amais de sheòrsa air choreigin agus gu bheil e mar-thà a 'dèanamh rudeigin an sin.

Tha roghainn eile ann, rudeigin a chruthachadh - aig an àm a chruthaicheas tu rud ùr, bidh am frithealaiche a 'tuigsinn gu h-obann gu bheil an t-ainm faidhle a bha e airson a shònrachadh air a thoirt mar-thà, ach bidh e a' sneachda agus tha seo na roghainn deireadh marbh.

Mar a bhios tu?

Ma bheir sinn aire a-rithist don dealbh a tha eòlach oirnn mar-thà.

Sioncronadh iomlan de phasganan co-roinnte, fiosan, mìosachain eadar frithealaichean Kerio Connect sgaoilte

Ach air plèana eile, chì thu putan gu math inntinneach a dh’ fheumas sinn a-nis - Faidhlichean reindex

Agus gu dearbh. Ma bhriogas sinn air a’ phutan seo air frithealaiche puist aig nach eil fios gu bheil rudeigin air atharrachadh mar-thà anns na #msgs sioncronaich, gheibh sinn toradh seasmhach, luath. Bidh a h-uile dad a tha falaichte air fàs soilleir.

Anns a 'chlàr chì thu dè cho fada' sa bheir am pròiseas seo; anns a 'chùis agam le grunn mhìltean (15 mìle) clàran bheir e timcheall air 3-4 mionaidean.

Chan eil againn ach faighinn a-mach ciamar a bhrùthas sinn am putan seo nuair a bhios feum againn air.

Tha e a 'tionndadh a-mach Kerio tha an cuid fhèin aca API

Tuairisgeul
Sgrìobhainnean

Tha an gnìomh a choileanas ar gnìomh a’ coimhead mar seo:
session = callMethod("Domains.checkPublicFoldersIntegrity",{}, token)

Bhon a h-uile rud gu h-àrd, feumaidh sinn sgriobt a sgrìobhadh a bhiodh a 'cumail sùil air staid nam pasgan inntinneach agus, ma tha rudeigin air atharrachadh, a' coileanadh a 'ghnìomh a tha a dhìth oirnn.

Tha mi airson a ràdh gun do sgrìobh mi grunn dhreachan eadar-dhealaichte de sgriobtaichean a bhios a 'dèanamh diofar sgrùdaidhean, agus shuidhich mi air an fhear a tha a' tarraing a h-uile co-dhùnadh stèidhichte air an àireamh de fhaidhlichean.

Cur an gnìomh sgriobt

Eisimpleir sgriobt CMD agus tuairisgeul

Ath-chlàr-amais.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

Bidh leth-bhreac den sgriobt a’ ruith air gach frithealaiche puist (faodar a chleachdadh mar sheirbheis, chan eil feum air còraichean Adm)

Tha an sgriobt a 'leughadh an fhaidhle Setup%Computername%.List

Far a bheil %Computername% mar ainm an fhrithealaiche làithreach (Faodaidh liostaichean de na frithealaichean uile a bhith san eòlaire aig an aon àm.)

Am faidhle %Computername%.Liosta - tha slighean slàn nan clàran sioncronaich ann, tha gach slighe sgrìobhte air loidhne ùr, agus cha bu chòir loidhnichean falamh a bhith ann.

Às deidh a ’chiad fhoillseachadh, bidh an sgriobt a’ coileanadh a ’mhodh clàr-amais, ge bith a bheil e riatanach no nach eil, agus bidh an sgriobt cuideachd a’ cruthachadh clàr-amais den àireamh de fhaidhlichean anns gach eòlaire sioncronaich.

Is e adhbhar an sgriobt na faidhlichean gu lèir a chunntadh san eòlaire ainmichte.

Aig deireadh cunntais gach eòlaire, mura h-eil luach làithreach nam faidhlichean a’ freagairt ris an fhear roimhe ann an co-dhiù aon eòlaire, bidh an sgriobt a’ cuir às do fhaidhlichean bho bhun-eòlaire an eòlaire puist sioncronaich: index.fld, indexlog.fld, search.fld agus a’ tòiseachadh pròiseas clàr-amais pasganan puist co-roinnte.

Tha fiosrachadh mu choileanadh gnìomhan air a dhumpadh a-steach don eòlaire LOG.

Pròiseas clàr-amais
Tha am pròiseas clàr-amais a’ tighinn sìos gu bhith a’ cur an gnìomh gnìomh Kerio API
Seisean = callMethod ("Domains.checkPublicFoldersIntegrity", {}, tòcan)

Tha eisimpleir de bhuileachadh air a thoirt seachad ann - 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 faodaidh tu fhàgail mar a tha, ach ma tha feum agad air HTTPS, feumaidh python earbsa a bhith ann an teisteanas Kerio.

Cuideachd san fhaidhle feumaidh tu cunntas a shònrachadh le còraichean gus an gnìomh seo (Adm - pasganan puist poblach) den fhrithealaiche puist a choileanadh.

Tha mi an dòchas gum bi an artaigil agam feumail do luchd-rianachd Kerio Connect.

Source: www.habr.com

Cuir beachd ann