ื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืกื™ืกืžืื•ืช ื‘-Zimbra

ืœืฆื“ ื”ืฆืคื ืช ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™ ื•ืฉื™ืžื•ืฉ ื‘ื—ืชื™ืžื•ืช ื“ื™ื’ื™ื˜ืœื™ื•ืช, ืื—ืช ื”ื“ืจื›ื™ื ื”ื™ืขื™ืœื•ืช ื•ื”ื—ืกื›ื•ื ื™ื•ืช ื‘ื™ื•ืชืจ ืœื”ื’ืŸ ืขืœ ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™ ืžืคื ื™ ืคืจื™ืฆื” ื”ื™ื ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืกื™ืกืžืื•ืช ื˜ื•ื‘ื”. ืกื™ืกืžืื•ืช ื›ืชื•ื‘ื•ืช ืขืœ ื ื™ื™ืจ, ืžืื•ื—ืกื ื•ืช ื‘ืงื‘ืฆื™ื ืฆื™ื‘ื•ืจื™ื™ื, ืื• ืคืฉื•ื˜ ืœื ืžืกืคื™ืง ื—ื–ืงื•ืช ื”ืŸ ืชืžื™ื“ ืคืจืฆืช ืื‘ื˜ื—ื” ื’ื“ื•ืœื” ื‘ืืจื’ื•ืŸ ื•ืขืœื•ืœื•ืช ืœื”ื•ื‘ื™ืœ ืœืื™ืจื•ืขื™ื ื—ืžื•ืจื™ื ืขื ื”ืฉืœื›ื•ืช ืขืกืงื™ื•ืช ืžื•ื—ืฉื™ื•ืช. ื–ื• ื”ืกื™ื‘ื” ืฉืœื›ืœ ืืจื’ื•ืŸ ืฆืจื™ื›ื” ืœื”ื™ื•ืช ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืกื™ืกืžืื•ืช ืงืคื“ื ื™ืช.

ื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืกื™ืกืžืื•ืช ื‘-Zimbra

ืขื ื–ืืช, ื›ืœ ืงืฆื™ืŸ ืื‘ื˜ื—ื” ื™ื•ื“ืข ืฉืžื“ื™ื ื™ื•ืช ืกื™ืกืžืื•ืช ืชื‘ื™ื ืœืชื•ืฆืื•ืช ืจืง ืื ื”ื™ื ืœื ืจืง ืงื™ื™ืžืช, ืืœื ืชื™ืฉืžืจ ื‘ืงืคื“ื ื•ืช ืขืœ ื™ื“ื™ ื›ื•ืœื, ืื• ืœืคื—ื•ืช ืขืœ ื™ื“ื™ ืขื•ื‘ื“ื™ ืžืคืชื— ื‘ืืจื’ื•ืŸ. ืœื”ืฉื™ื’ ื–ืืช ืงืฉื” ื™ื•ืชืจ ืžืžื” ืฉื–ื” ื ืจืื”. ืขื•ื‘ื“ื™ื ื›ื‘ืจ ืขืžื•ืกื™ื ื‘ื›ื‘ื“ื•ืช ืฉื•ื›ื—ื™ื ื›ืœ ื”ื–ืžืŸ ืžื”ืฆื•ืจืš ืœืฉื ื•ืช ืืช ื”ืกื™ืกืžื”, ืื• ืœืœื›ืช ื‘ื“ืจืš ืฉืœ ื”ื”ืชื ื’ื“ื•ืช ื”ืงื˜ื ื” ื‘ื™ื•ืชืจ, ื›ืœ ืคืขื ื”ื•ืคื›ื™ื ืืช ื”ืกื™ืกืžื” ืœืงืœื” ื•ืคืฉื•ื˜ื” ื™ื•ืชืจ, ื•ื‘ื›ืš ืžื‘ื˜ืœ ืืช ื›ืœ ื”ืืคืงื˜. ืœื›ืŸ ื ื•ืฉื ื”ืฆื™ื•ืช ืœืžื“ื™ื ื™ื•ืช ื”ืกื™ืกืžืื•ืช ื‘ืืจื’ื•ื ื™ื ื ืคืชืจ ื‘ื“ืจืš ื›ืœืœ ื‘ืืžืฆืขื™ื ื˜ื›ื ื™ื™ื ืฉื•ื ื™ื.

