์๋ ํ์ธ์, ํ๋ธ๋ฅด!
ํ์คํฌ
์ฐ๋ฆฌ ์กฐ์ง์ Kerio Connect ํ๋ซํผ์ ๋ฉ์ผ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๋ฉ์ผ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ๋ฌ ๋์์ ์ค์น๋์ด ์์ต๋๋ค. ์ฒ์์๋ ๋ถ์ฐ ๊ตฌ์กฐ๊ฐ ์์์ต๋๋ค. ์๋ํ๋ฉด ๋๋ฉ์ธ์ด ์ธ ๋ฒ์งธ ์์ค์์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํด๋น ์ฌ์ดํธ์ ๋์๋ฅผ ๋ํ๋ ๋๋ค. ๋ชจ๋ ๊ฒ์ด ํจ๊ณผ๊ฐ ์์๊ณ ๋ชจ๋๊ฐ ํ๋ณตํ์ต๋๋ค. ์ด๋ ํ์ฐฝํ ๋ , ๊ฒฝ์์ง์ ๋ชจ๋ ์ฌ์ดํธ ๊ฐ์ ๊ณตํต ํ๋ ์ผ์ ์ธ ์์ ์ ์ค์ ํ์ต๋๋ค!
์ ์ฌ ์๋
์ฒ์์๋ Kerio ๋ถ์ฐ ๋ฉ์ผ ๋๋ฉ์ธ์ ๋์ด๋ ๊ฒ์ด ์์ด๋์ด์์ผ๋ฉฐ ๋ชจ๋ ์์ ์ ์์ฒด์ ์ผ๋ก ์ํํ์ต๋๋ค. ๋งํ์๋ง์ ๋ถ์ฐ ๋๋ฉ์ธ์ด ์์ฑ๋์์ง๋ง ๊ทธ๋ ์ง ์์์ต๋๋ค. ์๋ฒ๋ ๋์ผํ ์๋ฒ์ ์๋ ๋๋ฉ์ธ ๊ฐ์ ์บ๋ฆฐ๋, ํด๋, ์ฐ๋ฝ์ฒ๋ฅผ ๋๊ธฐํํ ์ค๋น๊ฐ ๋์์ง๋ง ์ฌ๋ฌ ๋๋ฉ์ธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ํ ๋๊ธฐํํ์ง ์์์ต๋๋ค. ์๋ฒ.
๋ฌผ๋ก ๋๋ ๊ทธ๋ฌํ ์บ์น๋ฅผ ๊ธฐ๋ํ์ง ์์์ผ๋ฉฐ ์ค๋ซ๋์ ํ์ํ ๊ธฐ๋ฅ์ด ๋๋ฝ๋์๋ค๋ ๊ฒ์ ๋ฏฟ์ ์ ์์์ต๋๋ค. ๋์ค์ ๋๋ ์ด ์ฌ์ค์ ๋ํ ๊ธฐ๋ก์ ์ธ ์ฆ๊ฑฐ๋ฅผ ์ฐพ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๋ํด ๋งค์ฐ ๋นํฉํ๊ณ ์ค๋งํ์ต๋๋ค.
์์ ์ ์์กฐ๋กญ๊ฒ ๋ฌธ์ ๋ก ๋ฐ๋์์ต๋๋ค.
์ต์ ์ ๋ฌด์์ด์๋์?
- ์ผ๋ถ ํ์ฌ ์ํํธ์จ์ด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ์๋ก ๋ค๋ฅธ ์๋ฒ์ ๋ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ญ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ํ์ฌ ์ํํธ์จ์ด๋ฅผ ์ฐพ์์ผ ํ์ต๋๋ค. ์ ๋ ๊ทธ๋ฐ ๊ฐํด๋ฅผ ์ข์ํ์ง ์์ง๋ง ์ด๊ฒ์ด ์ ์ผํ ๋น ๋ฅธ ์๋ฃจ์ ์ธ ๊ฒ ๊ฐ์์ต๋๋ค.
- ์๋ฒ ๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์์ฑํ์ธ์. ์ฌ์ค Kerio๋ ๊ฐ ๊ฐ์ฒด๋ฅผ ๋ณ๋์ ํ์ผ๋ก ์ ์ฅํ๋ฏ๋ก ํ์ผ ์์ ์ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ๋ฐํด์ผ ํ์ง๋ง ์์ค ์๊ฐ ์ถฉ๋ถํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ํนํ ์ฌ๋ฌ ์์ ์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์์ ์ด ๋ค์ ๋ณต์กํด ๋ณด์์ต๋๋ค. ๋์ผํ ๊ธฐ๊ฐ์ ๋๊ตฐ๊ฐ๊ฐ ์์ ์ ์์ฑํ ๊ฒฝ์ฐ ๋ฑ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ํ์ธํฉ๋๋ค.
์์ผ๋ก๋ Kerio๊ฐ ๊ฐ์ฒด๋ฅผ ๋ณ๋์ ํ์ผ๋ก ์ ์ฅํ์ง๋ง ๊ฐ์ฒด์ ์ ๊ทผํ ๋๋ง๋ค ํ์ผ ์์คํ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ฌผ์ด๋ณด๋ ๊ฒ์ ๊ทธ๋ ๊ฒ ์ด๋ฆฌ์์ ์ผ์ ์๋๋ผ๊ณ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ง์ ์๊ฐ์ ์๊ฐํ๊ณ "์ ์ ์ํ ๋ฅผ ์ ๋ นํ๋ ค๋"๊ณํ์ด ์ ํ ์ฌ๋ฌ ์ฅ์ ์ข ์ด๋ฅผ ์์ฑํ๋ฉด์ 6์์ ๋๋ ๋ ๊ฐ์ง ์ฌ๋ฐ๋ฅธ ๊ฒฐ์ ์ ๋ด ๋ ธ์ต๋๋ค.
- ์ฒซ ๋ฒ์งธ ๊ฒฐ์ ์ ์์ ์ ์ผ์ ํ๊ณ ์ธ๋ถ์์ ์๋ฌด๊ฒ๋ ์ฐพ์ง ์๋ ๊ฒ์ ๋๋ค.
- ๋ ๋ฒ์งธ ํด๊ฒฐ์ฑ ์ ์ ์ ์๋ ๊ฒ์ ๋๋ค.
์ด๋ฏธ ์์นจ์ ๋๋ ๋จ ํ๋์ ์ง์ค๋ ์๊ฐ์ผ๋ก ์ผ์ด๋ฌ๋๋ฐ, ๊ทธ ์๊ฐ์ ๋ช ๊ธ์๋ก ์ค์ด๋ค์์ต๋๋ค - DFS
๊ฒฐ์
์๋ฃจ์ ์์ฒด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
- ๋๊ธฐํ์ ์ฐธ์ฌํ ๋ชจ๋ ์๋ฒ๋ฅผ OS Windows๋ก ๊ฐ์ ธ์ต๋๋ค. (์ผ๋ถ๋ Linux์ ์์์ต๋๋ค. ๋ฉ์ผ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ OS๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ์ต๋๋ค.)
- ๋๊ธฐํ์ ์ฐธ์ฌํ ๋๋ ํฐ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ค์ ๋์ผํด์ผ ํฉ๋๋ค.
- ๋จ์ผ DFS ๊ณต๊ฐ์ ์ฌ์ฉํ์ฌ ํ๋์ ๋๋ฉ์ธ ์๋ ๋ชจ๋ ๋ฉ์ผ ์๋ฒ๋ฅผ ์ ์ํฉ๋๋ค.
- ์ ๊ฒฝ์ฐ์๋ ์๋ฒ ๊ฐ๋ฟ๋ง ์๋๋ผ ๋๋ฉ์ธ ๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์์์ ์ธ๊ธํ ๋ถ์ฐ Kerio ๋๋ฉ์ธ์ ์์ฑํฉ๋๋ค. ๋ ๋ฒ์งธ๋ Kerio ์๋ฒ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. (์ฒซ๋ฒ์งธ์๋ ๋ค๋ฅด๊ฒ)
- ๋๊ธฐํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ DFS ๊ณต๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
- ์ด๋ค ์ข ๋ฅ์ ๋ชฉ๋ฐ์ ์๊ฐํด ๋ด์ญ์์ค (๊ฒฐ๊ตญ ๋ชฉ๋ฐ ์์ด๋ ์ด ์ ์์ต๋๋ค)
ะ ะตะฐะปะธะทะฐัะธั
๋ ๊ฐ์ ๋ฉ์ผ ์๋ฒ์ ๋ํ ์(์๋ง๋ ๊ทธ ์ด์)
1. Kerio ๋ถ์ฐ ๋๋ฉ์ธ
๋ง์คํฐ๋ ๋๊ธฐํ์ ์ฐธ์ฌํ์ง ์์ง๋ง ์ด๋ ํ์ ์กฐ๊ฑด์ ์๋๋๋ค.
Kerio ๋ถ์ฐ ๋๋ฉ์ธ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ์ง ์๊ฒ ์ต๋๋ค. ๋ณต์กํ ๊ฒ์ ์์ต๋๋ค. ๊ณต์์ ๊ณต๋ถํ ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๋ก ๊ด๋ฆฌ ์ฝ์์ ๋ค์ ์ด๋ฏธ์ง๊ฐ ํ์๋ฉ๋๋ค.
๋ค์์ผ๋ก ๊ณต์ ํด๋์ ๊ด์ฌ์ด ์์๋๋ฐ ๋ง์คํฐ ์๋ฒ์์ ๋ค์ ์ต์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
๊ฐ ๋๋ฉ์ธ์ ๋ํ ํน์ - ์๋ฒ๋ ๋๋ฉ์ธ ๊ฐ์ ๊ณต์ฉ ํด๋๋ฅผ ๋๊ธฐํํ์ง ์์ต๋๋ค.
๋ชจ๋ ๋๋ฉ์ธ์ ๊ณตํต - ๋ชจ๋ ์๋ฒ๋ ๊ฐ ๋๋ฉ์ธ์ ๊ธฐ์กด ๊ณต์ฉ ํด๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ๊ฐ ๋ฉ์ผ ์๋ฒ์ ๋ชจ๋ ๋๋ฉ์ธ์ ๋ํด ์๋ก์ด ๋จ์ผ ํด๋๋ฅผ ๋ง๋ญ๋๋ค.
๊ฒฝ๊ณ ! ์ด ์ต์ ์ ๋ชจ๋ ์๋ฒ์ ๊ตฌ์ฑ ์ ์ฑ ์ ๋ณ๊ฒฝํ์ง๋ง ๊ฐ ์๋ฒ์์ ๋ณ๋๋ก ๋๊ธฐํํฉ๋๋ค(์ฆ, ๋จ์ผ ๊ณตํต ๊ณต๊ฐ์ด ์์).
๊ด๋ฆฌ์๋ ์ฌ์ ํ ์ฌ์ฉ์ ๊ฐ์ ์ก์ธ์ค๋ฅผ ๋ถ๋ฐฐํ ์ ์์ต๋๋ค.
๋ด ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๋ด ๊ฒ์ด๊ณ ๊ฐ ์๋ฒ์์ ๋๊ธฐํ๊ฐ ํ์ํ ๋์ผํ ๋๋ฉ์ธ ์ธํธ๋ฅผ ์์ฑํด์ผ ํ๋ ์ ์ฒด ๋๊ธฐํ๊ฐ ํ์ํฉ๋๋ค(๊ทํ์ ๊ฒฝ์ฐ ์๋ฃจ์
์ด ๋ค๋ฅผ ์ ์์).
2. Kerio ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ
์ด์ ๊ฐ ์๋ฒ์์ ๋๊ธฐํํด์ผ ํ๋ ๋์ผํ ๊ณต์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํด๋, ๋ฌ๋ ฅ, ์ฐ๋ฝ์ฒ.
์กฐ์ธ - ์์ด๋ก ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ์ธ์. ๋ผํด์ด๋ก ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๋ฉด ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ด ์ดํดํ ์ ์๋ ์ธ์ฝ๋ฉ์ผ๋ก ํ์๋ฉ๋๋ค. ์ด๋ ์ ์ด๋ ๋ถํธํฉ๋๋ค.
์ด์ ๊ฐ ์๋ฒ์์ ๋ฉ์ผ ํด๋์ ์ค์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค.
๋ชจ๋ ๋๋ฉ์ธ์ ๊ณตํต ~DataMailmail#publicะกะธะฝั
ัะพะฝะธะทะธััะตะผัะน ะบะฐัะฐะปะพะณ#msgs
๊ฐ ๋๋ฉ์ธ์ ๋ํ ํน์ ~DataMailmail**Domain**#publicะกะธะฝั
ัะพะฝะธะทะธััะตะผัะน ะบะฐัะฐะปะพะณ#msgs
์ ์ฒด ๋๋ ํฐ๋ฆฌ๋ฅผ ๋๊ธฐํํ์ง ์๊ณ ๋ฐ์ดํฐ๊ฐ ์๋ ์ปจํ ์ด๋๋ง ๋๊ธฐํํฉ๋๋ค. #msgs โ ๊ฐ์ฒด ์์ฒด๋ ์ฌ๊ธฐ์ ์ ์ฅ๋๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ฐ ์๋ฒ๋ง๋ค ๋ณ๋๋ก ์ ์ฅ๋์ด์ผ ํฉ๋๋ค.
3.DFS
DFS ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ์ง ์๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ณด๋ ์ถฉ๋ถํฉ๋๋ค.
DFS๋ ์๋ก ๋ค๋ฅธ ์๋ฒ์ ์๋ ๊ณต์ ํด๋๋ฅผ ๊ฒฐํฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Windows Server์ ์ญํ ์๋น์ค์
๋๋ค.
DFS๋ฅผ ์ค์ ํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ๋๊ธฐํ์ ์ฐธ์ฌํ ๋ชจ๋ ๋ฉ์ผ ์๋ฒ๋ฅผ ์ค์งํด์ผ ํฉ๋๋ค.
์ค์ ์ด ์๋ฃ๋๋ฉด ๋๊ธฐํ๋ ๊ฐ ํด๋์ ๋ํด ๋ค์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
๋น์ฐํ ๋ณต์ ๋ ํด๋๋ฅผ ๊ฒ์ํ ํ์๋ ์์ต๋๋ค.
๋ณต์ ๊ฐ ๋ฐ์ํ ํ(๋ณต์ ํ ํน๋ณํ ํญ๋ชฉ์ด ์์ผ๋ฉฐ ํด๋๊ฐ ๋น์ด ์์) ๋ฉ์ผ ์๋ฒ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก ๋ฉ์ผ ์๋ฒ ์ค ํ๋๋ฅผ ๋ฐ์ดํฐ๋ก ์ฑ์ฐ๊ณ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณต์ ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
4. ๋ฒํ๋ชฉ
๋ฐ์ฌ์ ๋ํ ์ค๋ช
๋ฐ์ดํฐ ๋๊ธฐํ๊ฐ ์์๋ ํ(DFS) ๋ณผ ์ ์๋ฏ์ด ์ฒซ ๋ฒ์งธ ์๋ฒ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ์๋ฒ์๋ ์๋ฌด๊ฒ๋ ๋ํ๋์ง ์๊ฑฐ๋ ๋ํ๋์ง๋ง ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
์ ๋งํ์ง ๋ง์ญ์์ค. ๋ฌผ๋ก ์กฐ๋ง๊ฐ ๋ํ๋ ๊ฒ์ด์ง๋ง, ์กฐ๋ง๊ฐ ๋ํ๋๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. 6~12์๊ฐ์ด๋ฉด ๋๋ฌด ๋ฆ๊ธฐ ๋๋ฌธ์ด์ฃ .
๋ฌธ์ ๋ ์ฒซ ๋ฒ์งธ ์๋ฒ, ๋ ๋ฒ์งธ ๋ฐ ํ์ ์๋ฒ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ฑํ์๋ง์ DFS ์์คํ ๋๋ถ์ ํ์ผ์ด ์ฆ์ ํ์๋์ง๋ง ์ด์ ์ ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ ์ด ๋ฉ์ผ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฝ์ ๊ฒฝ์ฐ์ ๋๋ค. ๋ค์ ์์ฒญ๋๋ฉด ์๋ฒ๋ #msgs ํด๋๋ฅผ ๋ค์ ์ฝ์ง ์๊ณ ์์ฒด ์์ธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ผ ๊ฒ์ ๋๋ค. ์ด๋ ๋ ์ด์ ํ์ค๊ณผ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค.
Kerio์๋ ์์ธ์ ๋ค์ ์ฝ๋ ๋ฉ์ปค๋์ฆ์ด ์์ง๋ง ์ฝ 6์๊ฐ ์์ ์๋ํ ์ ์์ผ๋ฉฐ ์ด XNUMX์๊ฐ ๋์ ๋ฌ๋ ฅ์์ ์์
์ ๊ด๋ จ์ฑ์ด ๋ค์ ์์ค๋ ์ ์์ต๋๋ค.
์ง๊ธ ๋๊ธฐํ๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋ฉ์ผ ์๋ฒ์ ํด๋์ ๋ค์ ์ก์ธ์คํ ํ ํด๋น ๋๊ธฐํ ๋๋ ํฐ๋ฆฌ index.fld์์ ํ์ผ์ ์ญ์ ํ ์ ์์ต๋๋ค. ์ด ํ์ผ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ Kerio๋ ๋๋ ํฐ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ฝ์ต๋๋ค. ๋ํ๋ ๊ฑฐ์ผ. ์ด๊ฒ์ด ํด๊ฒฐ์ฑ
์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ์ผ์ ์ญ์ ํ์ง๋ง ๋งค๋ฒ ์๋ํ์ง ์๊ณ ์ฒ์์๋ง ์๋ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Kerio๋ ์ด๋ค ์ด์ ๋ก index.fld์ ๋ํ ๋ชจ๋ ๊ด์ฌ์ ์์ต๋๋ค.
๋ํ ์ฌ์ฉ์๊ฐ ์ดํดํ ์ ์๋ ์ผ์ข
์ ์์ธ์ ๊ดํ ๋ฉ์์ง์ ์ด๋ฏธ ๊ทธ๊ณณ์์ ๋ญ๊ฐ๋ฅผ ํ๊ณ ์๋ค๋ ๋ฉ์์ง๋ฅผ ๋ฑ์ด๋ด๊ธฐ ์์ํฉ๋๋ค.
๋ฌด์ธ๊ฐ๋ฅผ ์์ฑํ๋ ๋ ๋ค๋ฅธ ์ต์ ์ด ์์ต๋๋ค. ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์๊ฐ ์๋ฒ๋ ํ ๋นํ๋ ค๋ ํ์ผ ์ด๋ฆ์ด ์ด๋ฏธ ์ฌ์ฉ๋์๋ค๋ ๊ฒ์ ๊ฐ์๊ธฐ ๊นจ๋ซ์ง๋ง ๋๋ฉ์ด์ฒ๋ผ ๋ถ์ด๋๋ฉฐ ์ด๋ ๋ง๋ค๋ฅธ ์ต์ ์ ๋๋ค.
๊ทธ๋ฐ ์ผ์ด ์ด๋ป๊ฒ ๋ ์ ์์ต๋๊น?
์ด๋ฏธ ์ฐ๋ฆฌ์๊ฒ ์ต์ํ ๊ทธ๋ฆผ์ ๋ค์ ํ ๋ฒ ์ฃผ๋ชฉํ๋ค๋ฉด.
ํ์ง๋ง ๋ค๋ฅธ ํ๋ฉด์์๋ ์ง๊ธ ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๋ฒํผ์ ๋ณผ ์ ์์ต๋๋ค. ํด๋ ์ฌ์์ธ
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก. ๋๊ธฐํ๋ #msgs์์ ์ด๋ฏธ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ชจ๋ฅด๋ ๋ฉ์ผ ์๋ฒ์์ ์ด ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์์ ์ ์ด๊ณ ๋น ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์จ๊ฒจ์ง ๋ชจ๋ ๊ฒ์ด ๋ถ๋ช ํด์ง ๊ฒ์ ๋๋ค.
๋ก๊ทธ์์ ์ด ํ๋ก์ธ์ค์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์์ฒ(15)๊ฐ์ ๋ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ ์ฝ 3-4๋ถ์ด ์์๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ ํ์ํ ๋ ์ด ๋ฒํผ์ ์ค์ ๋ก ๋๋ฅด๋ ๋ฐฉ๋ฒ์ ์์๋ด๋ ๊ฒ๋ฟ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ฐํ์ก๋ค Kerio ์์ ์ API
์ฐ๋ฆฌ ์์
์ ์ํํ๋ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
session = callMethod("Domains.checkPublicFoldersIntegrity",{}, token)
์์ ๋ชจ๋ ๊ฒ ์ค์์ ๊ด์ฌ ์๋ ํด๋์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ํํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋๋ ๋ค์ํ ๊ฒ์ฌ๋ฅผ ์ํํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฒ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ผ๋ฉฐ ํ์ผ ์์ ๋ฐ๋ผ ๋ชจ๋ ๊ฒฐ๋ก ์ ๋์ถํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ํํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
์คํฌ๋ฆฝํธ ๊ตฌํ
CMD ์คํฌ๋ฆฝํธ ์์ ๋ฐ ์ค๋ช
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
๊ฐ ๋ฉ์ผ ์๋ฒ์์ ์คํฌ๋ฆฝํธ ๋ณต์ฌ๋ณธ์ด ์คํ๋ฉ๋๋ค. (์๋น์ค๋ก ์ฌ์ฉ ๊ฐ๋ฅ, Adm ๊ถํ์ด ํ์ํ์ง ์์)
์คํฌ๋ฆฝํธ๊ฐ ํ์ผ์ ์ฝ์ต๋๋ค. Setup%Computername%.List
์ฌ๊ธฐ์ %Computername%์ ํ์ฌ ์๋ฒ์ ์ด๋ฆ์ ๋๋ค. ๋๋ ํฐ๋ฆฌ์๋ ๋ชจ๋ ์๋ฒ ๋ชฉ๋ก์ด ๋์์ ํฌํจ๋ ์ ์์ต๋๋ค.
%Computername%.List ํ์ผ โ ๋๊ธฐํ๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ฉฐ, ๊ฐ ๊ฒฝ๋ก๋ ์ ์ค์ ์์ฑ๋๋ฉฐ ๋น ์ค์ ํฌํจํ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์คํ ํ ์คํฌ๋ฆฝํธ๋ ํ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ธ๋ฑ์ฑ ์ ์ฐจ๋ฅผ ์ํํ๊ณ ๊ฐ ๋๊ธฐํ ๋๋ ํฐ๋ฆฌ์ ํ์ผ ์์ ๋ํ ์ธ๋ฑ์ค๋ ์์ฑํฉ๋๋ค.
์คํฌ๋ฆฝํธ์ ๋ชฉ์ ์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ํ์ผ ์๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ๋๋ค.
๊ฐ ๋๋ ํฐ๋ฆฌ ๊ณ์ฐ์ด ๋๋๋ฉด ์ ์ด๋ ํ๋์ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ์ ํ์ฌ ๊ฐ์ด ์ด์ ๊ฐ๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๋ ๋๊ธฐํ๋ ๋ฉ์ผ ๋๋ ํฐ๋ฆฌ์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค. index.fld, indexlog.fld, search.fld
๊ณต์ ๋ฉ์ผ ํด๋์ ์์ธ ์์ฑ ํ๋ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค.
์์ ์คํ์ ๋ํ ์ ๋ณด๋ LOG ๋๋ ํฐ๋ฆฌ์ ๋คํ๋ฉ๋๋ค.
์ธ๋ฑ์ฑ ํ๋ก์ธ์ค
์ธ๋ฑ์ฑ ํ๋ก์ธ์ค๋ Kerio API ๊ธฐ๋ฅ ์คํ์ผ๋ก ์ด์ด์ง๋๋ค.
์ธ์
= callMethod("Domains.checkPublicFoldersIntegrity",{}, ํ ํฐ)
๊ตฌํ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. โ 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)
๋ํ ํ์ผ์์ ๋ฉ์ผ ์๋ฒ์ ์ด ๊ธฐ๋ฅ(Adm - ๊ณต์ฉ ๋ฉ์ผ ํด๋)์ ์ํํ ์ ์๋ ๊ถํ์ด ์๋ ๊ณ์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
๋ด ๊ธฐ์ฌ๊ฐ Kerio Connect ๊ด๋ฆฌ์์๊ฒ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ถ์ฒ : habr.com