分類彙整: 技術小抄

goole map上的 marker 上加註文字

這個問題我解了好久,簡單的作法是採用

 http://googlemapsbook.com/2007/01/22/extending-gmarker/

  http://googlemapsbook.com/2007/03/06/clickable-labeledmarker/

的解決方案

下載 http://google-maps-api.googlegroups.com/web/labeledMarker.js?gda=CyI1HkAAAAApUqsX-WXty5Tu-XmbEKmxnfu1955LlIyxx9ZaA58t_DE72RpmLLwWH5dSX_LoXxYH1DI0V7_0lrJuE6jdmmyJ

之後,用以下的方法引用即可

<script src="labeledmarker.js"
type="text/javascript"></script>

 ……

var point0 = new GLatLng(32.810166495054,35.448489560853);
var mark0=new LabeledMarker(point0,{title:"加利利",labelText:"加利利"});
map.addOverlay(mark0);

 

ffmpeg使用小抄

Linux啟動方式

 可能要 export LD_LIBRARY_PATH=/usr/local/lib

Windows啟動方式:先去  http://arrozcru.no-ip.org/ffmpeg_builds/  抓下執行檔來

直接執行exe檔即可

Windows上抓 Webcam 影像

ffmpeg.exe -f vfwcap -r 15 -i 0 -vframes 1  aaa%d.jpg    抓一張jpg

ffmpeg.exe -f vfwcap -r 15 -i 0 aaa.mpg   錄 mpeg檔案

Linux上抓Webcam影像

  /usr/local/bin/ffmpeg -r 15  -f video4linux2 -s 320×200 -i /dev/video0  -vframes 1  aab%d.jpg

  /usr/local/bin/ffmpeg -r 15  -f video4linux2 -s 320×200 -i /dev/video  -vframes 1  aab%d.jpg

上面都是抓一張影像,一定要給影像長寬

 /usr/local/bin/ffmpeg -r 15  -f video4linux2 -s 320×200 -i /dev/video abc.mpg 則是錄檔案

Linux上錄製 mjpeg格式的指令格式,windows 只要執行檔即可

 /usr/local/bin/ffmpeg -f mjpeg -i http://user:password@xxx.xxx.xxx.000/axis-cgi/mjpg/video.cgi -r 25 out.mpg

  /usr/local/bin/ffmpeg -f mjpeg -i http://user:password@xxx.xxx.xxx.000/axis-cgi/mjpg/video.cgi -r 25 -t 600 out.mpg

加上 -t 600 就會限制只錄十分鐘

Fedora 9上編譯、安裝red5

首先要安裝 ant

 yum install ant

下載 red5   不可以下在 red5網站的 tar.gz 檔,因為那個有錯

 svn co http://svn1.cvsdude.com/osflash/red5/java/server/trunk red5

 如果 svn 指令不存在,那就 yum install svn 先安裝一下

cd red5

ant prepare

ant 

 就會順利編譯完了

在 red5/dist 底下就是編譯好的執行檔,可以執行

 ./red5.sh 就可以啟動

請用瀏覽器輸入http://your_server_name:5080/demos/port_tester.swf

如果能取得資料就是正確了

openwebmail 安裝小抄

先由 http://openwebmail.org/ 下載 openwebmail

到 tmp 下 tar zxvf openwebmail.xxx.tar.gz

然後 

mv  ~xxx/WWW/data/openwebmail ~xxx/WWW/openwebmai.bak  #備份一下

mv data/openwebmail ~xxx/WWW/data/openwebmail  #放入新的 html

mv  ~xxx/cgi-bin/openwebmail ~xxx/openwebmail.bak

mv cgi-bin/lopenwebmail ~xxx/cgi-bin/openwebmail

cd  ~xxx/service/cgi-bin/openwebmail/etc

vi  openwebmail.conf

修改:

mailspooldir            /var/spool/mail

ow_cgidir               /home/xxx/cgi-bin/openwebmail

ow_htmldir              /home/xxx/WWW/data/openwebmail

default_ctrlposition_folderview top
default_ctrlposition_msgread    top

default_language                zh_TW.utf8

default_iconset                 Cool3D.Chinese.Traditional
<default_signature>

