Mar 28, 2008

Kill oracle background process ?

Oracle background process 'ora_j0XX_XXX' 可用 OS level command 如 kill 殺掉, 資料庫不會因而 Down.

Mar 26, 2008

cygwin + perl

cygwin source setup file ,
http://sources.redhat.com/cygwin/
執行Setup 時確認 perl 有選到要安裝.

cygwin 是模擬 GNU 的環境, 而不是 unix 的環境 (對啦, 這正是 "Gnu's Not Unix" 要表達的意思 : -)。 Cygnus Solutions 公司 (後來為 redhat 所併購) 以自由軟體基金會的 gnu 工具為基礎, 將它移植到 windows 上, 就成了 cygwin; 它一直都是自由軟體。 初期只有命令列視窗 bash, 及編譯器 gcc 等等開發工具可以使用; 現在則連 X 視窗系統都已移植成功; 未來 X 視窗系統下的應用軟體也將逐漸移植過來。

為什麼要用 cygwin? 因為 cygwin 提供 regexp 與 gnu 命令列環境 等等組合式工具。

------
參考底下步驟:

  1. 連至 www.cygwin.com 下載 setup.exe
  2. 執行 setup.exe , 選取Download from Internet
    1. 選取所需套件 // 建議全選devel, lib等分類的所有套件
  3. 執行 setup.exe , 選取Install from Local directory安裝套件 //最好選取 All user
    1. 選取所有套件
  4. 執行桌面上的 Cygwin 的 icon 圖示即可執行此一 Cygwin 環境。// 視窗大小可由icon 圖示右點按 選取調整字型 及佈置

step by step 可參考 http://linux.tnc.edu.tw/techdoc/shell/x52.html

在Cygwin console輸入、顯示中文

需要在家目錄($HOME)下新增或編輯兩個檔案:
.inputrc 和 .bash_profile
在.inputrc中要有下面三行
set meta-flag on
set convert-meta off
set output-meta on

在.bash_profile中要有下面三行
export LESSCHARSET=latin1
alias less='/bin/less -r'
alias ls='/bin/ls -F --color=tty --show-control-chars'

如果對指令跟文字編輯器都不熟, 請開啟cygwin console,依序執行下面七個指令:

cd
echo "set meta-flag on" >> .inputrc
echo "set convert-meta off" >> .inputrc
echo "set output-meta on" >> .inputrc
echo "export LESSCHARSET=latin1" >> .bash_profile
echo "alias less='/bin/less -r'" >> .bash_profile
echo "alias ls='/bin/ls -F --color=tty --show-control-chars'" >> .bash_profile

然後退出cygwin console,再重新開啟,就可以輸入、顯示中文了。

免費防毒軟體

內建中文語系的免費防毒軟體,防毒能力還不錯,佔用資源也沒有卡巴斯基的多。註冊完後,可以免費用一年,過了一年再註冊就可以。

軟體名稱:avast! antivirus
官方網站:http://www.avast.com/
直接下載:按這裡

Mar 25, 2008

VBScript - 檢查 Disk 空間, 並寄送通知信

Dim fso, d, s, oArgs, drvPath, threshold, fspace, ret, cmdstr
Const cdoSendUsingPort = 2
Set oArgs=WScript.Arguments
'Set objNewMail = WScript.CreateObject("CDONTS.NewMail")
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(sch & "sendusing") = 2 ' cdoSendUsingPort
.Item(sch & "smtpserver") = "192.168.2.14"
.update
End With
If oArgs.Count < 3 Then Call DisplayUsage
drvPath=oArgs(0)
threshold=CDbl(oArgs(1))
aceno=oArgs(2)+"0151"
'on error resume next

Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(fso.GetDriveName(drvPath))
fspace=Round((d.FreeSpace / 1024 /1024),2)
desc="Free Space " + CStr(fspace) + "M < " + CStr(threshold) + "M"
if (fspace < threshold) and (Not IsEmpty(d)) then thistime=cstr(tran(Year(now)))+"/"+cstr(tran(Month(now)))+"/"+cstr(tran(Day(now)))+"" thistime=thistime+cstr(tran(Hour(now)))+":"+cstr(tran(Minute(now)))+":"+cstr(tran(Second(now)))
mail_subject="SAM" + aceno + ": " + drvPath + " " + desc
strBody="start_time=" + thistime
strBody=strBody+"system_type=Windows"
strBody=strBody+"node_name=" + drvPath
strBody=strBody+"object_name=DISK SPACE"
strBody=strBody+"desc=" + desc
Set cdoMessage = CreateObject("CDO.Message")
With cdoMessage
Set .Configuration = cdoConfig
.From = "test@gmail.com"
.To = "test@gmail.com"
.Subject = mail_subject
.htmlbody = strBody
.Send
End With
Set cdoMessage = Nothing
Set cdoConfig = nothing
end if

WScript.Quit

Sub DisplayUsage
dim strUsage
strUsage="Usage: GetFreeSpace [drive] [threshold(MB)] [alert level]" +chr(13)+chr(10)
strUsage=strUsage+"Example: GetFreeSpace \\192.168.1.1\c$ 5000 1"
WScript.Echo strUsage
WScript.Quit
End Sub
function tran(tt)
if int(tt)<10 then
tran="0"&tt
else
tran=tt
end if
end function

VBScript - 刪除兩天以前的檔案

'Delete 2 days ago files

'date
daysAgo = 2

'folder path
dirPath = "D:\\backup\archlog"

Set fs = CreateObject("Scripting.FileSystemObject")
Set w = WScript.CreateObject("WScript.Shell")

Set f = fs.GetFolder(dirPath)
Set fc = f.Files

dateBefore = Now() - daysAgo

For Each ff in fc
fileName = ff.Name
fileDate = ff.DateLastModified

If fileDate < dateBefore Then
fs.DeleteFile(dirPath & "\\" & fileName)
End If
Next

sql server 18483 error

18483 時發生錯誤: 不可能會連線到伺服器 ' < > 執行個體 \ < 伺服器 > ' 因為 ' distributor_admin ' 並未定義為遠端登入伺服器上

SELECT @@SERVERNAME, SERVERPROPERTY('ServerName') 確認

sp_dropserver 'oldservername' , delete old name
,after that sp_addserver 'actualservername','local' followed by a restart of the SQL service.

Mar 21, 2008

詐騙集團

小女兒出生滿月後就由奶奶一手帶大,直到3歲上幼稚園時,才將她帶回家裡與我們同住,如同一般的祖父母疼愛孫子一樣,爺爺奶奶對她呵護至極,尤其被懲罰時,奶奶更是小女兒的大靠山,
現在女兒已經上小學了,跟爺爺奶奶關係依然親密,有天我檢查女兒的回家作業,發現她的字跡潦草,於是我把不好看的字體全部擦掉,要她重新補上,她在一旁,一邊看著我手上不停擦拭的橡皮擦,一邊掉眼淚,哭著說要打電話跟奶奶告狀,當時我很生氣,明明她自己不專心寫作業,現在不認錯,而且還想找靠山!
我拿起話筒告訴女兒要找奶奶自己打電話,她真的撥起電話號碼,可是,事情有點出乎意外.只聽到她一邊啜泣一邊喊:「奶奶,我是小萱(哭聲)……。」接著很快就把電話掛了,並沒有一把眼淚一把鼻涕的訴苦.
後來,只聽到她哭著大喊:
...

...

...

...

...

...

...

...

...

...

...

「奶奶說我是詐騙集團啦!就把電話給掛了!」

Mar 20, 2008

MimeSweeper sql script

select name from sysdatabases where dbid > 6
go

sp_changedbowner 'sa'
go
sp_changeobjectowner 'Archive.MAILINFO','dbo'
go
sp_changeobjectowner 'Archive.MAILTO','dbo'
go
sp_dropuser 'Archive'
go
sp_changedbowner 'Archive'


CREATE VIEW MAILINFO as
select * from archive20080310..MAILINFO
union all
select * from Archive20080229..MAILINFO
union all
select * from Archive20080218..MAILINFO
union all
select * from Archive20080130..MAILINFO
union all
select * from Archive20080117..MAILINFO
union all
select * from Archive20080116..MAILINFO
union all
select * from Archive20071221..MAILINFO
union all
select * from Archive20071212..MAILINFO
union all
select * from Archive20071205..MAILINFO
union all
select * from Archive20071122..MAILINFO
union all
select * from archive20071113..MAILINFO
union all
select * from archive20071101..MAILINFO
union all
select * from archive20071101..MAILINFO
union all
select * from archive20071024..MAILINFO
union all
select * from archive20071012..MAILINFO
union all
select * from archive20070927..MAILINFO
union all
select * from Archive20070912..MAILINFO
union all
select * from archive20070901..MAILINFO
union all
select * from archive20070831..MAILINFO
union all
select * from archive20070802..MAILINFO
union all
select * from archive20070718..MAILINFO
union all
select * from archive20070627..MAILINFO
GO


CREATE VIEW MAILTO as
select * from archive20080310..MAILTO
union all
select * from Archive20080229..MAILTO
union all
select * from Archive20080218..MAILTO
union all
select * from Archive20080130..MAILTO
union all
select * from Archive20080117..MAILTO
union all
select * from Archive20080116..MAILTO
union all
select * from Archive20071221..MAILTO
union all
select * from Archive20071212..MAILTO
union all
select * from Archive20071205..MAILTO
union all
select * from Archive20071122..MAILTO
union all
select * from archive20071113..MAILTO
union all
select * from archive20071101..MAILTO
union all
select * from archive20071101..MAILTO
union all
select * from archive20071024..MAILTO
union all
select * from archive20071012..MAILTO
union all
select * from archive20070927..MAILTO
union all
select * from Archive20070912..MAILTO
union all
select * from archive20070901..MAILTO
union all
select * from archive20070831..MAILTO
union all
select * from archive20070802..MAILTO
union all
select * from archive20070718..MAILTO
union all
select * from archive20070627..MAILTO

再富,也要窮孩子

~~值得沈思~~
再富,也要窮孩子
前些天,帶兒子去逛書局,他吵嚷著要我買一個精致、昂貴但不實用的鉛筆盒給他,最後我只買了一個麻雀雖小,五臟俱全的給他,他的嘴頓時呶了起來。接著,他看中一個設計小巧玲瓏,曲線優美,尺面圖案喧賓奪主地蓋過刻度的精美塑膠尺,但我買給他的卻是一把木尺。他的嘴嘟得更有“克夫”(curve)了。我不作聲,打算晚上臨睡前才透過故事開導他。
自升為人父之後,我一再提醒自己要貫徹一個與東方社會價值觀反其道而行的育兒理念─「再富,也要窮孩子!」,但幾年下來,我漸感難於堅持下去,直到有一天我輾轉讀到南京大學一佈告欄上,一 封署名為“辛酸的父親”寫給其上大學兒子的“匿名信”之後,才又深感無論如何都得貫徹這個理念。
這封信很有轉述的價值,摘錄如下:

親愛的兒子:
儘管你傷透了我的心,但是你終究是我的兒子。雖然,自從你考上大學,成為我們家幾代唯一一個大學生後,分不清咱倆誰是誰的兒子。
扛著行李陪你去大學報到,掛蚊帳、鋪被子、買飯菜票,甚至教你擠牙膏,這一切,在你看來是天經地義的,你甚至感覺你這個不爭氣的老爸給你這位爭氣的大學生兒子服務,是一件特沾光特榮耀的事。在你讀大學的第一學期,我們收到過你的三封信,加起來比一封電報長不了多少,言簡意賅,主題鮮明,字跡通篇潦草,只一個“錢”字特別工整、而且清晰。大二以後,從你一封接一封的催款信上我們能感受到,言辭之急迫、語調之懇切,讓人感覺你今後大學畢業時可以去當個優秀的討債人……。
最令我痛心的是,今年暑假,你居然偷改入學收費通知,虛報學費…,沒想到你竟也運用這招,來對付生你、養你、愛你、疼你的父親母親,僅僅為了能出入卡拉OK及酒吧…。我一想起這事就痛苦,就失眠!這已成為一種心病,病根就是你─我親手撫養大卻又倍感陌生的大學生兒子。不知在大學你除了增加文化知識和社會閱歷之外,還能否長一丁點善良的心?