Zimbra ืื™ื ื” ื“ื•ืจืฉืช ื™ื™ืฉื•ืžื™ ืฆื“ ืฉืœื™ืฉื™ ื›ื“ื™ ืœืื›ื•ืฃ ืืช ืžื“ื™ื ื™ื•ืช ื”ืกื™ืกืžืื•ืช. ื ื™ืชืŸ ืœื”ืฉื™ื’ ื–ืืช ื‘ืืžืฆืขื•ืช ื›ืœื™ื ืžื•ื‘ื ื™ื.

ืจืืฉื™ืช, ื›ื“ืื™ ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืคื•ืขืœ ื ื™ื”ื•ืœ ืกื™ืกืžืื•ืช ื‘-Zimbra. ื›ืืฉืจ ื—ืฉื‘ื•ืŸ ื—ื“ืฉ ื ื•ืฆืจ, ื”ื•ื ืžืงื‘ืœ ืกื™ืกืžื” ื–ืžื ื™ืช ืขืœ ื™ื“ื™ ืžื ื”ืœ ื”ืžืขืจื›ืช. ืœืื—ืจ ืžื›ืŸ, ื”ืžืฉืชืžืฉ ื™ื•ื›ืœ ืœื”ื™ื›ื ืก ื‘ืื•ืคืŸ ืขืฆืžืื™ ืœื—ืฉื‘ื•ืŸ ื•ืœืฉื ื•ืช ืืช ื”ืกื™ืกืžื”. ื›ืœ ื”ืกื™ืกืžืื•ืช ื ืฉืžืจื•ืช ื‘ืฆื•ืจื” ืžื•ืฆืคื ืช ื‘ืฉืจืช ืขื ื–ื™ืžื‘ืจื” ื•ื‘ืฉืœ ื›ืš ื”ืŸ ืื™ื ืŸ ื ื’ื™ืฉื•ืช ืืคื™ืœื• ืœืžื ื”ืœ ื”ืฉืจืช. ื–ื• ื”ืกื™ื‘ื” ืฉืื ื”ืžืฉืชืžืฉ ื™ืฉื›ื— ืืช ื”ืกื™ืกืžื”, ื”ื•ื ื™ืฆื˜ืจืš ืœื™ืฆื•ืจ ืกื™ืกืžื” ื—ื“ืฉื”. ื ื–ื›ื™ืจ ืฉืขื“ ืœืื—ืจื•ื ื”, ื™ืฆื™ืจืช ืกื™ืกืžื” ื—ื“ืฉื” ื“ืจืฉื” ื”ืฉืชืชืคื•ืช ืฉืœ ืžื ื”ืœ ืžืขืจื›ืช, ืืš ื”ื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ ืฉืœ Zimbra Creative Suite 8.8.9 ื”ื•ืกื™ืคื” ืœืžืฉืชืžืฉื™ื ืืคืฉืจื•ืช ืœื”ื’ื“ื™ืจ ืกื™ืกืžื” ื—ื“ืฉื” ื‘ืขืฆืžื.

