achidad

Icon

Just another WordPress.com site

เขียน Script ส่ง E-mail แจ้งอุณหภูมิของ Server

เพราะว่าห้อง Server ยังไม่มี Temperature sensor เลยบูรณาการวิธีการง่าย ๆ ที่จะ E-mail เตือนถ้าอุณหภูมิสูงขึ้น ตอนแรกตั้งใจจะใช้

Speedfan + Openssl แต่ packet ผมโดน drop ระหว่างทางน่าจะเพราะมี ACL อยู่ครับ ลอง Blat ผ่าน Stunnel ก็ยังไม่ได้

ผมเลยใช้ Mortscript เป็น script ที่ใช้สำหรับ ส่งพวก keyboard, mouse หรือ control windows ต่าง ๆ ส่ง mail ผ่าน web

code ที่เขียนออกจะมั่ว ๆ ไม่ค่อยเป็นระเบียบเท่าไหร่เพราะตัว script  ไม่สามารถส่งค่า argument ผ่าน subfunction ได้

แต่ทำงานได้ก็เอาละครับ ดู code ได้จากด้านล่างครับ

#Constant value
asec=1000
bgcolor=4632816;Blue color
compose=14079702;Compose botton
browse=14342874;Browse botton
time=formattime(“d/m/Y H:i”);Current system time
form=15790836;Compse form
reportDes=”C:\Documents and Settings\user\report.7z”
sent=3390072
iSearch=9053414

#Open shortcut in menu
sendspecial(“win”,down)
sleep(1000)
mousedblclick(115,435)

#Wait until page loaded fill in form, Login
while(NOT(colorat(620,260)=bgcolor))
sleep(1000)
endwhile

#Go to windows login
show(“AOL Mail”)
sendkeys(“username”)
sendspecial(“Tab”)
sendkeys(“password”)
sendcr()

#Compose mail
while(NOT(colorat(185,175)=compose))
sleep(1000)
endwhile
mouseclick(185,175)
while(NOT(colorat(570,370)=browse))
sleep(1000)
endwhile

#Type message
sendkeys(“Date&Time “&time)
mouseclick(290,280)
sendkeys(“your_E-mail;”)
while(NOT(colorat(340,315)=form))
sleep(1000)
endwhile
#sendcr()
mouseclick(290,340)
sendkeys(“Server temperature report”)

#Add attachment
mouseclick(535,370)
sendkeys(reportDes)
mouseclick(520,390)
mouseclick(275,210)

#Message sent logout close windows
while(NOT(colorat(265,215)=sent))
sleep(1000)
endwhile
mouseclick(115,150)
while(NOT(colorat(785,165)=iSearch))
sleep(1000)
endwhile
mouseclick(998,14)

code ก็ ไม่ได้มีอะไรมากกดปุ่ม win คลิ๊ก IE ไปที่หน้า http://mail.aol.com compose mail attached file ที่ 7zip compressed

แล้วส่งไปที่ mail ของผม ส่วนการตั้ง condition ก็ให้เป็นหน้าที่ speedfan ถ้า temp ของ CPU เกิน 50 C ก็ run script ได้

ผมว่ตัว mortscript น่าจะมีประโยชน์ในการทำ automation และ software testing อีกเยอะครับใครสนใจก็ลองเล่นดูได้ครับ

Filed under: automation, script, Windows

Svcrash เพื่อป้องกัน SIPVicious

Server VOIP โดน compromise นี่เป็นฝันร้ายก็ชัด ๆ เลยครับแฮคเกอร์จะโทรออกไปต่างประเทศในช่วงเวลาที่เราไม่อยู่ซ้ำ ๆ ค่าโทรศัพท์นี่อย่างต่ำก็เป็นแสนครับ และ service provider บางเจ้า็ไม่ได้ป้องกันปัญหานี้ไว้ครับ เรีกว่าคนใช้โดนเต็ม ๆ

Tool ที่ใช้ในการ compromise นี่ SIPVicious นี่แหละครับซึ่งโดยปกติจะใช้ Fail2Ban ในการป้องกันแต่มันก็ยังน่ารำคาญอยู่ดีครับ แต่วันนี้ครับมี tool ใหม่ที่ใช้ป้องกัน SIPVicious ก็Svcrack นี่แหละครับพัฒนาโดยคนที่พัฒนา SIPVicious จะสำนึกผิดหรือว่าอย่างไรไม่ทราบได้
โหลดไปใช้กันได้ครับก่อนน้ำตาจะเช็ดหัวเข่า มีการป้องกัน 2 ชั้นดีกว่าชั้นเดียวครับ

Filed under: script, security, voip

แสดงรายละเอียด Server ด้วย MOTD

การที่ต้องดูแล Server หลาย ๆ ตัวและต้อง access ผ่าน ssh บางครั้งการได้ข้อมูลคร่าว ๆ เกี่ยวกับตัว Server เองก็เป็นประโยชน์ ถ้ามี Script ที่จะแสดงข้อมูลของ Server แบบคร่าวหลังจาก login โดยใช้ Message of The day

Note Script ตัวนี้สำหรับ Solaris 5.9 นะครับ

ขั้นตอนก็ง่าย ๆ ครับ

1. ใช้ Text editor สร้าง sysScript.sh ไฟล์ Script ตามด้านล่างเลยครับแล้วใช้ WinSCP upload ขึ้นไปบน server

#!/bin/bash
CPU=$(prstat 1 1 | grep ‘load’ | awk -F”:” ‘{print $3}’)
DATE=$(date)
HOST=$(hostname)
UP=$(uptime | awk ‘{print $3″ day(s)”}’)
SWAPUSEAGE=$(swap -s | awk -F’=’ ‘{print $2}’)
OSv=$(uname -a | awk ‘{print $1″ “$3}’)
FREEM=$(vmstat 1 1 | sed ‘3!d’ | awk ‘{print $5/8192″ MB”}’)

echo ”
System status
Update: $DATE

– Server name     : $HOST
– CPU Average   : $CPU
– OS version     : $OSv
– system uptime    : $UP
– Free mem     : $FREEM
– Swap         : $SWAPUSEAGE

” > /etc/motd

2. เปลี่ยน mode เป็น executable
#chmod +x sysScript.sh


3. เพิ่ม job ใน crontab ด้วย
#crontab -e


เพิ่ม 0 * * * * /sysScript.sh ลงที่บรรทัดล่างสุด


4. ลอง logout แล้ว login ใหม่ด้วย ssh เพื่อทดสอบว่า Script ทำงาน ซึ่ง MOTD จะ update ทุก ๆ ชั่วโมง


Note ดัดแปลงจาก http://www.md3v.com/

พอลอง Ubuntu server 11.04 LTS แล้วผมก็เห็นว่าตัว motd ที่บอกสถานะ server มีมาแต่แรกครับ Ubuntu นี่มันน่ารักจริง ๆ

Filed under: *nix, bash, script, shell, solaris

เปลี่ยน shell ใน Solaris

ช่วงนี้เพิ่งได้จับ Server Solaris ตัวแรกที่มาพร้อมกับ ksh ที่มีวิธีใช้ไม่เหมือนกัน bash shell ปกติก็เลยเปลี่ยนเป็น bash shell ง่าย ๆ ด้วย

#passwd -e

แล้วใส่ /bin/bash เข้าไปครับแค่นี้ก็เปลี่ยนเป็น bash shell ที่คุ้นเคยแล้วครับ แต่ก่อนอื่นอย่าลืมดูว่ามี /bin/bash นะครับ ไม่งั้นอาจจะ log in เข้าระบบไม่ได้

Filed under: *nix, bash, ksh, shell, solaris