WebMail Service of fhl (http://wmail.fhl.net)
</default_signature>

然後

cp defaults/auth_unix.conf .

vi auth_unix.conf 

修改

passwdfile_plaintext    /etc/passwd
passwdfile_encrypted    /etc/shadow
passwdmkdb              none

新增

/home/xxxx/cgi-bin/openwebmail/etc/dbm.conf 

裡面放入

dbm_ext             .db
dbmopen_ext         .db
dbmopen_haslock     no


 最後

/home/xxxx/cgi-bin/openwebmail/openwebmail-tool.pl –init

如何允許使用者scp但是不許使用者ssh進入帳號?

以前我們都是透過assign一個不能登入的shell(如passwd)來防止使用者進入帳號中執行程式,這種舉動可以阻止使用者用ssh、telnet等工具登入,但是還可以允許使用者用 ftp登入。無奈這樣的行為也會阻擋使用者用scp或winscp這類保密的檔案傳輸工具登入系統。我多次閱讀 ssh 與 scp的說明書還是無法解決問題,最後終於找到解決方案,就是使用 scponly 這套工具 。正好 fedora 7也有這套件,所以就

 yum install scponly

然後修改 /etc/shells 加入

 /usr/bin/scponly

,再修改 /etc/passwd,把使用者的 shell設定改成 /usr/bin/scponly 即可
 

phpBB 的更新方式

先到竹貓星球 http://phpbb-tw.net 去抓最新的Source,

然後把舊的 phpBB3 用 底下的指令備份

rm -rf phpBB3.old

cp -a phpBB3  phpBB3.old

解壓縮

unzip xxxx.zip

通常會蓋過 phpBB3,連config.php也蓋過了,所以要取回舊的 config.php

cd phpBB3

cp ../phpBB3.old/config.php .

用瀏覽器執行資料庫升級,打入:

 http://bbs.fhl.net/install/database_update.php 

完成後移除 install 目錄

rm -rf  install

即可 

Linux cpu溫度警告

我們利用lm_sensors來偵測CPU溫度,作法大略如下:

安裝 lm_sensors

yum -y install lm_sensors 

要系統自動偵測 sensors

 /usr/sbin/sensors-detect

一路  yes 到最後

啟動daemon

 /etc/init.d/lm_sensors start

打 /usr/bin/sensors  測試

如果出現溫度,就表示設定正確,可以打入下面這一行讓

chkconfig –add  lm_sensors

daemon開機自動啟動

最後我們用這個 php script來偵測溫度狀況:

 #!/usr/local/bin/php -q
<?php
$target=array(‘Core 0:’,’Core 1:’,’Core 2:’,’Core 3:’);
  $alarm=65;
  $inp=file(‘php://stdin’);
  $cnt=count($inp);
  $tcnt=count($target);
  for ($i=0;$i<$cnt;$i=$i+1)
  {
        for ($j=0;$j<$tcnt;$j=$j+1)
        {
                if (strncmp($target[$j],$inp[$i],strlen($target[$j]))==0)
                {//matched
                        $c=(float) substr($inp[$i],strlen($target[$j]));
                        //echo $c."\n";
                        if ($c> $alarm) //alarm on
                                exit(1);
                        break;
                }
        }
  }
  exit(0);
?>

這個script檢查四個核心的溫度,然後如果大於 $alarm 設定的溫度,就回傳 1 否則回傳0,使用的方法是

  /usr/bin/sensors| /xxxdir/Temp.sh

 這樣,就可以正確回傳CPU的狀況了。

 

fedora linux 上安裝 milter-greylist 的步驟

milter-greylist 是利用廣告信發信程式為了盡量快點發信,所以不會重送這個原理來運作的。當他不確定對是否是可信賴的郵件主機時,就請對方等一下再送,會自動重送的,就是可信賴的主機。我們裝起來測試後,果然好用。這個系統與MailScanner不相衝突,所以頗有安裝的價值。 

本來希望按照joshua提供的方法安裝 4.0 版的 milter-greylist,不過我們實在沒有時間一一追蹤新版本的更新,所以最後還是先用 yum search milter-greylist 找到直接 fedora 7 的 milter-greylist 套件。以下就紀錄如何安裝之:

變身成 root 

1.先安裝套件  yum install milter-greylist

2.修改控制檔 vi /etc/mail/greylist.conf

  a.信望愛有多台MX peer mail server,所以要改底下這段

  # MX peering
  peer 主機IP1
  peer 主機IP2

 b.改網路區段

 list "my network" addr { 127.0.0.1/8 10.0.0.0/8 192.0.2.0/24 }  

c.把 grey user 拿掉,照說明書是要利用這裡慢慢測試,不過這是小抄,已經都測試過,直接處理掉就是了

 list "grey users" rcpt {  \
        user1@example.com \
        user2@example.com \
        user3@example.com \
}

d.修改最底下

acl greylist list "grey users" delay 30m autowhite 3d
acl whitelist default

改成

acl greylist default  delay 5m autowhite 3d
#acl whitelist default
意思就是所有的信件都當成 greylist ,要對方延遲五分鐘再送,如果對方真的聽話,就將他放入白名單三天

 3.設定開機自動啟動,順便測試看看,我們的伺服器是跑 runlevel 3

 /sbin/chkconfig –level 3 milter-greylist on

/etc/init.d/milter-greylist start

4.修改 sendmail.mc 以修改 sendmail.cf (請注意,你的sendmail.cf必須是由 sendmail.mc產生的,不然就慘了)

  cd /etc/mail

   在  define(`confDEF_USER_ID’,“8:12”)dnl之前插入

  INPUT_MAIL_FILTER(`greylist’, `S=local:/var/run/milter-greylist/milter-greylist.sock’)
define(`confMILTER_MACROS_CONNECT’, `j, {if_addr}’)
define(`confMILTER_MACROS_HELO’, `{verify}, {cert_subject}’)
define(`confMILTER_MACROS_ENVFROM’, `i, {auth_authen}’)
define(`confMILTER_MACROS_ENVRCPT’, `{greylist}’)

然後 m4 sendmail.mc > sendmail.cf 

5.重新跑 sendmail

 以信望愛站來說是  /etc/init.d/MailScanner restart

一般可能是 /etc/init.d/sendmail restart 

6.檢驗成果

    當然,收發信件必須先正常,然後可以去  /var/lib/milter-greylist/db 檢查 greylist.db 這個檔案,就可以看到灰名單是否正常運作。