閱畢整封信,我想起妻懷孕時一位辛酸的父親,第一次上超音波做掃描時,我最關心的不是胎兒的性別,而是他到底是孤身上路抑或結伴而來─雙胞胎甚或四胞胎?我執教的學校,有二男二女各取名為“歡、樂、新、年”的四胞胎兄妹。我常看到他們 的爸爸拎著四份一模一樣的便當盒,在籬笆外分四次塞給四名可愛的孩子;而每次 看到他們蹦蹦跳跳地回課室享用,便知道他們對便當的“內涵”相當滿意。我身為窮教 員,如果孩子是結伴而來,我所能給他們準備的便當的內容,恐怕會顧得了量而顧不 了質。
我之所有這種顧慮,主要受華人「再苦,不能苦了孩子!」的傳統觀念所影響。直到有一天,我那移居澳洲多年的老同學回國探親,及時給我來個當頭棒喝。
據他說,澳洲人民生活富裕,然而他們在信奉上帝之餘更信奉:「再富,也要“窮”孩子!」的教育理念。他們認為,在過份呵護下長大的孩子,將無法自立並且不懂感恩!
他回國的第二天,我陪他冒著風雨出外辦點事,他指著一個被包裹得像棉花團的華人小孩說:「孩子應當比大人少穿一件衣服!」他說在澳洲,即使冬天時也很難見到「棉花團」;如果是艷陽高照,母親們也會別有用心地、故意不撐開嬰兒車的遮陽棚。
我們東方家庭「再苦,也不能苦孩子!」的做法,看來有糾正的必要了。那天晚上,我思前想後,決定等將來孩子入學了,為他準備一些“其貌不揚”的便當,以窮他物質,富他精神。
我手頭上有這麼一則資料:美國費城納爾遜中學門口有兩尊雕塑,左邊是一隻蒼鷹,右邊是一匹奔馬。雕塑所要表達的不是我們耳熟能詳的鵬程萬里馬到成功,而是象徵一隻餓死的鷹和一匹被剝了皮的馬。
原來,那只蒼鷹,為了加速實現飛遍五大洲七大洋的偉大理想,練就了各種高超優雅的飛行本領,結果忘了學習覓食,只飛了四天就活活餓死了。那匹奔馬嫌第一位主人─ 磨坊老闆給的活多,就乞求上帝把它換到農夫家;而後又嫌農夫餵的飼料少,又要求與其他馬對調,最後到了皮匠家─不必幹活,飼料又多,好不愜意。然而沒過多少天,它的皮就被皮匠剝下來做了皮革!
由此可窺見,一個缺乏起碼的獨立生存能力及不懂感恩的人,無論他有多大的才華,日後有多了不起的成就,都不算是一個健全的人,都是一個生命有缺憾的人。動物界有一套超越萬物之靈的育兒理念,許多動物在它們的幼兒很羸弱時,會把它的幼崽含在嘴或在翼下,怕它們遇險而夭折;但當它們的孩子長大些,它們會毫不留情地把孩子趕離自己身邊,讓它們獨自去經風雨、練本領,甚至不給孩子留下回頭路!只有這麼做,孩子才能經得起任何風浪之襲擊,才能夠絕處逢生。
含在嘴或在翼下和趕離身邊,都是父母對孩子不同的愛的體現,連動物也深懂「慣子如殺子」的道理。
再富也要窮孩子,才能逼孩子學習獨立前行,學會感恩惜福。畢竟…孩子的後半生我們 不一定能參與……。

Mar 14, 2008

Windows NTFS Alternate Data Streams

NTFS file system 提供額外的 Alternate Data Streams 可供 Application 存放資訊 , 且不會變更檔案資料內容與異動日期. 有些AP便利用此 Streams 來處理與控制檔案 .
測試如下 :
建立檔案 1.txt
echo hello > 1.txt:teststreams -- 塞hello 字串給 1.txt 此檔案的 teststreams 標籤
more < 1.txt:teststreams -- 秀1.txt 此檔案的 teststreams 標籤內容

微軟網站有提供刪除 streams 的 tools 與說明
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Streams.mspx

NTFS Streams

NTFS 檔案系統有提供 applications 可以建立檔案或目錄的 data streams 資訊, 增加Streams 不會異動檔案的建立或異動日期, 有些軟體便利用此一 Streams 資料來做處理控制.
Streams 測試如下

退貨的法律規定

(常識)退貨的法律規定<請大家教大家喔~~> 請態度要堅定,千萬別被售貨小姐的晚娘臉給嚇到,他們搬出公司法條,你就搬出國家法條,反正該退的貨,一定要退,才不會對不起自己啊……
不知道是為什麼 , 我這雙手就像是被魔法詛咒了一般,每次買東西,即使千挑萬選,但就是會買到瑕疵品回家。再加上耳根軟,抵擋不住推銷員的三寸不爛之舌 , 常常抱一些隔天就看不順眼的衣服回家。不過,我也不會因此受氣,因為本人的臉皮夠厚,只要我不喜歡,不管在多遠買的,
我都會拿去「退貨」。
首先,有瑕疵的商品比較好退。像許多超市買回來的食物,要拆掉保鮮膜才能確定品質如何,因此,我家附近的超市就被我退過發臭的雞腿、切開後發爛的西瓜、底下那面發黴的蓮霧等。
沒有瑕疵,純粹只是買回來就看不順眼的東西就比較難退了。早年,在消費者保護法(簡稱消保法)還沒出爐時,那時要退貨全講運氣,碰到刁難的售貨小姐常常鎩羽而歸。但消保法出爐後,即情勢逆轉,退貨好退多了!
拿我最常退的衣服來講吧!
「小姐,這是我前天買的衣服,我想退!」
「哦!請問是那裡有問題嗎?」
「沒有,只是我不喜歡了,想退。」
「抱歉,公司規定沒有壞就不能退。」
「可是,根據消保法規定,凡是這種有人推銷的買賣,只要在七日內我都可以退貨,
不須任何理由啊!如果你不讓我退,我可以去消基會檢舉。 」
通常,拿出消保法後,小姐就會讓我退了,但還是有不肯的。
有一次,小姐指著牆壁上A4的公告:「貨既售出,概不退換 」,再加上桌上貼的:「折扣期間,恕不退換 」。
很多人看到這種情況可能就會打退堂鼓了吧!錯了,「小姐,你們這樣寫是犯法的你知道嗎?消保法規定不能以這種契約形式來約束消費者,所以就算你們公司有這樣寫也沒用,衣服你還是得給我退。 」
可是,有時即使法條都搬出來了,售貨小姐還是不肯退,以前我還曾為此與小姐吵了一個小時。
現在聰明了,有些售貨小姐因為職位較基層,在她們心中,公司規定絕對大於法律規定,若硬不讓退貨,也不必跟她們吵,直接找公司就行了。
在百貨公司買的,就找百貨公司的客服部,在專賣店的,就直接找那個品牌的總公司客服部。
根據我的經驗,這些經理級的人的確都比較有法律的觀念,跟他們溝通後(消保法還是得拿出來用),就會讓我退了。尤其是在百貨公司,現在都有退貨的觀念了,什麼都不須要解釋,就有客服人員服務到好。
另外,還有一種常見的拒絕退貨理由,「小姐,很抱歉,我們公司規定掛牌剪下後就不能退貨了!」
這種也是不成立的說詞,我買衣服回家穿,掛牌當然要剪掉啊,就像包裝要拆一樣嘛!
只要衣服本身完整,並無損壞,公司還是得退的。

退貨時,還有個必勝招數,就是「態度要堅定」,千萬別被售貨小姐的晚娘臉給嚇到,他們搬出公司法條,你就搬出國家法條,反正該退的貨,一定要退,才不會對不起自己啊!
另外,許多售貨小姐會勸你用換的,通常價錢若不到原價的話,還會再勸你買一點其他的東西 , 如果真能換到自己喜歡的東西也不錯,但若換的東西還是不太喜歡,也不必勉強自己,該退的,還是要退的。
P.S.:還有一條也是最近消保法才成立的~
以前妳跟別人定貨~因為商人怕妳跑掉~都會叫妳先給幾成的定金~不過等事後妳後悔了~在跟商人說~你不要這個東西時~一般商人都不會退你定金~可是現在因為消保法有規定~商人必須要給消費者15天的考慮期~若消費者在這15天內後悔~商人都必須將定金全數退回~否則妳都可以去消基會檢舉~

人生總有許多心情

你能用同一件事情描述以下的心情嗎?
為難、幸運、高興、後悔、羞愧、
痛苦、鬱悶、孤獨、委屈、鬱忿、崩潰。
不知道的請參考下面:





人生總有許多心情

為難:在擁擠的電梯裏想放屁。
幸運:在屁出來之前,其他人都下電梯了。
高興:電梯裏只有自己一人,輕鬆自在的放一個屁。
後悔:太臭了,連自己都忍受不了。
羞愧:臭味消散之前,有人上電梯 。
痛苦:電梯裏只有自己和另一個人,那個人放了一個更臭的屁 。
鬱悶:放屁的那個人裝作若無其事 。
孤獨:放屁的人先下了電梯,自己獨自忍受屁臭 。
委屈:屁兒沒散盡之前,又有人上電梯 。
鬱忿:跟媽媽上電梯的孩子指著我說:媽媽,他放屁 。
崩潰:媽媽告訴孩子:總有不自愛的人!

(太爆笑了~)- -

金庸與羅琳

冷.......

一個年紀比較大的人問一個年輕人:
你有看過金庸小說嗎?
年輕人:沒有,只有看過電視劇。
大人:那你知道金庸寫的十四部小說的書名的第一個字,
串起來會成為一首詩:「飛雪連天射白鹿,笑書神俠倚碧鴛」嗎?
年輕人:不知道。但是我有看 JK 羅琳的小說,
她寫的七本小說的書名的第一個字串起來是——





哈哈哈哈哈哈哈!

Windows Process Monitor and Process Explorer

Windows Process Monitor 可從此下載 Process Monitor
Monitor file system, Registry, process, thread and DLL activity in real-time.
Process Monitor 可察看使用到的 Registry , File 名稱與結果,
記得用Filter 功能取出要看的資訊 .

Windows Process Explorer 可從此下載 Process Explorer
Find out what files, registry keys and other objects processes have open, which DLLs they have loaded, and more. This uniquely powerful utility will even show you who owns each process.
Process Explorer 可用來查看Process 使用到哪些DLL, DLL版本,leaks 與所開發的公司資訊

我可以為你擋死

星光大道2 vs 超級偶像(梁文音vs 江明娟) 我可以為你擋死

Mar 12, 2008

Router : show access-list result

# show access-list