ื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืกื™ืกืžืื•ืช ื‘-Zimbra
ื ื™ืชืŸ ืœืžืฆื•ื ืืช ื”ื’ื“ืจื•ืช ืžื“ื™ื ื™ื•ืช ื”ืกื™ืกืžื” ื‘ื”ื’ื“ืจื•ืช ืขื‘ื•ืจ ืžืฉืชืžืฉื™ื ื‘ื•ื“ื“ื™ื ื•ืงื‘ื•ืฆื•ืช ืžืฉืชืžืฉื™ื. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ:

  • ืื•ืจืš ืกื™ืกืžื” - ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืืช ืื•ืจืš ื”ืกื™ืกืžื” ื”ืžื™ื ื™ืžืœื™ ื•ื”ืžืงืกื™ืžืœื™. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืื•ืจืš ื”ืกื™ืกืžื” ื”ืžื™ื ื™ืžืœื™ ื”ื•ื 6 ืชื•ื•ื™ื ื•ื”ืžืงืกื™ืžื•ื ื”ื•ื 64.
  • ื”ื–ื“ืงื ื•ืช ื”ืกื™ืกืžื” - ืžืืคืฉืจืช ืœื”ื’ื“ื™ืจ ืืช ื”ื–ืžืŸ ืฉืื—ืจื™ื• ื”ืกื™ืกืžื” ืœื ืชืงืคื”. ื”ืžืฉืชืžืฉื™ื ืœื ืฆืจื™ื›ื™ื ืœื—ื›ื•ืช ืœืชื•ืงืฃ ื”ืกื™ืกืžื”, ื ื™ืชืŸ ืœืฉื ื•ืช ืื•ืชื ืœืคื ื™ ืฉื”ืกื™ืกืžื” ื™ืคื•ื’
  • ืžื™ื ื™ืžื•ื ืื•ืชื™ื•ืช ืจื™ืฉื™ื•ืช - ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืื•ืชื™ื•ืช ืจื™ืฉื™ื•ืช ื‘ืฉื™ืžื•ืฉ ื‘ืกื™ืกืžื”
  • ืžื™ื ื™ืžื•ื ืชื•ื•ื™ื ืงื˜ื ื™ื - ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืชื•ื•ื™ื ืงื˜ื ื™ื ื‘ืฉื™ืžื•ืฉ ื‘ืกื™ืกืžื”
  • ืžื™ื ื™ืžื•ื ืชื•ื•ื™ื ืžืกืคืจื™ื™ื - ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืกืคืจื•ืช ืž-0 ืขื“ 9 ื‘ืฉื™ืžื•ืฉ ื‘ืกื™ืกืžื”
  • ืกื™ืžื ื™ ืคื™ืกื•ืง ืžื™ื ื™ืžืœื™ื™ื - ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืกื™ืžื ื™ ืคื™ืกื•ืง ื•ืชื•ื•ื™ื ืžื™ื•ื—ื“ื™ื ื”ืžืฉืžืฉื™ื ื‘ืกื™ืกืžื”
  • ืื›ื™ืคืช ื”ื™ืกื˜ื•ืจื™ื™ืช ืกื™ืกืžืื•ืช - ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืืช ืžืกืคืจ ื”ืกื™ืกืžืื•ืช ืœื–ื›ื•ืจ ื›ืš ืฉื”ืžืฉืชืžืฉ ืœื ื™ืฉืชืžืฉ ืžื“ื™ ืคืขื ื‘ืกื™ืกืžืื•ืช ื—ื•ื–ืจื•ืช
  • ืกื™ืกืžื” ื ืขื•ืœื” - ืืคืฉืจื•ืช ื–ื• ืžืืคืฉืจืช ืœืžื ื•ืข ืžื”ืžืฉืชืžืฉ ืœืฉื ื•ืช ืืช ื”ืกื™ืกืžื”
  • ืืคืฉืจ ื ืขื™ืœืช ื›ื ื™ืกื” ื ื›ืฉืœื” - ืืคืฉืจื•ืช ื–ื• ืžืืคืฉืจืช ืœืš ืœื”ื’ื“ื™ืจ ืืช ืชื’ื•ื‘ืช ื”ืžืขืจื›ืช ืœื”ื–ื ืช ืกื™ืกืžื” ืฉื’ื•ื™ื”

ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช, ื”ื’ื“ืจื•ืช ื”ืกื™ืกืžื” ื‘-Zimbra ื”ืŸ ื“ื™ ื’ืžื™ืฉื•ืช ื•ืžืกื•ื’ืœื•ืช ืœื”ืชืื™ื ืืช ืขืฆืžืŸ ืœืžื“ื™ื ื™ื•ืช ื”ืกื™ืกืžืื•ืช ื›ืžืขื˜ ื‘ื›ืœ ืืจื’ื•ืŸ. ื‘ื ื•ืกืฃ, ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ ืคืฉื•ื˜, ืชื•ื›ืœื• ืœืฉืœื•ื— ืชื–ื›ื•ืจื•ืช ืœืžืฉืชืžืฉื™ื ืฉื”ืกื™ืกืžื” ืฉืœื”ื ืขื•ืžื“ืช ืœืคื•ื’. ื”ื•ื“ื•ืช ืœืชื–ื›ื•ืจืช ื›ื–ื•, ื”ืขื•ื‘ื“ ื™ื•ื›ืœ ืœื”ื—ืœื™ืฃ ืืช ื”ืกื™ืกืžื” ื‘ืื•ื•ื™ืจื” ื ื™ื ื•ื—ื”, ื‘ืขื•ื“ ืฉื”ื“ื•ืืจ ืฉืœื ื ืคืชื— ื‘ื‘ื•ืงืจ ืืฆืœ ื”ืขื•ื‘ื“ ืฉื”ื—ืžื™ืฅ ืืช ืจื’ืข ื”ื—ืœืคืช ื”ืกื™ืกืžื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื™ืขื™ืœื•ืชื•.

