« 2005/12, Vol. 119 PChome Magazine | 首頁 | 監視、備份所有通過 sendmail 的郵件 »

2005年12月08日

利用 vncsnapshot 一次監看多個電腦畫面

流程

  1. 在被監視的電腦上安裝 VNC Server, 並開放 tcp 5900 port
  2. 於 Linux 電腦上安裝 vncsnapshot, 定時截取電腦畫面
  3. 管理者以瀏覽器連入 Web Server 監看電腦畫面

環境說明:

Personal Computers

  • any OS with VNC server (RealVNC or TightVNC)
  • 本例假設所有 VNC server 皆設定相同的密碼

Linux (以 Fedora Core Linux為例)

檔案 / 路徑 說明
/usr/local/bin/vncsnapshot vncsnapshot 執行檔
/usr/local/bin/vncpasswd 產生 VNC Server 連線密碼檔的程式
/usr/bin/convert ImageMagick 圖型轉檔程式 (製作縮圖用)
/root/vncsnapshot.sh 自行撰寫的截圖批次檔 (shell script)
/root/vnc.passwd VNC Server 連線密碼檔
/root/vnc.hosts 被監視的使用者清單
/var/www/html/vncsnapshot/ 使用者電腦畫面與網頁置放的地方

建置 Linux 監控環境:

下載 vncsnapshot

解包後將 vncsnapshot 與 vncpasswd 複製到 /usr/local/bin/ (這兩個檔案在解包後的 ./bin 路徑中)

cd /root

vncpasswd vnc.passwd

vi vnc.hosts

mary
john
bill
steven
bob
tom

ps. 以上這些 hostname 所對應的 ip 須在 /etc/hosts 中先行設定

vi vncsnapshot.sh

#!/bin/bash

cd /var/www/html/vncsnapshot
for i in `cat /root/vnc.hosts`; do
/usr/local/bin/vncsnapshot -passwd /root/vnc.passwd -quiet $i:0 $i.jpg > /dev/null 2>&1
if [ $? == 0 ]; then
/usr/bin/convert $i.jpg -resize 320x240 "$i"_thumb.jpg
else
cp no_signal.jpg "$i"_thumb.jpg
fi
done

程序說明:

迴圈讀入 vnc.hosts 清單作為連線與存檔依據, 以 vnc.passwd 密碼連線各 VNC Server, 截取 vnc_server:0 (0 是 Display Number), 若成功則將截取到的畫面製作成 320x240 的縮圖, 若無法截取畫面則以 no_signal.jpg 這張圖作為縮圖

ps. 需另外做一張 320x240 的 JPEG 圖檔, 取名 "no_signal.jpg" 作為 "無法連線該PC" 的示意圖

vi /var/www/html/vncsnapshot/index.html (每 60 秒自動更新網頁)

<html>
<head>

<meta http-equiv="Refresh" content="60; URL=index.html">
<style>
     img {border:0px}
</style>

</head>
<body>

<table width="100%">
  <tr>
     <td align="center"><a href="mary.jpg"><img src="mary_thumb.jpg" width="320" height="240"></a><br>Mary</td>
     <td align="center"><a href="john.jpg"><img src="john_thumb.jpg" width="320" height="240"></a><br>John</td>
     <td align="center"><a href="bill.jpg"><img src="bill_thumb.jpg" width="320" height="240"></a><br>Bill</td>
  </tr>
  <tr>
     <td align="center"><a href="ken.jpg"><img src="ken_thumb.jpg" width="320" height="240"></a><br>Ken</td>
     <td align="center"><a href="bob.jpg"><img src="bob_thumb.jpg" width="320" height="240"></a><br>Bob</td>
     <td align="center"><a href="tom.jpg"><img src="tom_thumb.jpg" width="320" height="240"></a><br>Tom</td>
  </tr>
</table>

</body>
</html>

vi /etc/crontab (每分鐘自動截取 VNC Server 畫面)

*/1 * * * * root /root/vncsnapshot.sh

啟用瀏覽器監看畫面


後記

--- 2006.01.19 補充: Screen Capturing and Playback Using VNC

Posted by Jamyy at 2005年12月08日 09:33

Trackback Pings

TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/149

Comments

小米,問一個題外話。
你家的無線網路,無線基地台和無線網卡,各是那個牌子,好用嗎..我最近也想將家中的網路搞成無線的..

Posted by: 馬吉 at 2005年12月14日 15:46

馬吉,我之前用的基地台是 So-net 送的 "可瑞加" (Corega),因老舊會當機,所以換成華碩送的 WL-520g。
至於無線網卡,NB 就用內建的無線網卡 (Intel PRO/Wireless),PC 則用之前 "可瑞加" 的 USB 無線網卡。
基本上只要購買品牌信譽良好的基地台和無線網卡,就能在家搞一個好用的無線網路環境,但是記得要購買 802.11g (54M) 規格的,速度快且訊號穩。
目前也有標榜 108M 傳輸速度的產品,不過一般都要搭配相同型號的基地台和網卡才能以 108M 的速度連結。至於 108M 的實際傳輸效能可參考這篇: /blog/archives/2004/11/108mbps_ccceec.html
對了,別忘了為你的無線網路加密,才不會被隔壁鄰居用爽的。

Posted by: 小米 at 2005年12月14日 16:36