Extended IP access list 100
10 permit ip 192.168.10.0 0.0.1.255 any ->10.* and 11.* can to any
20 permit ip 192.168.34.0 0.0.0.255 192.168.5.0 0.0.0.255 ->34.* can to 5.*
30 permit ip 192.168.36.0 0.0.0.255 192.168.5.0 0.0.0.255 ->36.* can to 5.*
40 deny ip 192.168.34.0 0.0.0.255 any ->Deny 34.* to any
50 deny ip 192.168.36.0 0.0.0.255 any ->Deny 36.* to any
60 permit ip any 192.168.1.0 0.0.0.255
70 permit ip any 192.168.2.0 0.0.0.255
80 permit ip any 192.168.50.0 0.0.1.255
90 permit ip any 192.168.58.0 0.0.0.255
100 permit ip any 192.168.61.0 0.0.0.255
110 permit ip any 192.168.20.0 0.0.1.255
120 permit ip 192.168.12.0 0.0.0.3 any
130 permit ip host 192.168.33.1 any ->192.168.33.1 can to any
140 permit ip any 192.168.3.0 0.0.0.3 -> any can to 3.1 and 3.2
150 permit ip host 192.168.4.1 any
160 permit ip any 192.168.52.0 0.0.0.3
170 permit ip host 192.168.56.1 any
180 deny ip any 192.168.0.0 0.0.63.255 -> Deny any to 1~63.*
190 permit ip any any -> Allow other IP , for internet route use

Mar 11, 2008

雖然好笑,卻也是事實 ( 證嚴法師說.... )

證嚴法師說.... .
開快車...
如果拼ㄉ過只是比平常提早5分鐘到家....
如果拼不過可能要晚7天回家...........



也就是頭七那天晚上才能回家.............*_*~~lll
開車還是小心駕駛最保險....

小朋友英文學習網站

可以給小朋友玩!!!!!
超讚的英文學習網站
http://www.starfall.com/
每個字母都有發音和練習字型,
仔細看,在發亮閃動處點選進去,
會有動畫表現喲!
記得開喇叭,聲音表現得不錯,
而且可以反覆地聆聽!
聽說這是一個自小有學習障癡的外國人所製作,
內容真的很不錯!
重點在於,免登入會員,也免收費,
相較國內的英文教學網站做得很差,又死要錢,簡直天差地別!
發現了這個網站心裡很高興,
特別發信,告訴你--我的朋友!
可以藉這個網站和小朋友一起學習,互動囉!

勞保年資多少年

想知道您的勞保年資多少年? 可利用勞保局(中華電信)語音查詢電話…
412-6666 或 412-1111 轉 123#
按2
按2
輸入: 英文代碼 +身份證字號 再按#
如:J 221205062 為 10221205062 #

A:01 B:02 C:03 D:04 E:05 F:06 G:07 H:08 I:09 J:10 K:11 L:12 M:13
N:14 O:15 P:16 Q:17 R:18 S:19 T:20 U:21 V:22 W:23 X:24 Y:25 Z:26

正確按1 就會自動告知有效年資哦

錯誤按2..... 重新輸入

PS:其中功能不止這個 .各位可仔細慢慢聽語音 .有關勞保事項都可由此電話得到解答

Mar 10, 2008

工作的關鍵

工作的關鍵
對日本人來說,泡茶招呼客人是一個很重要的儀式,如果泡的茶不好喝,客人常會直接推斷這個公司一定管理不好,所以泡茶事小,卻是重要性很高的工作。
有一位大學畢業的少女,非常嚮往記者的工作,於是去投考新聞機構。她被錄取了,但是,由於沒有記者的空缺,主管叫她暫時作一些為同事泡茶的工作。對一個滿懷夢想的大學生,只為大家泡茶,心裡當然非常失望。不過,想到公司也不是有意輕視她,待遇也不錯,就安慰自己不用急,將來還是有機會的。於是,坦然去上班,每天為同事泡茶倒茶。
三個月過去了,她開始沈不住氣了。心裡總是抱怨:「我好歹也是大學生耶!卻天天來為你們泡茶。」這樣一想,她泡茶就不像從前那樣愉快,泡出來的茶,也就一天不如一天了,但她並不自覺。
又過了一段時間,有一天,她泡好茶端給經理喝,經理喝了一口,就大罵起來:「這茶怎麼泡的,難喝的要命。虧你還是大學畢業呢!連泡杯茶都不會。」她真的氣炸了,幾乎哭了出來:「誰要在這個鬼地方繼續泡茶呢!」正準備當場辭職的時候,突然來了重要訪客,必須好好招待。她只好收拾起不滿與委屈,想,反正要離開了,就好好泡一壺茶吧!於是,認真的泡好茶,當她把茶端出去,轉身才要離開時,突然聽到客人由衷的一聲讚嘆:「哇!這茶泡得真好。」別的同事,連那位罵她的經理都端起來喝,紛紛情不自禁的讚美:「這壺茶真的特別好喝!」
就在那一刻,她自己也呆住了。想著,只是小小的一杯茶而已,竟然造成那麼大的差異,或被上司罵,或被大家讚不絕口,這茶裡顯然有很深奧的學問,我要好好的去研究…。從此以後,她不但對水溫、茶葉、茶量都悉心琢磨,就連同事的喜好、心情,也細心的體會;甚至,連自己泡茶時的心情狀態會帶來的結果,也瞭若指掌。
很快的,她成為公司的靈魂人物,不久她被升為經理,因老闆想:「泡茶時那麼細心專心的人,一定是很精明難得的人才!」一個轉念間,可以泡出完全不同評價的茶,用心與不用心之間的差別,不可以道里計。了解自己的任務與貢獻,並對細微的地方用心,才能讓人體驗到被接受與被照顧。尤其在e時代所有行業已成為服務業的年代中,這樣的用心已成為經營致勝的關鍵要素。不只是對顧客要比人性、比貼心、比創意,對員工也是要比人性、比貼心、比創意。
所以在你的事業當中甚麼工作是等同於日本女孩的泡茶工作?對你業務往來中重要儀式是甚麼?哪些不起眼的工作卻是扮演了關鍵性的作用?在你的公司中能把不起眼的工作做好,而且是精明難得的人才是誰?你了解在做這些不起眼工作的人的心情轉折嗎?經驗過悉心琢磨、細心體會、瞭若指掌的過程嗎?
了解人的特性與長處是領導人成就工作的關鍵,你是否用心去了解你的夥伴了呢?對於只有經過歷練才會成就人才,你是如何培育發展人才的呢?新世代的年輕人對這些歷練會如何解讀呢?經過這個故事的反思你對你的事業與工作有哪些新看法?有甚麼新的決定?

Mar 7, 2008

Useful Unix commands for DBAs

Useful Unix commands for DBAs

Here are some useful Unix/Linux commands which you will find handy in your day-to-day life as an Oracle DBA. Most of these commands are just query commands and will not change / alter anything on the operating system. Commands whch can change / alter anything at operating system level are denoted with Caution sign. However please use due diligence in using these commands. Please also note that the output may differ depending on the version and flavor of Unix that you are using.

Do give your feedback, suggestions and contribution to improve this page.

Memory

Display total RAM (Memory) on the server

Tru64 Unix uerf –r 300 | grep –i mem
Solaris prtconf | grep –i mem
Linux free
HP-UX swapinfo –tm
AIX lsdev –C | grep mem
lsattr –El

$ lsdev -C | grep mem

Output on AIX

mem0 Available 00-00 Memory

$ lsattr -El mem0

size 1536 Total amount of physical memory in Mbytes False
goodsize 1536 Amount of usable physical memory in Mbytes False

Display paging utilization

lsps –a (provides a snapshot of the current utilization of each of the paging spaces on a system)

Output on AIX

Page Space Physical Volume Volume Group Size %Used Active Auto Type
paging01 hdisk4 dbvg2 2560MB 9 yes yes lv
hd6 hdisk0 rootvg 512MB 42 yes yes lv

lsps -s (provides a summary of the total active paging space and its current utilization)

Output on AIX

Total Paging Space Percent Used
4096MB 1%

Display memory utilization on Linux

To read memory usage in Linux, please use "free" command. As you said, you may noticed that most the memory had been used, here is the example,

# free

Output on Linux
total used free shared buffers cached
Mem: 26871344 15263128 11608216 0 374036 13635804
-/+ buffers/cache: 1253288 25618056
Swap: 54524600 0 54524600

"cached" memory basically are free to be used. The Linux philosophy is keeping resource idle/wasted as little as it can. Keeping the cache means that if something needs the same data again. You will notice the cached is very little during the system just rebooted, but it keeps growing if you leave it running for days.

If you want to know the memory used, please read the second line. The -/+ buffers/cache line shows how much memory is used and free from the perspective of the applications. So, for this example, we still have 25GB memory free to be used.

The bottom line is as far as swap is not being used (third line from the example), memory usage isn't impacting system performance. Refer to URL for more information. http://www.redhat.com/advice/tips/meminfo.html

Which process is using memory at O/S (AIX)

The following command displays the memory usage statistics for the top ten processes. If you do not specify a number, it will display all the processes currently running in this system.

# svmon -Pau 10

Output on AIX

Pid Command Inuse Pin Pgspace 15012 maker4X.exe 4783 1174 4781
2750 X 4353 1178 5544
15706 dtwm 3257 1174 4003
17172 dtsession 2986 1174 3827
21150 dtterm 2941 1174 3697
17764 aixterm 2862 1174 3644
2910 dtterm 2813 1174 3705
19334 dtterm 2813 1174 3704
13664 dtterm 2804 1174 3706
17520 aixterm 2801 1174 3619

Pid: 15012
Command: maker4X.exe

Segid Type Description Inuse Pin Pgspace Address Range

1572 pers /dev/hd3:62 0 0 0 0..-1
142 pers /dev/hd3:51 0 0 0 0..-1
1bde pers /dev/hd3:50 0 0 0 0..-1
2c1 pers /dev/hd3:49 1 0 0 0..7
9ab pers /dev/hd2:53289 1 0 0 0..0
404 work kernel extension 27 27 0 0..24580
1d9b work lib data 39 0 23 0..607
909 work shared library text 864 0 7 0..65535
5a3 work sreg[4] 9 0 12 0..32768
1096 work sreg[3] 32 0 32 0..32783
1b9d work private 1057 1 1219 0..1306 : 65307..65535
1af8 clnt 961 0 0 0..1716
0 work kernel 1792 1146 3488 0..32767 : 32768..65535

Pid 15012 is the process ID that has the highest memory usage. The Command indicates the command name, in this case maker4X.exe. The Inuse column (total number of pages in real memory from segments that are used by the process) shows 4783 pages (each page is 4 KB). The Pin column (total number of pages pinned from segments that are used by the process) shows 1174 pages. The Pgspace column (total number of paging-space pages that are used by the process) shows 4781 pages.

Displaying Allocated RAM Memory Segments in Unix

ipcs –pmb (Inter process control system)

$ ipcs -pmb

Output on AIX

IPC status from /dev/mem as of Fri Aug 2 15:20:20 WAUST 2002
T ID KEY MODE OWNER GROUP SEGSZ CPID LPID
Shared Memory:
m 131072 0x58000932 --rw-rw-rw- root system 134217728 6990 47580
m 1 0x0d003187 --rw-rw-rw- root system 1440 11872 27654
m 131074 0xffffffff --rw------- root system 104857600 45198 45198
m 2621443 0x05c17710 --rw-r----- crpor11i oradba 368291840 25196 29384
m 1310724 0x50942e5c --rw-r----- devor11i oradba 405147648 25450 46580

Identify all held RAM memory segments & release the RAM memory from Unix

ipcs –pmb (To check for held memory)

Output on AIX

IPC status from /dev/mem as of Fri Aug 2 14:27:14 WAUST 2002
T ID KEY MODE OWNER GROUP SEGSZ CPID LPID
Shared Memory:
m 131072 0x58000932 --rw-rw-rw- root system 134217728 6990 47580
m 1 0x0d003187 --rw-rw-rw- root system 1440 11872 7812
m 131074 0xffffffff --rw------- root system 104857600 45198 45198
m 2621443 0x05c17710 --rw-r----- crpor11i oradba 368291840 25196 39296
m 1310724 0x50942e5c --rw-r----- devor11i oradba 405147648 25450 39290

