Систем за известување преку СМС пораки – втор дел

Долго време помина откако го напишав првиот дел од овој туторијал, или како сакате наречете го, си имам оправдувања, можеби и не, но сепак, да не оддолжувам многу, може да продолжиме. Во првиот дел од текстот, видовме едноставни примери за надгледување на некои системски параметри, искористувајќи го опишаниот канал на комуникација.

Како продолжение на претходно опишаната shell скрипта, дадената case структура може да ја збогатиме и со уште три случаи:

intIP)
#get all the internal IP addresses (written in one line as a pair of interface: address)
intIP=`ip -o addr show | egrep –regexp=”(^[2-9]: |^[0-9]{2,}: )[a-zA-Z0-9]*[ ]*inet” | awk ‘{ printf $2 ” ” $4 “; ” }’`
sendsms “$intIP”
;;

extIP)
#get the external IP
extIP=`curl http://whatismyip.org`
sendsms “Your external IP address is: $extIP”
;;

ipv6start)
#start the gogoc IPv6 service on a system with systemd
if [ `ps ax | grep -i gogoc | wc -l` -gt “1” ]
then sendsms “Servisot raboti!”
else systemctl start gogoc.service; sendsms “Sistemot e uspeshno startuvan!”
fi
;;

кои што би се справиле со СМС пораки со содржина “CMD intIP/extIP/ipv6start” и кои што би додале интересна и понекогаш дури и потребна функционалност на системот. Во првиот случај intIP, при повикување, системот во СМС порака ја враќа тековната, или тековните, IP адреси на сите интерфејси присутни во системот кои што имаат дефинирано, парсирајќи го излезот од командата “ip -o addr show” која што е дескриптивна сама по себе. Во вториот случај extIP, при повикување, назад ја добивате надворешната IP адреса, односно адресата под која што е јавно достапен системот на интернет, која што може, но не мора да биде директно доделена на некој од интерфејсите на системот. (Мало појаснување: Доколку системот се наоѓа зад NAT рутер, интерфејсот преку кој што е поврзан на интернет, ќе има IP адреса од приватен опсег и на никој начин нема да биде достапен од “надвор” според таа адреса – затоа ни е потребна јавната). Јавната IP адреса ја наоѓаме искористувајќи еден јавен сервис кој што, како излез при повикување, ја дава јавната интернет адреса од каде што е пристапен. Третата функционалност која што ја додаваме е стартување на ipv6 тунел преку алатка (gogoc сервис кој што овозможува ipv6 тунел преку ipv4 мрежа) и systemd. Овде може да се види дека при повикување на сервисот, најпрвин се проверува дали алатката (во овој случај gogoc) е активна, проверувајќи ја листата на процеси, и доколку не е, тогаш се стартува истата.

Една мала напомена – shell скриптите, како и конфигурацијата на kannel-от опишана во постовите, може да ги погледнете во јавниот репозиториум на мојата github сметка на следната локација.

Секако, претходно опишаниот СМС сервис (целосниот сервис, со сите опишани случаи) може да се користи со било која конзолна алатка и во било која ситуација. Потребно е само да го побарате потребниот параметар, или пак да го повикате саканиот сервис, односно ја дефинирате наредбата во shell скриптата, или пак да повикате било каков код и било каква скрипта при извршување на СМС сервисот. Јас го преферирам овој начин на работа, но изборот е оставен на вас.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s