ื›ื“ื™ ืฉื”ืกืงืจื™ืคื˜ ื”ื–ื” ื™ืขื‘ื•ื“, ืขืœื™ืš ืœื”ืขืชื™ืง ืื•ืชื• ืœืงื•ื‘ืฅ ื•ืœื”ืคื•ืš ืืช ื”ืงื•ื‘ืฅ ืœื ื™ืชืŸ ืœื”ืคืขืœื”. ืžื•ืžืœืฅ ืœื”ืคื•ืš ืืช ื‘ื™ืฆื•ืข ื”ืกืงืจื™ืคื˜ ื”ื–ื” ืœืื•ื˜ื•ืžื˜ื™ ื‘ืืžืฆืขื•ืช Cron ื›ืš ืฉื™ื•ื“ื™ืข ืœืžืฉืชืžืฉื™ื ืฉืœื ืขื“ื›ื ื• ืืช ื”ืกื™ืกืžื” ืฉืœื”ื ืžื“ื™ ื™ื•ื ืฉื”ื•ื ื™ืคืกื™ืง ืœืคืขื•ืœ ื‘ืงืจื•ื‘. ื‘ื ื•ืกืฃ, ื‘ืกืงืจื™ืคื˜, ื‘ืžืงื•ื zimbra.server.com, ืขืœื™ืš ืœื”ื—ืœื™ืฃ ืืช ืฉื ื”ื“ื•ืžื™ื™ืŸ ืฉืœืš.

#!/bin/bash
# ะ—ะฐะดะฐะตะผ ั€ัะด ะฟะตั€ะตะผะตะฝะฝั‹ั…:
# ะกะฟะตั€ะฒะฐ ะบะพะปะธั‡ะตัั‚ะฒะพ ะดะฝะตะน ะดะปั ะฟะตั€ะฒะพะณะพ ะฝะฐะฟะพะผะธะฝะฐะฝะธั, ะทะฐั‚ะตะผ ะดะปั ะฟะพัะปะตะดะฝะตะณะพ:
FIRST="3"
LAST="1"
# ะ—ะฐะดะฐะตะผ ะฐะดั€ะตั ะพั‚ะฟั€ะฐะฒะธั‚ะตะปั:
FROM="[email protected]"
# ะ—ะฐะดะฐะตะผ ะฐะดั€ะตั ะฟะพะปัƒั‡ะฐั‚ะตะปั, ะบะพั‚ะพั€ั‹ะน ะฑัƒะดะตั‚ ะฟะพะปัƒั‡ะฐั‚ัŒ ะฟะธััŒะผะพ ัะพ ัะฟะธัะบะพะผ ะฐะบะบะฐัƒะฝั‚ะพะฒ ั ะธัั‚ะตะบัˆะธะผะธ ะฟะฐั€ะพะปัะผะธ
ADMIN_RECIPIENT="[email protected]"
# ะฃะบะฐะทั‹ะฒะฐะตะผ ะฟัƒั‚ัŒ ะบ ะธัะฟะพะปะฝัะตะผะพะผัƒ ั„ะฐะนะปัƒ Sendmail
SENDMAIL=$(ionice -c3 find /opt/zimbra/common/sbin/sendmail* -type f -iname sendmail)
# ะŸะพะปัƒั‡ะฐะตะผ ัะฟะธัะพะบ ะฒัะตั… ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะน.
USERS=$(ionice -c3 /opt/zimbra/bin/zmprov -l gaa $DOMAIN)
# ะฃะบะฐะทั‹ะฒะฐะตะผ ะดะฐั‚ัƒ ั ั‚ะพั‡ะฝะพัั‚ัŒัŽ ะดะพ ัะตะบัƒะฝะดั‹:
DATE=$(date +%s)
# ะŸั€ะพะฒะตั€ัะตะผ ะบะฐะถะดะพะณะพ ะธะท ะฝะธั…:
for USER in $USERS
 do
# ะฃะทะฝะฐะตะผ, ะบะพะณะดะฐ ะฑั‹ะป ัƒัั‚ะฐะฝะพะฒะปะตะฝ ะฟะฐั€ะพะปัŒ
USERINFO=$(ionice -c3 /opt/zimbra/bin/zmprov ga "$USER")
PASS_SET_DATE=$(echo "$USERINFO" | grep zimbraPasswordModifiedTime: | cut -d " " -f 2 | cut -c 1-8)
PASS_MAX_AGE=$(echo "$USERINFO" | grep "zimbraPasswordMaxAge:" | cut -d " " -f 2)
NAME=$(echo "$USERINFO" | grep givenName | cut -d " " -f 2)
# ะŸั€ะพะฒะตั€ัะตะผ, ะฝะตั‚ ะปะธ ัั€ะตะดะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะน ั‚ะตั…, ัƒ ะบะพะณะพ ัั€ะพะบ ะดะตะนัั‚ะฒะธั ะฟะฐั€ะพะปั ัƒะถะต ะธัั‚ะตะบ.
if [[ "$PASS_MAX_AGE" -eq "0" ]]
then
  continue