caution ipcrm –m 1310724 (To release the memory)

CPU

Displaying the No. of CPU processors in UNIX

AIX lsdev –C | grep Process | wc –l
HP-UX ioscan –C processor | grep processor | wc –l
Solaris psrinfo –v | grep “Status of Processor” | wc –l
Linux cat /proc/cpuinfo | grep processor | wc –l

Display top CPU Consumers with ps

$ ps –ef | sort +7 | tail

Output on AIX

devor11i 30420 1 0 02:36:10 - 0:05 oracleDEV (LOCAL=NO)
devor11i 33088 1 0 02:36:10 - 0:06 oracleDEV (LOCAL=NO)
devor11i 41300 1 0 02:36:06 - 0:01 oracleDEV (LOCAL=NO)
devor11i 48032 1 2 13:46:19 - 0:02 oracleDEV (LOCAL=NO)
crpor11i 18498 7812 2 14:12:49 pts/0 0:00 ps -ef
crpap11i 31850 1 0 06:17:06 - 0:00 rwmts60 name=REP60_CRP
devap11i 32832 1 0 02:35:31 - 0:00 rwmts60 name=REP60_DEV
crpor11i 48448 7812 1 14:12:49 pts/0 0:00 sort +7
crpor11i 39190 7812 0 14:12:49 pts/0 0:00 tail
root 15182 9030 0 13:24:19 - 0:00 telnetd -a

ps auxgw | sort +2 | tail

The third column of this listing (%CPU) shows the percentage of CPU used.

Output on AIX

USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND

crpor11i 42412 0.1 1.0 29420 16164 - A 06:15:58 0:30 ora_qmn0_CRP
devor11i 48032 0.1 1.0 30252 16036 - A 13:46:19 0:03 oracleDEV (LOCAL
=NO)
crpor11i 27526 0.1 1.0 30372 17336 - A 12:53:46 0:10 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
root 2888 0.2 0.0 164 36 - A Jul 20 73:42 /usr/sbin/syncd 60 crpor11i 34816 0.3 1.0 31916 18888 - A 13:43:29 0:12 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
root 45198 0.3 7.0 175204 103064 - A Jul 24 67:10 dsmserv quiet
crpor11i 43620 0.4 1.0 32264 19236 - A 13:58:23 0:08 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
root 774 47.1 0.0 12 7492 - A Jul 20 17411:25 kproc
root 516 48.0 0.0 12 7492 - A Jul 20 17723:26 kproc

ps augxww | grep “RSS| “ | head

Output on AIX

USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 516 48.0 0.0 12 7492 - A Jul 20 17725:33 kproc
root 774 47.1 0.0 12 7492 - A Jul 20 17413:32 kproc
crpor11i 46568 1.9 1.0 29768 16728 - A 14:16:18 0:02 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
crpor11i 43620 0.4 1.0 32264 19236 - A 13:58:23 0:08 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
crpor11i 34816 0.3 1.0 31924 18896 - A 13:43:29 0:14 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))
root 45198 0.3 7.0 175204 103012 - A Jul 24 67:10 dsmserv quiet
root 2888 0.2 0.0 164 36 - A Jul 20 73:42 /usr/sbin/syncd 60 root 47586 0.1 0.0 1296 212 - A Jul 24 26:07 dtgreet
crpor11i 27526 0.1 1.0 30372 17336 - A 12:53:46 0:10 oracleCRP (DESCR
IPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))

To display processes consuming CPU% & elapsed time

ps -aef -o ruser,pid,pcpu,args,etime,

Output on AIX

app_prd 6504490 0.1 f60runm webfile=5,13090,ebspap1_9000_ebspr 04:05:37
app_prd 6512660 0.0 f60runm webfile=5,14982,ebspap1_9000_ebspr 01:18
app_prd 6516842 0.0 f60runm webfile=5,14058,ebspap1_9000_ebspr 02:11:32
app_prd 6520950 0.0 f60runm webfile=5,13662,ebspap1_9000_ebspr 02:50:33
app_prd 6533186 0.2 f60runm webfile=5,14771,ebspap1_9000_ebspr 30:17
app_prd 6541388 0.0 f60runm webfile=5,14886,ebspap1_9000_ebspr 15:33
app_prd 6557804 0.6 f60runm webfile=5,14865,ebspap1_9000_ebspr 18:29
app_prd 6562028 0.0 /a01/app/app_prd/product/ebsprdiAS/Apache/ 2-13:42:42
app_prd 6570158 0.1 f60runm webfile=5,12980,ebspap1_9000_ebspr 04:38:38
app_prd 6574202 0.0 d2ls60 9100 9200 2-13:42:30
app_prd 6582450 0.0 /a01/app/app_prd/product/ebsprdiAS/Apache/ 2-13:42:39
app_prd 6586452 0.1 f60runm webfile=5,14453,ebspap1_9000_ebspr 01:17:47

Monitoring CPU Run-Queue with sar command

sar -qu 5 5 (ATT)

Output on AIX

10:58:02 runq-sz %runocc swpq-sz %swpocc
%usr %sys %wio %idle
10:58:07 2.8 100
0 2 4 94


Note: The CPU is spending most (94%) of its time in idle mode. This CPU is not being heavily used at all. Generally it is alright to have a CPU that is 0% idle as long as the RUN-QUEUE is not too large. In this case the run queue is 100% occupied (there is always a process waiting to be run) and there are an average of 2.8 processes waiting to be run in the RUN-QUEUE. You want to keep the RUN-QUEUE under 5-6 for a single CPU machine. If the run queue gets any larger that those values you will see some performance degradation. Two solutions to this are:

Obtain a faster processor
Use more CPU's.

Avoid overloading your CPU. Response time on your machine will suffer if it is overloaded. Try to keep the run queue 100% occupied and have less that 6 processes waiting to be run for one CPU. This changes as you add more CPU's or a faster CPU. You may also want to avoid the CPU spending most of its time (more than 50%) in system mode. This may indicate that you are spending too much time in kernel mode servicing interrupts, swapping processes etc.

Disk

To list the disks/tapes on the Server

To list the tapes on your system

$ lsdev -C -c tape

Output on AIX

rmt0 Available 40-60-00-0,0 SCSI 4mm Tape Drive
smc0 Available 21-08-00-5,0 IBM 3581 Tape Medium Changer
rmt1 Available 21-08-00-6,0 IBM 3580 Ultrium Tape Drive

To list the disks on your system

$ lsdev -C -c disk

hdisk0 Available 40-60-00-4,0 16 Bit LVD SCSI Disk Drive
hdisk1 Available 40-60-00-8,0 16 Bit LVD SCSI Disk Drive
hdisk2 Available 11-08-00-0,0 SCSI Disk Array RAID 5
hdisk3 Available 11-08-00-1,0 SCSI Disk Array RAID 5
hdisk4 Available 14-08-L SSA Logical Disk Drive
hdisk5 Available 31-08-L SSA Logical Disk Drive
hdisk6 Available 31-08-L SSA Logical Disk Drive
hdisk7 Available 14-08-L SSA Logical Disk Drive
hdisk8 Available 14-08-L SSA Logical Disk Drive

Viewing UNIX volume groups

$ lsvg –o

-o Lists only the active volume groups (those that are varied on). An active volume group is one that is available for use.

Output on AIX

appvg1
rootvg

lsvg –l

For details on a specific volumne group, you can use lsvg –l, passing the volume group name as a parameter

$ lsvg -l rootvg

Output on AIX

rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 2 2 closed/syncd N/A
hd6 paging 16 32 2 open/syncd N/A
hd8 jfslog 1 2 2 open/syncd N/A
hd4 jfs 5 10 2 open/syncd /
hd2 jfs 42 84 2 open/syncd /usr
hd9var jfs 3 6 2 open/syncd /var
hd3 jfs 36 72 2 open/syncd /tmp
hd1 jfs 3 6 2 open/syncd /home
pridumplv sysdump 5 5 1 open/syncd N/A
softwarelv jfs 8 8 1 closed/syncd /software
scriptslv jfs 8 8 1 open/syncd /scripts

lsvg –o | xargs lsvg –l

The xargs UNIX command is used to pass the complete output of the first command (lsvg –o in this case) one at a time to the lsvg –l command.

$ lsvg -o | xargs lsvg -l

Output on AIX

appvg1:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
orastagelv jfs 122 122 1 open/syncd /orastage
loglv00 jfslog 1 1 1 open/syncd N/A
crpr11ilv jfs 160 160 1 open/syncd /crpr11i
prdap11i jfs 120 120 1 open/syncd /prdap11i
paging00 paging 20 20 1 open/syncd N/A
testbkup jfs 120 120 1 closed/syncd /testbkup

rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 2 2 closed/syncd N/A
hd6 paging 16 32 2 open/syncd N/A
hd8 jfslog 1 2 2 open/syncd N/A
hd4 jfs 5 10 2 open/syncd /
hd2 jfs 42 84 2 open/syncd /usr
hd9var jfs 3 6 2 open/syncd /var
hd3 jfs 36 72 2 open/syncd /tmp
hd1 jfs 3 6 2 open/syncd /home
pridumplv sysdump 5 5 1 open/syncd N/A
softwarelv jfs 8 8 1 closed/syncd /software
scriptslv jfs 8 8 1 open/syncd /scripts

Display Unix Mount Points

df –k

A UNIX mount point is the UNIX location of disk storage. As a Oracle DBA you should know the mapping between your physical disks, logical volumes and mount points.

$ df -k

Output on AIX

Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 163840 138700 16% 1376 2% /
/dev/hd2 1376256 144952 90% 31234 10% /usr
/dev/hd9var 98304 89588 9% 457 2% /var
/dev/hd3 1179648 968404 18% 468 1% /tmp
/dev/hd1 98304 72612 27% 256 2% /home
/dev/orastagelv 15990784 3335864 80% 21256 1% /orastage
/dev/crpr11ilv 20971520 10737752 49% 85411 2% /crpr11i
/dev/scriptslv 262144 105352 60% 90 1% /scripts
/dev/prdap11i 15728640 5718636 64% 84626 3% /prdap11i

Show mount points for a Disk

$ lspv

Output on AIX

hdisk0 000780ffaac20aee rootvg
hdisk1 000780ffdb900f40 rootvg
hdisk2 000780ffdde9b3e7 dbvg1
hdisk3 000780dfddf63eb8 appvg1
hdisk4 000780dff8276946 dbvg2
hdisk5 none None

lspv –l

You can use the physical volume command lspv to display disk mount points in IBM AIX.

$ lspv -l hdisk0

Output on AIX

hdisk0:
LV NAME LPs PPs DISTRIBUTION MOUNT POINT
hd5 1 1 01..00..00..00..00 N/A
hd6 16 16 00..16..00..00..00 N/A
pridumplv 5 5 00..05..00..00..00 N/A
scriptslv 8 8 00..08..00..00..00 /scripts
hd8 1 1 00..00..01..00..00 N/A
hd4 5 5 00..00..05..00..00 /
hd2 42 42 00..00..42..00..00 /usr
hd9var 3 3 00..00..03..00..00 /var
hd3 36 36 00..00..36..00..00 /tmp
hd1 3 3 00..00..03..00..00 /home

Miscellenous

To see the Server Configuration

$ prtconf

Output on AIX

System Model: IBM,7026-6H1
Processor Type: PowerPC_RS64-IV
Number Of Processors: 4
Memory Size: 6144MB
Good Memory Size: 6144MB
Firmware Version: IBM,M2P030828_condor_
Console Login: enable
Auto Restart: true
Full Core: true

