แแ.แคแแกแขแแก แแแจแแคแแ แแกแแแ แแ แชแแคแ แฃแแ แฎแแแแแฌแแ แแแแก แแแแแงแแแแแแกแแแ แแ แแแ, แแแแฅแขแ แแแฃแแ แคแแกแขแแก แฐแแแแ แแแแกแแแ แแแชแแแก แแ แ-แแ แแ แงแแแแแแ แแคแแฅแขแฃแ แ แแ แแแแแแแแฃแ แ แแแ แแ แแก แแแ แแแแก แฃแกแแคแ แแฎแแแแแก แแแ แแ แแแแแขแแแ. แฅแแฆแแแแแ แฉแแฌแแ แแแ, แกแแฏแแ แ แคแแแแแแจแ แจแแแแฎแฃแแ แแ แฃแแ แแแแ แกแแแแแ แแกแแ แแ แแกแแแแแ แแกแ แแแ แแแแแ แงแแแแแแแแก แแแแ แแแ แฆแแแแแ แกแแฌแแ แแแก แแแคแแ แแแชแแฃแ แฃแกแแคแ แแฎแแแแแจแ แแ แจแแแซแแแแ แแแแแแฌแแแแก แกแแ แแแแฃแแ แแแชแแแแแขแแแ แฎแแแจแแกแแฎแแแ แแแแแแก แจแแแแแแแแ. แแแแขแแ แแแแแกแแแแ แกแแฌแแ แแแก แฃแแแ แฐแฅแแแแแก แแแแชแ แ แแแ แแแแก แฃแกแแคแ แแฎแแแแแก แแแแแขแแแ.
แแฃแแชแ, แฃแกแแคแ แแฎแแแแแก แแแแแกแแแแ แแ แแคแแชแแ แแ แแชแแก, แ แแ แแแ แแแแก แแแแแขแแแ แแฎแแแแ แแแจแแ แแแแขแแแก แจแแแแแก, แแฃ แแก แแ แ แแฎแแแแ แแ แกแแแแแก, แแ แแแแ แแแแชแ แแ แแแแชแแแ แงแแแแ, แแ แแฃแแแแช แแ แแแแแแแชแแแก แซแแ แแแแแ แแแแแแจแ แแแแแแแก แแแแ . แแแแก แแแฆแฌแแแ แแแแแ แ แแฃแแแ, แแแแ แ แแ แแ แจแแฎแแแแแ แฉแแแก. แฃแแแ แแซแแแแ แแแขแแแ แแฃแแ แแแแแแจแ แแแแแแ แแแแฃแแแแแแ แแแแฌแงแแแแ แแแ แแแแก แจแแชแแแแก แแฃแชแแแแแแแแแก, แแ แแแฐแงแแแแแแ แแแแแแแแฃแ แ แฌแแแแแฆแแแแแแแแก แแแแก, แงแแแแ แฏแแ แแ แแแ แแแก แฃแคแ แ แแแ แขแแแก แแ แแแ แขแแแก แฎแแแแ, แ แแแแช แแแแฃแฅแแแแแ แแแแ แแคแแฅแขแก. แแแแขแแ แกแแฌแแ แแแแแจแ แแแ แแแแก แฌแแกแแแแก แแแชแแแก แกแแแแแฎแ แฉแแแฃแแแแ แแ แฌแงแแแแ แกแฎแแแแแกแฎแแ แขแแฅแแแแฃแ แ แกแแจแฃแแแแแแแแ.
Zimbra แแ แกแแญแแ แแแแก แแแกแแแ แแฎแแ แแก แแแแแแแชแแแแก แแแ แแแแก แแแแแขแแแแก แแแแกแแฎแแ แชแแแแแแแแ. แแแแก แแแฆแฌแแแ แจแแกแแซแแแแแแแ แฉแแจแแแแแฃแแ แฎแแแกแแฌแงแแแแแก แแแแแงแแแแแแ.
แแแ แแแ แ แแแจแ, แฆแแ แก แแแแก แแแแแแ, แแฃ แ แแแแ แแฃแจแแแแก แแแ แแแแก แแแ แแแ Zimbra-แจแ. แ แแแแกแแช แแฎแแแ แแแแแ แแจแ แแฅแแแแแ, แแแก แแแแแแแกแขแ แแขแแ แ แแแแญแแแก แแ แแแแแ แแแ แแแก. แแแแก แจแแแแแ, แแแแฎแแแ แแแแแก แจแแแซแแแแ แแแแแฃแแแแแแแแ แจแแแแแแก แแแแแ แแจแจแ แแ แจแแชแแแแแก แแแ แแแ. แงแแแแ แแแ แแแ แแแแฎแแแ แแแจแแคแ แฃแแ แกแแฎแแ แกแแ แแแ แแ Zimbra-แแ แแ แแแแก แแแแ แแกแแแ แแแฃแฌแแแแแแแแ แกแแ แแแ แแก แแแแแแแกแขแ แแขแแ แแกแแแแกแแช แแ. แกแฌแแ แแ แแแแขแแ, แแฃ แแแแฎแแแ แแแแแ แแแแแแฌแงแแแก แแแ แแแก, แแแก แแฎแแแแก แจแแฅแแแ แแแฃแฌแแแก. แจแแแแฎแกแแแแแ, แ แแ แแแแ แแ แแแแ แแฎแแแ แแแ แแแแก แจแแฅแแแ แแแแแฎแแแแ แแแแแแแกแขแ แแขแแ แแก แแแแแฌแแแแแแแก, แแแแ แแ Zimbra Creative Suite 8.8.9-แแก แฃแแฎแแแก แแแ แกแแแก แแแแแแขแ แแแแฎแแแ แแแแแแแกแแแแก แแฎแแแ แแแ แแแแก แแแงแแแแแแก แจแแกแแซแแแแแแแ.
แแแ แแแแก แแแแแขแแแแก แแแ แแแแขแ แแแ แจแแแแซแแแแ แแฎแแแแ แแแแแแแแฃแแแฃแ แ แแแแฎแแแ แแแแแแแกแ แแ แแแแฎแแแ แแแแแแ แฏแแฃแคแแแแก แแแ แแแแขแ แแแจแ. แจแแแแซแแแแ แแแแงแแแแ:
- แแแ แแแแก แกแแแ แซแ - แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ แแแ แแแแก แแแแแแแแฃแ แ แแ แแแฅแกแแแแแฃแ แ แกแแแ แซแ. แแแแฃแแแกแฎแแแแแ, แแแ แแแแก แแแแแแแแฃแ แ แกแแแ แซแแ 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-แแก แฌแแ แแแแแแแแแแแก แแแขแแ แแแ แขแ แแแแแแคแแแแแก แแ.แคแแกแขแแ. [แแ.แคแแกแขแแ แแแชแฃแแแ]
แฌแงแแ แ: www.habr.com