Update Notification Example - XIYO/asuswrt-merlin.ng-kr GitHub Wiki
์๋๋ ํธ์๋ถ๋ฆฟ(Pushbullet), ํธ์์ค๋ฒ(Pushover), ๋ฉ์ผ ์๋ฆผ ๊ธฐ๋ฅ์ด ํฌํจ๋ ์ ๋ฐ์ดํธ ์๋ฆผ ์คํฌ๋ฆฝํธ์ ํ๊ตญ์ด ๋ฒ์ญ๋ณธ์ ๋๋ค. ์คํฌ๋ฆฝํธ๋ ์๋ ์์น์ ์ ์ฅํ๊ณ ์คํ ๊ฐ๋ฅํ๊ฒ ์ค์ ํ ๋ค์, ์นUI์ "๋๊ตฌ > ๊ธฐํ ์ค์ " ๋ฉ๋ด์์ "์ ํ์จ์ด ๋ฒ์ ํ์ธ"์ "์"๋ก ์ค์ ํ๋ฉด ๋ฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ 48์๊ฐ๋ง๋ค ํ์ธ์ ์งํํฉ๋๋ค.
/jffs/scripts/update-notification
chmod +x /jffs/scripts/update-notification
#!/bin/sh
use_email="disabled" # ํ์ฑํ / ๋นํ์ฑํ (๊ธฐ๋ณธ๊ฐ: ๋นํ์ฑํ)
use_pushbullet="disabled" # ํ์ฑํ / ๋นํ์ฑํ (๊ธฐ๋ณธ๊ฐ: ๋นํ์ฑํ)
use_pushover="disabled" # ํ์ฑํ / ๋นํ์ฑํ (๊ธฐ๋ณธ๊ฐ: ๋นํ์ฑํ)
# ํธ์๋ถ๋ฆฟ/ํธ์์ค๋ฒ ์ค์
pushbullet_token="" # ์ฌ๊ธฐ์ ์ ๊ทผ ํ ํฐ ์
๋ ฅ (https://docs.pushbullet.com/)
pushover_token="" # ์ฌ๊ธฐ์ ์ ๊ทผ ํ ํฐ ์
๋ ฅ (https://pushover.net/api)
pushover_username="" # ํธ์์ค๋ฒ ์ฌ์ฉ์ ID (์ด๋ฉ์ผ ์ฃผ์๊ฐ ์๋ ์ฌ์ฉ์/๊ทธ๋ฃน ํค, ์ข
์ข
USER_KEY๋ก ๋ถ๋ฆผ)
# ์ด๋ฉ์ผ ์ค์
SMTP="smtp.gmail.com"
PORT="465"
USERNAME=""
PASSWORD=""
# ๋ฉ์ผ ๋ดํฌ
FROM_NAME=""
FROM_ADDRESS=""
TO_NAME=""
TO_ADDRESS=""
### ์๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ง ๋ง์ธ์
# Retrieve version
TMPVERS=$(nvram get webs_state_info)
echo "$TMPVERS" | grep 382
if [ $? -ne 0 ]; then
VERS=${TMPVERS:5:3}.${TMPVERS:8:10}
else
VERS=$TMPVERS
fi
ROUTER_IP=$(nvram get lan_ipaddr)
email_message () {
echo "From: \"$FROM_NAME\" <$FROM_ADDRESS>" > /tmp/mail.txt
echo "To: \"$TO_NAME\" <$TO_ADDRESS>" >> /tmp/mail.txt
echo "Subject: New router firmware notification" >> /tmp/mail.txt
echo "" >> /tmp/mail.txt
echo "New firmware version $VERS is now available for your router at $ROUTER_IP." >> /tmp/mail.txt
curl --url smtps://$SMTP:$PORT \
--mail-from "$FROM_ADDRESS" --mail-rcpt "$TO_ADDRESS" \
--upload-file /tmp/mail.txt \
--ssl-reqd \
--user "$USERNAME:$PASSWORD" --insecure
rm /tmp/mail.txt
}
pushover_message () {
curl -s \
--form-string "token=$pushover_token" \
--form-string "user=$pushover_username" \
--form-string "message=New firmware version $VERS is now available for your router at $ROUTER_IP." \
https://api.pushover.net/1/messages.json
}
pushbullet_message () {
text="New firmware version $VERS is now available for your router at $ROUTER_IP."
title="$USER@$HOSTNAME"
curl -s -u $pushbullet_token: -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "'"$title"'", "body": "'"$text"'"}' >/dev/null 2>&1
}
if [ $use_pushbullet = "enabled" ]; then
pushbullet_message
fi
if [ $use_pushover = "enabled" ]; then
pushover_message
fi
if [ $use_email = "enabled" ]; then
email_message
fi