Network Information
Host Name: dbsrv
IP Address: 137.40.1.100
Sub Netmask: 255.255.254.0
Gateway: 137.40.1.1
Name Server: 137.40.1.50
Domain Name: asagarwal.com

Paging Space Information
Total Paging Space: 4096MB
Percent Used: 1%

Displaying Server Kernel Values (AIX)

$ lsdev –C

This command will display all of the attached components including disk, memory, CPUs, buses and other hardware components.

Output on AIX

sys0 Available 00-00 System Object
sysplanar0 Available 00-00 System Planar
pci0 Available 00-fff7f09000 PCI Bus
pci1 Available 00-fff7f0a000 PCI Bus
pci2 Available 00-fff7f08000 PCI Bus
isa0 Available 10-80 ISA Bus
sa0 Available 01-S1 Standard I/O Serial Port
sa1 Available 01-S2 Standard I/O Serial Port
sa2 Available 01-S3 Standard I/O Serial Port
sa3 Available 01-S4 Standard I/O Serial Port
siokma0 Available 01-K1 Keyboard/Mouse Adapter
fda0 Available 01-D1 Standard I/O Diskette Adapter
pci3 Available 10-58 PCI Bus
scsi0 Available 11-08 Wide/Fast-20 SCSI I/O Controller
pci4 Available 10-5a PCI Bus
pci5 Available 10-5c PCI Bus
pci6 Available 10-5e PCI Bus
pci7 Available 20-58 PCI Bus
ssa0 Available 21-08 IBM SSA 160 SerialRAID Adapter (14109100)
pci8 Available 20-5a PCI Bus
mg20 Available 24-08 GXT130P Graphics Adapter
pci9 Available 20-5b PCI Bus
pci10 Available 20-5c PCI Bus
pci11 Available 20-5e PCI Bus
……………….
……………….
……………….

To see the base values for the server in AIX

$ lsattr –El sys0

This is useful for displaying UNIX kernel variables that are used by Oracle such as maxuproc and maxbuf

Output on AIX

keylock normal State of system keylock at boot time False
maxbuf 20 Maximum number of pages in block I/O BUFFER CACHE True
maxmbuf 0 Maximum Kbytes of real memory allowed for MBUFS True
maxuproc 128 Maximum number of PROCESSES allowed per user True
autorestart false Automatically REBOOT system after a crash True
iostat false Continuously maintain DISK I/O history True
realmem 1572864 Amount of usable physical memory in Kbytes False
conslogin enable System Console Login False
fwversion IBM,M2P011204 Firmware version and revision levels False
maxpout 0 HIGH water mark for pending write I/Os per file True
minpout 0 LOW water mark for pending write I/Os per file True
fullcore false Enable full CORE dump True

Displaying System Log Messages

$ errpt –a | more

Output on AIX

----------------------------------------------------------
LABEL: CORE_DUMP
IDENTIFIER: C60BB505

Date/Time: Thu Aug 1 23:40:47
Sequence Number: 13368
Machine Id: 000780DF4C00
Node Id: db11i
Class: S
Type: PERM
Resource Name: SYSPROC

Description
SOFTWARE PROGRAM ABNORMALLY TERMINATED

Probable Causes
SOFTWARE PROGRAM

User Causes
USER GENERATED SIGNAL

Recommended Actions
CORRECT THEN RETRY

How to Tell if OS is a 32-Bit or 64-Bit

AIX

lslpp -l bos.64bit

Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.64bit 4.3.3.79 APPLIED Base Operating System 64 bit
Runtime

Path: /etc/objrepos
bos.64bit 4.3.3.79 APPLIED Base Operating System 64 bit
Runtime

You will also need to check if the hardware is 32/64 bit enabled. You can do this by issuing 'bootinfo -y' as the unix root user.

# bootinfo -y
64

Example of 32-bit AIX OS

lslpp -l bos.64bit
lslpp: Fileset bos.64bit not installed.

HP-UX

getconf KERNEL_BITS
64

Linux – RedHat

# uname -i
i386

# uname -i
X86_64

To check the OS Version

AIX

oslevel –r

HP-UX / Linux

uname –a

To see the previous logons and logoffs

last

The last command is generally used to display, in reverse chronological order, all previous logins and logoffs recorded in the /var/adm/wtmp file.

oracle pts/0 10.81.1.92 Jun 23 13:43 still logged in.
oracle pts/0 10.81.1.92 Jun 16 10:37 - 10:51 (00:13)
oracle pts/0 10.81.1.92 Jun 15 08:34 - 09:09 (00:35)
ashish pts/1 10.81.1.110 Jun 14 11:24 - 11:24 (00:00)
root ftp 137.40.68.207 Jun 14 10:53 - 10:54 (00:00)
root ftp cch70 Jun 14 10:33 - 10:35 (00:01)
root ftp 10.81.1.110 Jun 14 10:29 - 10:30 (00:01)
ashish pts/1 10.81.1.110 Jun 14 10:24 - 11:24 (01:00)
ashish pts/0 10.81.1.110 Jun 14 10:24 - 10:24 (00:00)
root ftp 10.81.1.110 Jun 14 10:21 - 10:23 (00:02)
ashish pts/1 10.81.1.110 Apr 20 09:57 - 09:57 (00:00)

Some Examples

The last command can also be used to determine when the system was last shut down. The syntax of the command follows:

# last shutdown

If you want to find out when the user root logged on and off from the console, enter the command:

# last root console

To see When the Server was started

uptime

01:57PM up 2 days, 22:40, 1 user, load average: 1.11, 0.57, 0.40

To shutdown the Server

Cautionshutdown –Fr

This command will shutdown and Fast Restart the Server.

At times, it may be necessary to properly close down all the applications and other user processes without issuing a kill command to end the processes. You can achieve this by adding your desired commands and actions to a file named /etc/rc.shutdown. The /etc/rc.shutdown file is checked each time a shutdown command is issued. If the file exists, it will be run; otherwise, the system will perform a regular shutdown depending on the flags that are used to bring the system down.

/etc/rc.shutdown must be set as executable before it can called by the /usr/sbin/shutdown script.

To kill all the oracle process from OS

Cautionps –ef | grep “ora_” | grep –v grep | awk ‘{print $2}’ | -exec kill –9 {} \ ;

Show number of active Oracle dedicated Connection Users

ps –ef | grep $ORACLE_SID | grep –v grep | grep –v ora_ | wc -l

Remarks: If you are not using multithreaded server this command will give you an accurate count of the number of Oracle connections on the Unix Server

Killing Stubborn Unix Tasks

Cautioncat /dev/null > /dev/ttyname kill –9

Remarks: This command is indispensable when killing stubborn UNIX tasks.

vmstat

r (run queue)
the run queue value shows the number of tasks executing and waiting for cpu resources. When this number exceeds the number of CPUs on the server, a CPU bottleneck exists, and some tasks are waiting for execution.
Pi (page in)
a page in operation occurs when the server is experiencing a shortage of RAM memory. While all virtual memory server will page out to the swap disk, page in operations show that the server has exceeded the available RAM storage. Any nonzero value for pi indicates excessive activity as RAM memory contents are read in from the swap disk
Us (user CPU)
this is the amount of CPU that is servicing the user tasks
Sy (system CPU)
this is the percentage of CPU being used to service system tasks.
Id (idle)
this is the percentage of CPU that is idle
Wa (wait)
this shows the percentage of CPU that is waiting on external operations such as disk I/O

Output on AIX

kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 1 286902 1063 0 0 0 32 90 0 146 1059 180 3 1 87 8
0 2 287086 257 0 54 0 0 0 0 400 995 758 11 2 52 35
0 3 287086 137 0 0 0 0 0 0 343 807 240 10 0 66 23
0 2 287086 120 0 0 0 0 0 0 261 854 107 2 0 96 2
0 2 287086 124 0 1 0 1 4 0 223 484 66 1 1 97 2

sar utility on Unix

The sar utility is short for System Activity Reporter.

Usage : sar 2 5

sar –b Monitor Unix buffer Activity
sar –u Monitor CPU Usage
sar –w RAM Memory Switching & Swapping Activity
sar –d Monitor disk usage

# sar -u 5 5

Output on AIX

AIX dbsrv 3 4 000106DF4C00 09/21/02

17:05:35 %usr %sys %wio %idle
17:05:40 23 22 1 54
17:05:45 23 18 0 59
17:05:50 22 17 0 60
17:05:55 33 35 0 32
17:06:00 34 42 0 24

Average 27 27 0 46

# sar -b 3 5

sar –b command reports buffer activity which equates to disk I/O and is especially helpful if you suspsect that your database is I/O bound.

Output on AIX

AIX dbsrv 3 4 000106DF4C00 09/21/02

17:06:49 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
17:06:52 0 0 0 0 0 0 0 0
17:06:55 0 0 0 0 0 0 0 0
17:06:58 0 0 0 0 0 0 0 0
17:07:01 0 0 0 0 0 0 0 0
17:07:04 0 0 0 0 0 0 0 0

Average 0 0 0 0 0 0 0 0

Bread/s Number of Physical Reads from disk per second
Lread/s

# sar -w 3 5

Output on AIX

AIX dbsrv 3 4 000106DF4C00 09/21/02

17:07:27 cswch/s
17:07:30 16308
17:07:33 18440
17:07:36 18760
17:07:39 16757
17:07:42 13467

Average 16746

# sar -d 3 5

Output on AIX

AIX dbsrv 3 4 000106DF4C00 09/21/02

17:07:57 device %busy avque r+w/s blks/s avwait avserv

17:08:00 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0

17:08:03 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0

17:08:06 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0

17:08:09 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0

17:08:12 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0

Average 0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0
0 0.0 0 0 0.0 0.0


Determining the type of the file

file or file *

e.g.

$file sqlnet.log

sqlnet.log: ASCII text

Searching for a particular Text in the directory and sub-directories under that

find . -name "*" -exec grep -il {} \; | tee

Find all files except owned by a specific user

Will list the file names containing the search string.

find . ! -user oracle9i -print

‘ ! ‘ negates the expression. The other example will list all the files not owned by user oracle9i.

Find files having some specific permission

find . –name *.* -perm 664 -print

Searching for links in all the folders under the directory and output to a text file to create a script to change the links.

find . -type l -print -exec ls -trl {} \; | grep -i uat | awk '{ print $11, $9 }' | tee change_link.sh

Taking TAR Backup on Internal (Default) Tape Drive

Tested on AIX

Cautionmt -f /dev/rmt1 rewind
cd /
Cautiontar -cvf /dev/rmt0 ./prodr11i ./prod_dat ./prod_idx ./prod_msc

To view the list of files backed up

tar –tvf /dev/rmt0

Taking TAR Backup on Disk

Tested on SunOS 5.9

Cautiontar cpf u01_oradata_absolute.tar /u01/oradata/PRODDB*

The tar file u01_oradata_absolute.tar will be created in the present directory.

CAUTION: The above command will store the absolute path in the tar file and will restore to the same location while extracting. If you do not want to extract the files to the same location, take the tar backup with relative file name. E.g.

cd /u01/
Cautiontar cpf /backup/u01_oradata_relative.tar ./oradata/PRODDB*

Extracting file from TAR backup

Cautiontar xpf u01_oradata_absolute.tar

CAUTION: The above command will extract the files to its original location if the files were tarred using the absolute path. E.g. if the TAR file include the file backed up from /vaporub/u04/oradata/, using the absolute path, the extract command will restore the files to /vaporub/u04/oradata/ thereby overwriting the original contents.

To check whether the tar backup was taken using the absolute path or relative path using the the following command.

Tar backup taken with absolute path

tar tvf u01_oradata_absolute.tar