fi
# ะ’ั‹ัั‡ะธั‚ั‹ะฒะฐะตะผ ะดะฐั‚ัƒ ะพะบะพะฝั‡ะฐะฝะธั ะดะตะนัั‚ะฒะธั ะฟะฐั€ะพะปะตะน
EXPIRES=$(date -d  "$PASS_SET_DATE $PASS_MAX_AGE days" +%s)
# ะกั‡ะธั‚ะฐะตะผ, ัะบะพะปัŒะบะพ ะดะฝะตะน ะพัั‚ะฐะปะพััŒ ะดะพ ะพะบะพะฝั‡ะฐะฝะธั ัั€ะพะบะฐ ะดะตะนัั‚ะฒะธั ะฟะฐั€ะพะปั
DEADLINE=$(( (($DATE - $EXPIRES)) / -86400 ))
# ะžั‚ะฟั€ะฐะฒะปัะตะผ ะฟะธััŒะผะพ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัะผ
SUBJECT="$NAME - ะ’ะฐัˆ ะฟะฐั€ะพะปัŒ ัั‚ะฐะฝะตั‚ ะฝะตะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝั‹ะผ ั‡ะตั€ะตะท $DEADLINE ะดะฝะตะน"
BODY="
ะ—ะดั€ะฐะฒัั‚ะฒัƒะนั‚ะต, $NAME,
ะŸะฐั€ะพะปัŒ ะฒะฐัˆะตะณะพ ะฐะบะบะฐัƒะฝั‚ะฐ ัั‚ะฐะฝะตั‚ ะฝะตะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝั‹ะผ ั‡ะตั€ะตะท $DEADLINE ะดะฝะตะน, ะŸะพะถะฐะปัƒะนัั‚ะฐ, ัะพะทะดะฐะนั‚ะต ะฝะพะฒั‹ะน ะบะฐะบ ะผะพะถะฝะพ ัะบะพั€ะตะต.
ะ’ั‹ ะผะพะถะตั‚ะต ั‚ะฐะบะถะต ัะพะทะดะฐั‚ัŒ ะฝะฐะฟะพะผะธะฝะฐะฝะธะต ะพ ัะผะตะฝะต ะฟะฐั€ะพะปั ะฒ ะบะฐะปะตะฝะดะฐั€ะต Zimbra.
ะ—ะฐั€ะฐะฝะตะต ัะฟะฐัะธะฑะพ.
ะก ัƒะฒะฐะถะตะฝะธะตะผ, IT-ะพั‚ะดะตะป
"
# ะŸะตั€ะฒะพะต ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต
if [[ "$DEADLINE" -eq "$FIRST" ]]
then
	echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Reminder email sent to: $USER - $DEADLINE days left"
# ะŸะพัะปะตะดะฝะตะต ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธะต
elif [[ "$DEADLINE" -eq "$LAST" ]]
then
	echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Reminder email sent to: $USER - $DEADLINE days left"
# Final
elif [[ "$DEADLINE" -eq "1" ]]
then
    echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Last chance for: $USER - $DEADLINE days left"
fi
done

ืœืคื™ื›ืš, ืื ื• ื™ื›ื•ืœื™ื ืœื•ืžืจ ืฉ-Zimbra Collaboration Suite ืžืชืื™ืžื” ืœืžื“ื™ ื’ื ืœืื•ืชื ืืจื’ื•ื ื™ื ืฉื”ื˜ืžื™ืขื• ืžื“ื™ื ื™ื•ืช ืกื™ืกืžืื•ืช ืงืคื“ื ื™ืช, ื•ื‘ื–ื›ื•ืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืžื•ื‘ื ื•ืช, ื™ื”ื™ื” ื“ื™ ืคืฉื•ื˜ ืœื”ืฉื™ื’ ืืช ื”ื™ื™ืฉื•ื ื”ืงืคื“ื ื™ ืฉืœื” ืžื”ืขื•ื‘ื“ื™ื.

ืœื›ืœ ื”ืฉืืœื•ืช ื”ืงืฉื•ืจื•ืช ืœ-Zextras Suite, ื ื™ืชืŸ ืœื™ืฆื•ืจ ืงืฉืจ ืขื ื ืฆื™ื’ืช ื—ื‘ืจืช Zextras Katerina Triandafilidi ื‘ืืžืฆืขื•ืช ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™ [ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”