-rwxr-x--- 500/501 0 Jul 4 21:56 2007 /u01/oradata/PRODDB/system.dbf
-rwxr-x--- 500/501 0 Jul 4 21:58 2007 /u01/oradata/PRODDB/undotbs.dbf
-rw-r----- 500/501 0 Jul 4 21:58 2007 /u01/oradata/PRODDB/users.dbf
-rwxr-x--- 500/501 0 Jul 4 21:58 2007 /u01/oradata/PRODDB/index.dbf

Tar backup taken with relative path. Notice that the path is starting with dot ( '.' )

tar tvf u01_oradata_relative.tar

-rwxr-x--- 500/501 0 Jul 4 21:56 2007 ./oradata/PRODDB/system.dbf
-rwxr-x--- 500/501 0 Jul 4 21:58 2007 ./oradata/PRODDB/undotbs.dbf
-rw-r----- 500/501 0 Jul 4 21:58 2007 ./oradata/PRODDB/users.dbf
-rwxr-x--- 500/501 0 Jul 4 21:58 2007 ./oradata/PRODDB/index.dbf

To extract to a directory other than where the tar file is located, navigate to that directory and then issue the tar xvf command. E.g.

cd /restore
Cautiontar xvf /backup/u01_oradata_relative.tar

Take a compressed tar backup of file or directory

Caution/usr/bin/tar cpf - | compress - >

e.g.

Caution/usr/bin/tar cpf - ./u01/stage/rapidinstall | compress - > /backup/rapidinstall.Z

Copy the file and compress it at the same time

Cautioncat | compress - > .Z

e.g.

Cautioncat ./u01/stage/rapidinstall | compress - > /tmp/stage_rapidinstall.Z

Sending Mails from Unix

Sending a file as the body of the mail

For AIX
mail –s “Meeting today at 1100 Hrs” asagarwal@hotmail.com <>

For HP-UX
mailx –s “Meeting today at 1100 Hrs” asagarwal@hotmail.com <>

The above command will send the contents of the file mailmsg.file to asagarwal@hotmail.com with the subject line as “Meeting today at 1100 Hrs”.

Sending file as attachment

uuencode ashish.test ashish.test | mail asagarwal@hotmail.com

You can’t specify the subject with mail.

Using mailx instead of mail will send the file as body of the mail and not as an attachment.

Installing, upgrading, removing, querying package using rpm in redhat

To install a package (i=install v=verbose h=show hash marks) :-
rpm -ivh

To uninstall (erase) a package
rpm -e

To upgrade a package
rpm -Uvh

To test a package to see how it would install (without installing, also checks dependencies)
rpm -Uvh --test

To query whether a package has been installed or not
rpm -qa | grep

To Open or block ports on RedHat Linux

/usr/sbin/lokkit

vi editor commands

Movement Commands

l or SPACEBAR or -> Moves right one character
h or CTRL-H or BACKSPACE or <- moves left one character
j or CTRL-J or CTRL-N or down arrow move down one line
k or CTRL-P or up arrow move up one line
0 beginning of line
$ End of Line
+ or Enter Beginning of next line
- Beg of Previous line
w Move to next word or punctuation mark
W Move to next word
e Move to end of current word or punctuation
E Move to end of current word
b move back to beginning of word or punct
B move back begning of word
) start of next sentence
( start of current sentence
} start of next paragraph
{ start of current paragraph
]] start of next section
[[ start of current section
CTRL-F Move forward one full screen
CTRL-D Move forward one half screen
CTRL-B Move back one full screen
CTRL-U Move back one half screen
G Move to end of file
CTRL-F move ahead full screens
CTRL-B move back full screens

Modifying Text

rn replace current char with ‘n’
rn replace characters with ‘n’
Rstring ESC replaces current characters with ‘string until ESC is pressed

cwstringESC change the current word by replacing. The change continues until ESC is pressed. Vi puts $ over the last character of the work do be changed.

c$stringESC will change from current cursor position to end of line.

cw will change next words
3c$ will change next three lines

Deleting Text

x deletes current character
x deletes characgters
dw delete from cursor to end of the word
dw delete words
d$ delete to the end of line
D deletes to end of line (Same as d$)
d$ deletes till end of n lines ahead
d) deletes to beg of next line
d} deletes to beg of next paragraph
d]] deletes to be of next section
dd deletes current line
dd deletes n lines
dENTER deletes 2 lines
dG Deletes from Cursor to End of File

Undoing changes and deletions

u undo most recent change or deletion
U undo all changes made ina line since you last moved to that line
p put the contents to of the buffer to the right of the cursor (immediately below the current line)
P put the contents of the buffer to the left of the cursor (immediately above the current line)
:e! undo all the changes made since last time you save the file

Searching for text

/ seach forward for the specified string
/ENTER continue searching
? search backup for the specified string
n continue searching in the same direction

Copying and moving text

yw yanks (copies) a word
yw yanks words
y$ yanks to the end of line
y) yanks to the end of sentence
y} yanks to the end of paragraph
y]] yanks to the end of section
yy or Y yanks the current line
Y yanks lines
p paste to the right of the cursor
P paste to the left of the cursor



Refer from http://www.asagarwal.com/useful_unix_commands_dbas.html

二十大謊言

二十大謊言
> > 網站:我們是免費的。
> > 電信:我們是虧損的。
> > 警察:我們是為人民服務的。
> > 上市公司:我們不做假報表的。
> > 老闆:我不會忘記你的貢獻。
> > 公司職員:明天我就不幹了。
> > 客車司機:準時出發。
> > 商人:大虧本、大出血、大拍賣。
> > 影視明星:我們只是朋友關係。
> > 政客:我一分錢都沒收。
> > 高官致詞:下面,我簡單地講兩句。
> > 女孩:這是我的第一次。
> > 男孩:乖,不會痛的。
> > 女生:我真的知道路怎麼走...(騎車或開車時)
> > 父母:我幫你把紅包存起來了
> > 女人:(出門前化妝時) 馬上就好!馬上就好!
> > 老師:再給我兩分鐘,我講完就下課....
> > 銷售員:這件衣服真的很適合你!!
> > 老闆:我這件是最後一件!
> > 考高分的同學:我沒看,都是用猜的

Router IP 流量流向指令

telnet 進入 router 後
> en
# config terminal
(config)# int s0/0/1 (or int FastEthernet0/0) -- 要查看的那個介面
(config-if)#ip accounting
(config-if)#end
(config)#show ip accounting --即可看到 IP 流向與流量資訊

最後記得將功能關閉,避免影響 Router 效能
(config-if)#no ip accounting

Mar 6, 2008

老公,我命很好ㄟ

上個月回台北老家,一家人圍著飯桌用餐時,我那向來口無遮攔的姊姊, 突然劈口就大聲對我老婆說:「哎喲!妳幹嘛去燙頭髮啊?像個歐巴桑似的!」 老婆最近新燙了個捲捲頭,正滿心期待眼尖的人讚美,沒想到竟招來如此 批評,不只我心想不妙,大夥也面色尷尬,不知該怎麼接話才好。
然而,老婆卻微笑著說:「大姊,妳誤會了,這跟燙頭髮無關,我是生了 孩子才變成歐巴桑的啦!」大家一聽,鬆了一口氣之後都笑了出來;老婆不但沒生氣,還給了老姊台階下,讓全家樂融融地繼續吃完這頓飯。 這就是我老婆,很難激怒,也很難讓你意料她對事情的反應。 就像有天晚上,老婆找我要一萬塊錢,說要去做一個什麼左旋C的臉部保養療程。她軟硬兼施,讓我不得不掏出皮夾,但心有不 甘,酸溜溜地說:「妳命可真好啊!我是辛辛苦苦賺錢,妳是輕輕鬆鬆花錢!」
她睜大眼睛說:「老公,你跟我有同感喔?我也覺得我命很好ㄟ!真好, 我們終於有一件事情達成共識了!」你說,我聽了這樣的回答,是該哭還是該笑呢? 當我倆出門逛街,每次試穿完衣服,她總要站在一旁的我當軍師表態。
「喂!你看,我穿這件衣服好不好看?」「還好吧?普通啦!」「拜託, 你不覺得我這樣美極了嗎?」「哪有啊?」「嗯!看來美麗真是個見仁見智的問題。小姐,麻煩幫我包起來。老公,拿卡啦!」這種對話,每次都讓專櫃小姐接過我 的信用卡時,忍不住丟給我一抹同情眼光。
我跟她抱怨,她既然自有主張,何必多此一問;然而等到下次購物,她還 是會問,並且不採用我的意見而下手買定。她的理由是:「我們做人一定要懂得尊重別人,尤其當那個人是會幫妳埋單的金主!」
有一回,老媽一把眼淚一把鼻涕,跟老婆述說年輕時被婆婆苦毒的陳年往 事,她陪著在一旁掉眼淚。 老媽接著說到懷我的過程:「那時候又要帶孩子,又要伺候老人家,根本 忙不過來,知道肚子裡有了大火時,本來要去拿掉的,可是醫師說,肚子裡的孩子太大了,拿掉會有危險,所以才留下大火的。」
老婆擤擤鼻子,用感激又感性的語氣搭了腔:「媽,還好妳生下大火了, 不然我上哪兒找這麼好的人嫁啊!」
不管她這句甜言蜜語是真是假,當下不但讓老媽破涕為笑、一臉欣慰,更 讓在一旁假裝看報的我,頓時渾身輕飄飄。 世上少有老婆不抱怨嫁不對人的吧?我老婆竟然以嫁我為福,豈能不讓我 暗自竊喜?
她還說過一些兒童不宜的「限制級」版本。
有一次我糗她:「妳看人家老婆多厲害,手藝好的,都可以辦桌了,哪像 妳根本不會做菜!」她笑盈盈地在我耳朵旁小聲說:「老公,沒關係啦!人家老婆會做菜,你家老婆會做愛!」然後若無其事地走開,留下血脈僨張的我在原地發 傻。 今年情人節,她的姊妹淘來電,說因沒收到男朋友送的花,而被有收到大 把玫瑰花束的同事奚落:「他怎麼這麼沒有情調啊?情人節竟然沒有送花!」
老婆好言安慰了一番,然後用很曖昧的語氣,教她姊妹淘回敬同事:「妳 就跟她說啊--哼!有情調有什麼用?會調情才最重要!」
怎麼樣?我老婆語不驚人誓不休的另類風格,很讓人折服吧! 很多人對於我娶到這麼一個愛花錢、愛漂亮,又不愛做家事的女人,卻還 樂在其中而深感不解;其實,她因大三拉警報才決定跟我,逢人就說我是她的「恩公」,沒有我,她這一輩子嫁不出去,讓我這個愛面子的男人大大地滿足了虛榮 心,如果你知道這點,就能理解,我為什麼願無怨無悔當她的「凱子老公」了!

Mar 5, 2008

終身受用的五句話

第一句話:優秀是一種習慣

這句話是古希臘哲學家亞里斯多德說的~
如果說優秀是一種習慣,那麼懶惰也是一種習慣。

人出生的時候,除了脾氣會因為天性而有所不同,其他的東西基本上都是後天形成的,是家庭影響和教育的結果。所以,我們的一言一行都是日積月累養成的習慣。

有的人形成了很好的習慣,有的人形成了很壞的習慣。
所以我們從現在起就要把優秀變 成一種習慣,使我們的優秀行為習以為常,變成我們的第二天性。

讓我們習慣性地去創造性思考,習慣性地去認真做事情,習慣性地對別人友好,習慣性地欣賞大自然。


第二句話:生命是一種過程

事情的結果儘管重要,但是做事情的過程更加重要,因為結果好了我們會更加快樂,但過程使我們的生命充實。人的生命最後的結果一定是死亡,我們不能因此說我們的生命沒有意義。世界上很少有永恆。
戀愛中的人們每天都在信誓旦旦地說我會愛你一輩子,這實際上是不真實的。最真實的說法是:「我今天,此時此刻正在真心地愛著你。」
明天也許你會失戀,失戀後我們會體驗到失戀的痛苦。這種體驗也是豐富你生命的一個過程。

第三句話:兩點之間最短的距離並不一定是直線

在人與人的關係以及做事情的過程中,我們很難直截了當就把事情做好。我們有時需要等待,有時需要合作,有時需要技巧。我們做事情會碰到很多困難和障礙,有時候我們並不一定要硬挺、硬衝,我們可以選擇有困難繞過去,有障礙繞過去,也許這樣做事情更加順利。
大家想一想,我們和別人說話還得想想哪句話更好聽呢?尤其現在這個比較複雜的社會中,大家要學會想辦法諒解別人,要讓人覺得你這個人很成熟,很不錯,你才能把事情做成。

第四句話:只有知道如何停止的人才知道如何加速

我有位朋友在學滑雪的時候,最大的體會就是停不下來。 他剛開始學滑雪時沒有請教練,看著別人滑雪,覺得很容易,不就是從山頂滑到山下嗎?於是他穿上滑雪板,嗤溜一下就滑下去了,結果他從山頂滑到山下,實際上是滾到山下,摔了很多個跟斗。他根本就不知道怎麼停止、怎麼保持平衡。

經過反覆練習,終於學會了在任何坡上停止、滑行、再停止。 這個時候他就發現自己會滑雪了,就敢從山頂高速地往山坡下衝。因為他知道只要想停,一轉身就能停下來。只要你能停下來,你就不會撞上樹、撞上石頭、撞上人,你就不會被撞死。 因此,只有知道如何停止的人,才知道如何高速前進。

第五句話:放棄是一種智慧,缺陷是一種恩惠

當你擁有六個蘋果的時候,千萬不要把它們都吃掉, 因為你把六個蘋果全都吃掉,你也只吃到了六個蘋果,只吃到了一種味道,那就是蘋果的味道。

如果你把六個蘋果中的五個拿出來給別人吃,儘管表面上你丟了五個蘋果, 但實際上你卻得到了其他五個人的友情和好感。

以後你還能得到更多,當別人有了別的水果的時候,也一定會和你分享,你會從這個人手裡得到一個橘子,那個人手裡得到一個梨,最後你可能就得到了六種不同的水果,六種不同的味道,六種不同的顏色,六個人的友誼。

人一定要學會用你擁有的東西去換取對你來說更加重要和豐富的東西。 所以說,放棄是一種智慧。做人最大的樂趣在於通過奮鬥去獲得我們想要的東西, 有缺點意味著我們可以進一步完美,有匱乏之處意味著我們可以進一步努力。

生男與育女總論

生男與育女總論

當來自父親的精子與來自母親的卵 子結合時,胎兒的性別就已經決定了,卵子的性別染色體為X,精子的性別染色體有兩種,一種為可懷女胎的X染色體,一種為可懷男胎的Y染色體。胎兒的性別就 是X,Y這兩組染色體的精子競爭與卵子結合的結果所造成的。(因每一顆卵子只能和一顆精子結合,理論上;生男或育女的機率分別是50%,但事實上卻非如此單純)。
來自父親的兩種精蟲其性質並不相同,可懷女胎的X精蟲存活時間較長,約兩天,活動力卻較弱,在弱酸性(指比正常身體酸鹼度略酸)的條件下, 活動力更活躍且存活較久。相反的,能懷男胎的Y精蟲,存活的時間較短,約一天;活動力卻較強,且在若鹼性(比正常身體酸鹼度略鹼)的條件下,活動力更強且 存活得較久。
性別不同的兩組精蟲性質既然不同,當它們有機會進入女性陰道中而游向卵子的這段存活時間裡,女子陰道及子宮的酸鹼度就會造成這兩組精蟲受到差別待遇,從而影響生男育女的機率了。此一關鍵也是生男生女特別門診中重要的一環。
另外,在統計學上有趣的現象也可供參考,一般說來女子營養較佳而男子營養略差者懷女胎機率較高,相反,女子營養較差而男子營養較佳者則較易懷男胎。若女子在一,二月份受胎,於同年十一月左右生產者生男的機率較高,而於四至六月受胎,於隔年一至三月生產者,懷女胎機率較高。
此外性交日期也與生男育女的機率有關,於排卵日前二到三天性交者懷女胎的機率較高;而於排卵日前一天或排卵日當天性交者,懷男胎的機率就大 多了。(含排卵後二十四小時內)性交的時間也關係到生男或生女的機率。於午夜前行房者易生男,午夜後(尤其是黎明前)性交者較易懷女胎。
性交的次數也能影響生男或生女的機率。性交次數越頻繁者,生女的機會就越大。女子的性高潮也會影響生男或生女的機率。在性交過程裡,女子達到性高潮者較容易受胎,且女子達性高潮後、男子再射精者更容易懷男胎。
反之,若女子未達性高潮前男子即射精,懷女胎的機會較大。男子射精時陰莖進入陰道的深度也可能影響生女或生男的機率。射精時陰莖深入陰道中,較容易懷男胎;射精時陰莖祇在陰道淺處較容易懷女胎。
性交前服用刺激性食物也能影響生女或生男的機率。性交前如果男子服用刺激性食物或藥物(如酒、咖啡、交感神經興奮劑……),較容易生女胎。性交前進行陰道灌洗也可能影響生男生女機率的不同。性交前用小蘇打的稀薄溶液灌洗陰道者,較容易懷男胎;性交前用淡檸檬酸溶液灌洗陰道者,較容易懷女胎。

生男生女飲食各論
一、希望生男胎時的飲食指導原則
在丈夫方面:

應多吃含B1的食物:如胚芽、糖、糙米、蛋黃、魚軟、肝臟、肉類、洋蔥、大蒜等。
應多吃蛋白質含量多的食物:如肉類、魚類、蛋牛乳、內臟等。
多吃較酸的水果:如梅子、檸檬、蕃茄、橘橙類、葡萄、蘋果、鳳梨、草莓、奇異果、百香果等。
應少吃的食物:蔬菜類。

在妻子方面:

多吃含維他命A及D的食物:如肝油、胡蘿蔔、南瓜、洋菇、洋蔥等。
多吃含鈣質較多的食物:如乾酪、豆腐及豆類製品、牛乳等。
多吃鹼性食物:如茶葉、芹菜、白菜、豆芽、洋菇、山藥、馬鈴薯、黃瓜、白菜、甜食、蓮藕、小黃瓜、海帶、海苔、菠菜、苧薺、麥類製品、芝麻、茄子、碗豆、大豆、紅豆、黑豆、蘆筍、竹筍、萵苣、葉菜類、花菜、牛蒡、胡蘿蔔、木耳……。此外,不酸的水果類,如:香蕉、柿子、核桃、栗子、橄欖、杏仁、無花果、西瓜、香瓜、枇杷、棗子等。
應少吃酸性的食物:如肉類、魚產類;及較酸的水果和蔬菜類。

二、希望生女胎的飲食指導原則
在丈夫方面:

多吃含維他命A及D的食物:如肝油、胡蘿蔔、南瓜、洋菇、洋蔥。
多吃含鈣質較多的食物,如:乾酪、豆腐及豆類製品、牛乳等。
多吃鹼性食物:如茶葉、芹菜、白菜、豆芽、洋菇、山藥、馬鈴薯、黃瓜、白菜、甜食、蓮藕、小黃瓜、海帶、海苔、菠菜、苧薺、麥類製品、芝麻、茄子、碗豆、大豆、紅豆、黑豆、蘆筍、竹筍、萵苣、葉菜類、花菜、牛蒡、胡蘿蔔、木耳……。此外,不酸的水果類,如:香蕉、柿子、核桃、栗子、橄欖、杏仁、無花果、西瓜、香瓜、枇杷、棗子等。
應少吃酸性的食物:如肉類魚產類;以及較酸的水果和蔬菜類。

在妻子方面:
多吃含維他命B1的食物:如胚芽、糖、糙米、蛋黃、魚軟、肝臟、肉類、洋蔥、大蒜等。
多吃蛋白質含量較多的食物:如肉類、魚類、蛋牛乳、內臟等。
多吃較酸的水果:如梅子、檸檬、蕃茄、橘橙類、葡萄、蘋果、鳳梨、草莓奇異果、百香果等。
應少吃的食物:蔬菜類。

Mar 4, 2008

ping command,return error message:bad option specified

使用 PING 127.0.0.1
出現「bad option specified」的錯誤訊息,應該如何解決呢?

一般來說會出現這個問題是因為相關網路設備或軟體的 TTL 設定值錯誤所造成的,被設定成 > 255,此時是否針對 ping 的對象(目的地)進行檢查,以上面的例子來說,是 ping 本機,因此就從本機的 Windows 設定著手。

Windows 95/98/Me
找到:HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP
修改:DefaultTTL
資料型態:REG_SZ (字串)(1-255 十進位,預設值:64)

Windows 2000/XP/2003
找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
修改:DefaultTTL
資料型態:REG_DWORD (1-255 十進位,預設值:128)

微軟各種檔案格式限制

FAT16
最大分割區: 4G, 作業系統限制: DOS, Windows 9x 為 2G
最大檔案: 4G, 作業系統限制: DOS, Windows 9x 為 2G

FAT32
最大分割區: 127G, 作業系統限制: 32G
最大檔案: 4G

NTFS
最大分割區: 約 2^64, 作業系統限制: 約 256T
最大檔案: 約 2^64, 作業系統限制: 約 16T

Ping command result

Ping的返回信息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。

"Request Timed Out"這個信息表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。

"Destination Net Unreachable"這個信息表示對方主機不存在或者沒有跟對方建立連接。這裡要說明一下 "destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其它原因不可到達,這時候會出現"time out",如果路由表中連到達目標的路由都沒有,那就會出現 "destination host unreachable"。

"Bad IP address" 這個信息表示你可能沒有連接到DNS服務器所以無法解析這個IP地址,也可能是IP地址不存在。

"Source quench received"信息比較特殊,它出現的機率很少。它表示對方或中途的服務器繁忙無法回應。

MTU

1.何謂MTU
MTU是最大傳輸單位(Maximum Transfer Unit)的英文縮寫。
你可以把他想像成一個郵政系統,當郵筒有一定數量的郵件,會有郵務車來把郵筒的信收走。那個郵筒到達一定的數量,就是MTU。

2.如何修改MTU
2.1.修改Windows XP的MTU
先打開登錄編輯程式:
按下"開始"→打開"開始功能表"→按下"執行"→在開啟那邊欄位輸入"regedit"→按下"確定"。
接著移動到:
"HKEY_LOCAL_MACHINE"→"SYSTEM"→"CurrentControlSet"→"Services"→"Tcpip"→"Parameters"→"Interfaces"。
在這邊,你應該會看到很多個像是亂數一樣的機碼(登錄編輯器顯示成目錄),每一個都點進去看,你應該會發現有一個機碼裡面的值與其他不同,可能會特別多值。那個就有可能是你的網路介面卡的機碼。點選機碼後,按下工具列的"編輯"→"新增"→"DWORD值",把此值的名稱取為"MTU",然後點兩下MTU值後,編輯MTU值,改成你想要的數值就可以。建議底數部分以十進位顯示,比較符合一般人看數字的習慣。改完機碼後,要記得重開電腦,設定才會成功套用。

3.MTU值要改多少才好?
請調小一點比較好。可是是無盡的調小調到0嗎?
首先先說,一般MTU預設值,乙太網路是1500,PPPoE(ADSL)用的是1492,古老的撥接是576。
又,根據微軟技術文章KB900926,我們可以知道,這個MTU的設定值最好是在1500到576之間。

4.MTU修改以後的影響
但是根據友人露露的實驗,香港的玩家修改MTU似乎產生的效果不大,推測是經過海底電纜的關係,所以MTU修改沒有用。

5.MTU修改以後,對整體網路的影響
5.1.修改MTU失敗
如果MTU修改失敗,最明顯的影響就是網路無法連線。
以前面比喻的郵務系統來說,就像你的信件裡面,全部都在寫郵件地址,而且還沒寫完。當然你要寄的內容根本就傳不出去,因為連地址都沒寫完怎麼寄。

5.2.修改MTU影響的網路傳輸速度以及網路反應速度
如果修改MTU成功,會影響到你網路的傳輸速度。如果你MTU開比較大,就像用大台郵務車在郵筒要塞到爆滿的時候才來收信,除非到指定的收信時間。你的郵件多的時候,就能夠很順利的寄出大量郵件;如果你的郵件少的時候,就會變成你的郵件要等一會兒才會被寄出去。

如果MTU開比較小,就像換一台150cc的機車當郵務車。
如果信少的話會很快就能送回郵局,但是信多好幾箱的時候……,請想像一台150cc機車拖著好幾箱信跑。也就是說,MTU開大,犧牲你的網路反應速度去換最大傳輸速度;MTU調小,就是犧牲你的最大傳輸速度去換取你的網路反應速度。但是MTU調小導致的最大傳輸速度改變我個人是沒感覺啦,所以我還是調小MTU的。至於修改MTU影響的網路速度,詳細計算的算式請參考SpeedGuide的資料。
5.3.因為MTU而導致網站連不上
根據其他網站的資料,MTU不夠大,可能會連不上一些網路;某些網路也會因為MTU太小連不上,似乎沒有定論。目前本人運氣比較好都沒有碰上這種情形,反而是台灣IP的比較多= =。

6.特別注意
修改MTU之後,重開機之前,請記得先把本頁的資料存到電腦裡面。免得網路連不上時改不回來。

測試 MTU 值的做法如下(請進入 DOS 模式):
ping -f -l [packetsize] [www.yourisp.com]
[packetsize]:看您是用何種的網路環境,從最大值開始試吧!可用的範圍是 1 ~ 1,500。[www.yourisp.com]:不限定啦!可以用你的 gateway IP,或是 gateway 之外的任何有效網址或IP。如果出現了 "Packet needs to be fragmented, but DF set",那就請你把 [packetsize] 的數值減小吧!直到不會出現此一訊息為止。在此另外說其它的東西。因為此封包(packet)包含了 20 bytes 的 IP header 及 8 bytes 的 ICMP header,所以上面得到的數值加上 28,才是我們要的 Maximum MTU。MSS 為 Maximum Segment Size 的縮寫,也就是實際傳輸的資料量。他和 MTU 的關係是 MTU = MSS + TCP&IP headers。而 TCP header 及 IP header 的大小均為 20 bytes,所以若是可以最大化的 PPPoE 環境,MTU 值為 1,492, 而我們用 ping 所得出來的數值是 1,492 - 28 = 1,464,而 MSS 為 1,492 - 40 = 1,452。

Mar 3, 2008

用幽默雕塑智慧

羅斯福還未當上美國總統之前,家中遭竊,朋友寫信安慰他。羅斯福回信說:「謝謝你的來信,我現在心中很平靜,因為:第一、竊賊只偷去我的財物,並沒有傷害我的生命。第二、竊賊只偷走部分的東西,而非全部。第三、最值得慶幸的是:做賊的是他,而不是我。」

美國前總統雷根,在任初期,有一次被槍擊重傷,子彈穿入胸部,情況危急。在生命交關的當頭,雷根面對趕來探視的太太的第一句話竟是:「親愛的,我忘記躲開了。」美國民眾在得知總統在身受重傷時,仍能不忘幽默本色,康復應指日可待,因此也穩定了可能因總統受傷而動盪的政局。

英國首相威爾遜,在一次演講中,剛進行到一半時,台下突然有個搗蛋份子,高聲打斷了他:「狗屎!垃圾!」
威爾遜雖然受到干擾,但他情急生智,不慌不忙的說:「這位先生,請稍安勿躁,我馬上就要講到你提出的關於環保的問題了。」
全場不禁為他的機智反應鼓掌喝采。

邱吉爾首相有一次在公開場合演講,由台下遞上來一張紙條,上面只寫著兩個字:「笨蛋。」邱吉爾知道台下有反對他的人等著看他出糗,便神色輕鬆地對大家說:「剛才我收到一封信,可惜寫信人只記得署名,忘了寫內容。」
邱吉爾不但沒有被不快的情緒控制,反而用幽默將了對方一軍,實在是高招。

法國名人拿破崙,有一天到野外打獵,突然聽見遠處有人呼叫,他循聲走去,看見一人落水,正大聲求救。拿破崙毫不猶豫的舉起槍來,大聲叫道:「喂!聽好!你要是不爬上來,我就開槍打死你。」
那個人聽了,頓時忘記落水的危險,立刻使勁全力向岸邊游去。上岸的第一句話就是:「你救我就算了,為什麼還要開槍打死我?」
拿破崙從容不迫的回答說:「假如剛才我不嚇唬你,你就不會奮力游上岸,又怎麼能脫險呢?」

艾森豪將軍參加某餐會,會中安排演講節目,總共邀請五位貴賓致詞,艾森豪排在最後一位上台。前面四位,個個千言萬語、贅言連連,輪到艾森豪時,時間已近十點了,台下早已意態闌珊、興致缺缺。
善體人意的艾森豪將軍一上台便說:「任何演講都會有句點,我就做為今晚演講的句點好了。」語畢鞠躬而退。

達賴喇嘛訪台時, 輕鬆自在,幽默風趣,有位記者訪問他:「佛教有過午不食的說法嗎?」
達賴喇嘛說:「是啊!」
記者又問:「那肚子餓了,怎麼辦呢?」
達賴喇嘛說:「就到廚房去偷吃囉!」

有一次,蕭伯納在街上行走,被一個冒失鬼騎車撞倒在地上,幸好並無大礙。肇事者急忙扶起他,連聲抱歉,蕭伯納拍拍屁股詼諧的說:「你的運氣真不好,先生,如果你把我撞死了,就可以名揚四海了。」

美國知名作家馬克吐溫,有一次因為看不慣國會議員在國會通過某個法案,因此在報紙上刊登了一個廣告,上面寫著:「國會議員有一半是混蛋。」報紙一賣出,許多抗議電話隨之而來,這些國會議員可不認為自己是混蛋,紛紛要求馬克吐溫更正。
馬克吐溫於是又登了一個更正啟事:「我錯了,國會議員,有一半不是混蛋。」

天才諧星卓別林曾被歹徒用槍指著頭打劫。卓別林知道處於弱勢,所以不做無謂抵抗,乖乖奉上錢包。但他要求搶匪說:「這些錢不是我的,是我們老闆的, 現在這些錢被你拿走,我們老闆一定認為我私吞公款。大哥,我和你打個商量,拜託您在我的帽子上打兩槍,證明我遭打劫了。」
歹徒心想,有了這筆鉅款,子彈錢算便宜了,於是便對著帽子射兩槍。
卓別林再次懇求:「大哥,可否在衣服、褲子再各補一槍,讓我的老闆更深信不疑。」
頭腦簡單、被錢沖昏頭的搶匪,統統照做,六發子彈全射光了。
這時,卓別林一拳揮去,打昏了歹徒,趕緊取回錢包,笑嘻嘻的走了。

幽默大師林語堂曾在某大學教授英文,第一天開 始上課,他手提一個大大皮包走進教室,學生都以為是課本,當他打開來盡是有殼花生,林語堂則用英文大講其吃花生之道。
他說:「吃花生要吃帶殼的,一切味道與風趣,全在剝殼,剝殼愈有勁,花生米就愈有味道。」他再補充說:「花生米又名長生果,諸君第一天上課,請吃我的長生果祝君長生不老,以後我上課不點名,但願大家吃了花生果,更有長性子,不要逃學!」語畢全堂莞爾。
此後每逢大師講課,總是座無虛席。

阿母的信

親愛的兒子:

我這封信寫得很慢 因為我知道你看字不快
(寫得慢跟人家看得快不快有什麼關係...)

我們已經搬家了,不過地址沒改,因為搬家順便把門牌帶來了。
(天阿,妳太天才了吧,誰知道您搬到哪呀-_-b)

這禮拜下了二次雨,第一次下了三天,第二次下了四天
(那不是等於一個禮拜都在下雨嗎...)

那間店披薩還不錯,改天我們全家再一起去街口的餐館吃牛排
(披薩店不錯跟去吃牛排有什麼關係@"@??)

還有你阿姨說你要我寄去的那件外套,因為郵寄時會超重,所以我們把釦子剪下來放在那件外套的口袋裡。
(這樣會比較輕嗎?...)

你姊姊今天早上生了,因為我還不知道到底是男的或女的,所以我不曉得你要當阿姨還是舅舅。
(有男的阿姨嗎-_-b)

媽媽最近沒什麼事,我會再寫信給你。

ps.我們本來要寄錢給你,但是信封已經黏好了
(信封黏好了?那你最後一段怎麼寫上的阿=___=b)

這年頭---

這年頭---
老婆是家,情人是花。
工資給家,獎金送花。
病了回家,好了看花。
離不了的是家,忘不了的是花。
常回家看看,別忘了澆花!


這年頭---
女人漂亮的不下廚房,下廚房的不溫柔,溫柔的沒主見,有主見的沒女人味,
有女人味的亂花錢,不亂花錢的不時尚,時尚的不放心,放心的沒法看!

這年頭---
有錢有閒無病,人間絕品;
有錢無閒無病,人間珍品;
無錢有閒無病,人間上品;
無錢無閒無病,人間次品;
無錢無閒有脾氣,人間廢品!

這年頭---
和美女睡覺興奮致死!
和情人睡覺醉生夢死!
和小姐睡覺勞累致死!
和醜女睡覺煩躁致死!
和老婆睡覺整夜裝死!

這年頭---
十類人不宜做大官:
1)膽小,2)話多,3)錢少,4)關係差,5)酒量小,
6)才華橫溢,7)學歷太高,8)疾惡如仇,
9)性功能差,10)有姿色不肯獻身。

這年頭---
情人是手錶越漂亮越好,
小秘是懷錶越隱秘越好,
小姐是電子錶越新鮮越好,
老婆是自動錶不上弦照跑,
各種錶都想要只是時間要掌握好!

婚姻與股市

※結婚生子叫「配股」
※嫁到有錢老公後立刻離婚叫「獲利了結」
※嫁到沒錢老公後立刻離婚叫「停損殺出」
※嫁到大男人主義老公喜怒由他叫「主力」老婆叫「散戶」
※嫁年輕老公叫「高檔套牢」
※嫁年邁富翁叫「低檔承接」
※選擇對象叫「選股」;
※剛開始交往,叫「試探行情」;
※訂婚叫「掛進」;
※結婚叫「成交」;
※結婚後離婚,被對方搞去不少錢財,叫「掏空」;
※結婚後雙方感情不和,叫「翻空」;
※婚姻平淡,無可奈何地湊合著,叫「套牢」;
※這種婚姻費盡心思終於離了,叫「解套」;
※結婚三、五年後,感情時好時壞,叫「箱形整理」;
※婚姻徹底破裂,不可挽回,叫「崩盤」.

※那..........一夜情叫................當日沖銷