2008年10月29日 星期三

努力地接受嘴砲吧

我算是會自我要求的吧?盡力地達到想要的境地,除了讀書吧,哈。

最近還是很常一不小心就跌入別人的言語中。這個世上充斥著太多只會說風涼話的人,或是,看到別人的努力時,落井下石,然而,等到場景的焦點移至自己的身上時,卻又百般的吹捧自己。

我常常把這類人定義成嘴砲型,發現自己實在很難接受這些,因此對他人的印象不佳,甚至否認掉對方!但最近我發現如此的心態讓我損失不少,像是看不起報告的功力,或是書面的呈現等,因此自己不珍惜呈現結果的機會,只一味地沉膩在自己習慣的表現方式。

記得我的大學指導教授,很多人對他的評語,能夠把五十分的努力說成八十分,把八十分的努力說成一百分!但我從來不會覺得他很嘴砲,哈,我反而很欣賞他提出的觀點、願景。

人,活生生地在這世上,有些事仍舊需要適應,我希望自己能夠儘管地改掉這個缺點。我想,我也該練練報告的功力,若我不把這表面功夫做足,豈不是更對不起過去的努力呢?


個人常用的 svn 指令


  1. 先建一個 svn 目錄,用來管理所有的 project

    • ~ # mkdir svn ; cd svn;
      ~/svn #



  2. 替 project 獨立地建一個 svn db

    • ~/svn # svnadmin create my_project



  3. 將原先在某處的資料匯入 my_project 的 svn db


  4. 對 my_project 的 svn db 撈資料出來


  5. 對查看 my_project 的紀錄

    • ~/tmp # cd p1;
      ~/tmp/p1 # svn log



  6. 透過 svn 將遠處 mirror 的地方更新

    • ~/mirror/p1 # svn up



  7. 將修改好的程式進行紀錄

    • ~/tmp/p1 # svn commit;



  8. 新增對某個新增的檔案或目錄加至 svn db 中

    • ~/tmp/p1 # touch haha.c ; svn add haha.c



  9. 查看目前所在目錄狀況,可得知是否有遺漏管理的

    • ~/tmp/p1 # svn status



  10. 僅列出有更動的檔案並略過未加入 svn db 的檔案

    • ~/tmp/p1 # svn status | grep -v "?"



  11. 得知有哪些檔案有變更

    • # svn diff --summarize -r 5 http://svn.example.com/trunk



  12. SVN repository location change

    • # svn switch --relocate file:///from/svn/proj/trunk file:///to/svn/proj/trunk



  13. 想要把剛剛 svn add 的檔案去掉(還沒 commit)




[FreeBSD] 設定 NIS Client 與 AMD Service

有一大批的機器要管理,最佳的做法就是由一至兩台負責管理帳號,這時候就會使用到 yp 服務囉。這篇不適用於初學者,在此僅分享記錄管的機器。


機器狀況敘述,目前僅用一台機器當 NIS Server ,並且於該台設定分享其目錄出來,目前課題擺在新增新的 client 端機器。


Server 的設定部分



  • /etc/hosts.allow (目前手邊機器常用的管法 :P )

    • ypserv : client_ip : allow

    • rpcbind : client_ip : allow ( portmap : client_ip : allow )



  • /etc/exports

    • 設定待分享的目錄的權限, ex: /data/home -maproot=root client_ip

    • 設定好要記得重跑, /etc/rc.d/mountd restart



  • /var/yp/securenets

    • client_ip 255.255.255.255

    • 設定完後, 記得 touch /var/yp/master.passwd 更新其 last modified time, 然後在 /var/yp/ 下打 make 即可更新完成。




新機器 Client 的設定部分



  • /etc/rc.conf - YP Client

    • rpcbind_enable="YES"

    • nisdomainname="WorkCC"

    • nis_client_enable="YES"

    • nis_client_flags="-s -S WorkCC,Server_IP" (若跨網域要記得加 -m)



  • /etc/rc.conf - AMD Client

    • nfs_client_enable="YES"

    • nfs_client_flags="-n 4"

    • amd_enable="YES"

    • amd_flags="-a  /.amd_mnt -l syslog -d ServerDomain /net /etc/amd.map"

    • 目前有一批機器是設成先 /net 再 /.amd_mnt  但基於某些關係,暫用舊設定(相反過來)

    • 可重開機或使用 /etc/rc.d/amd start 啟動



  • /etc/hosts.allow

    • rpcbind : server_ip : allow ( portmap : server_ip : allow )



  • YP client 部分

    • /etc/group

      • 最後一行加上 +:*::

      • 某些帳號是 wheel 群組的,記得加一加



    • # vipw

      • 最後一行加上 +:::::::::



    • 接著,則是使用者登入時的家目錄囉,由於使用 amd 服務,就來建建 ln -s 啦

      • # cd /; ln -s /net/Server_IP/data/home /home





  • 如此一來,重開機就搞定了


2008年10月22日 星期三

[FreeBSD] 設定 ccd 服務

目前手邊的機器,大概都配置四顆 250GB 以上的硬碟,然後通常一顆是用來安裝系統,所剩的空間和其他三顆會被併在一起使用。由於為數說多不多說少不少的機器都一直採用 ccd 的方式,暫且就先不試 geom 等新的方式。


在此暫記管的機器的設定,有興趣可多逛逛網路上的文件:連接式磁碟裝置驅動程式。以下是 JBOD (Just Bunch of Disks) 的設定筆記。



  1. 首先,在安裝過程中可以先行設定,或是安裝完後,透過 sysinstall 至 Configure 的 Fdisk 和 Label 設置也行。

  2. 目前的狀況大置於下:

    • 四顆 250GB 的硬碟,第一顆切 8GB 給 / 、切 4GB 給 /swap ,剩下的就先切出,暫且叫 /mnt/raw_ccd0

    • 其他三顆則是全些切,依序為 /mnt/raw_ccd1、/mnt/raw_ccd2和/mnt/raw_ccd3。

    • 在此僅為了產生 /dev/ad1s1d, /dev/ad2s1d, etc (正確上應該是採用bsdlabel設定)

    • 另外,因為我是對已執行的系統碟進行更新的動作,因此會跳出一個系統框要你 set sysctl kern.geom.debugflags=16 的相關訊息,其主因應該是當你設定完要按 W 更新,但其更新方式就是照目前設定跑一次,就會碰到有些裝置已在使用中(ex:/swap),若未設定上述 flags 的話,有錯誤就會停下來,因此無法更新到 /mnt/raw_ccd0 的部分,設定完 flags 後,就可以更新到囉。



  3. 接著,若要使用 ccd 的服務,必須編 kernel 時就要設定囉

    • device   ccd



  4. 開始正式設置 ccd 的串連方式,首先先 umount 這些地方: /mnt/raw_ccd0、 /mnt/raw_ccd1、/mnt/raw_ccd2和/mnt/raw_ccd3。

  5. 然後對於 ccd 的部分,預設的設定檔位置是 /etc/ccd.conf ,因此,若擺好設定檔後,開機就會自動幫你設定囉

    • 目前 /etc/ccd.conf 裡頭的資料,類似下面

      • ccd0 128 none /dev/ad1s1d /dev/ad2s1d /dev/ad3s1d /dev/ad4s1d



    • 另外,若是用 single mode 進去,那就執行 # ccdconfig -C 就會自動幫你弄好而產生 /dev/ccd0



  6. 透過上述的設定,在 /dev 下就會產生 /dev/ccd0 囉!

  7. 第一次初始化它!

    • # newfs -U -m 0 /dev/ccd0



  8. 使用它!

    • # mount /dev/ccd0 /data



  9. 設成自動開始時掛載(採用/etc/rc.local)

    • mount /dev/ccd0 /data
      if [ "`df | grep /data`" = "" ]; then
          fsck_ufs -y /dev/ccd0 ; mount /dev/ccd0 /data
      fi




以上就是目前的老式設定方式 XD ,雖然有些東西有點過時,或是設定方式有點怪怪的,例如自動掛載可寫在 /etc/fstab 等,但就暫且如此為之吧。


醜陋的人心

世上存在很多種人,有的人很好心,但卻也有不少人見不得別人好的人。然而,壞心的人也不是壞心,只是在某個層面會看不起別人,結果面對自己時卻又用另一個角度款待自己,說真的還真令我感冒。

但我深信,世上沒有絕對的好與壞,相對的世界需要適當地調適自己的心態。


2008年10月21日 星期二

[FreeBSD] 安裝 FreeBSD 與系統更新

前陣子又開始搞 FreeBSD ,我好像大四那年就拋開了管理者的身份,總覺得不必需要管理者權限,早就可以完成八成以上想做的事。現在,我得開始回顧回顧啦。這篇是以管的機器狀況來記錄的,詳細的部分可參考:[FreeBSD] FreeBSD 詳細的安裝教學 - 舊安裝方式


在此記錄一下管的機器狀態。會慢慢地補資料



  1. 安裝 FreeBSD

    • 首先,先燒一片開機片。可以到 ftp://freebsd.cs.nctu.edu.tw 逛逛。接著,光碟開機。記得 BIOS 要調。

    • 接下來,就用 FreeBSD 開機後,進入設定畫面,一開始好像是問語系?選 Taiwan ,接著是鍵盤資訊?預設的 us.iso ,印象中這兩項調好就進入正式的安裝設定。

    • 我習慣用 Custom 設置

      • Options 就看要不要調,若是燒的片子已經是你要安裝的版本,那就不用動,若片子不夠新或不是你要的版本,請進入調整 Release Name

      • Partition 部分,算簡單地問要將哪些硬碟設置進入,按空白鍵去選取,選取後會問你要配置多少空間,通常我都是全部,所以按 a (All ),另外,特定要開機的硬碟要選 s 的樣子,好像是 bootable 吧,並且給予 Standard 的開機管理,而若有多顆硬碟,那些其他的硬碟就選 none 。

      • Label 部分,目前管的機器很隨性,大概 8GB 切給 / ,4GB 給 /swap 啦,其他的?晚點再弄成 /data 啦。

      • Distributions 部分,一樣 Custom 啦,我會選六項:base、kernels、man、src、ports和local,其中若有碰到子選單的,一律選 all 。

      • Media 部分,若光碟資料已經是你要的,可以選 CD/DVD 囉,否則已改過 Options 的話,就會選用 ftp 啦

      • 然後就開始安裝了,很快就完成囉,因此進入最後的設定。

      • 最後設定的部分,我會設定"Root Password"、"Time Zone"、"Networking”、"Console"等,像sshd一開始是未被開啟的,所以要記得打開,一切弄完後就可以重開機享受 FreeBSD 啦。





  2. 更新 FreeBSD

    • 完成了安裝後,接下來就是先更新一下系統囉,學會更新系統應該可以降低被攻擊的機會。更新部分分為兩處,一處是系統整體,另一部分是系統核心部分。

    • 首先,編輯 /etc/make.conf

      • # 透過內建的 cvsup 更新系統
        SUP_UPDATE=     YES
        SUPHOST=        cvsup.tw.freebsd.org
        PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile
        SUPFILE=        /usr/share/examples/cvsup/standard-supfile
        #SUPFILE=        /usr/share/examples/cvsup/stable-supfile

      • # 從台灣更新
        MASTER_SITE_BACKUP?=\
        ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
        ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
        MASTER_SITE_OVERRIDE    ?=      ${MASTER_SITE_BACKUP}

      • # 我幾乎沒在用 X-Window
        WITHOUT_X11             ?=      yes
        NO_X                    ?=      true

      • # Kernel 設定檔
        KERNCONF                =       yourBSD
        KERNEL                  =       yourBSD



    • 然後必須準備一下 Kernel config 囉,請切換到 /usr/src/sys/i386/conf/ ,然後將 cp GENERIC yourBSD,若不曉得就先別動,預設就不會出問題!

    • 接著,就能切換到 /usr/src 下,打入 make update 啦,就會先幫你把新的資料擺妥,下一步就是去編譯啦

    • 另外,也可以切換到 /usr/ports ,打入 make update ,也會更新 ports ,這個地方算是軟體安裝的便利區

    • 好囉,其實上述動作都差不多,而更新系統的方式可以用以下一連串的指令來達成

      • # cd /usr/src ; make update && make -j5 buildworld && make buildkernel && make installworld && make installkernel && mergemaster -iU



    • 以上動作依序:更新原始碼、編譯系統、編譯核心、安裝系統、安裝核心以及最後的設定檔更新,最後那步會是互動式的,可以依你的狀況做調整,大部分都是用 i 來更新成最新的設定檔,若有些設定檔你想保留原先的設定,就按 enter 略過吧!另外,中間過程有個 -j 5 ,是代表要用 5 支 process 去編,畢竟很多東西都是在等 IO ,用多一點編可以稍稍加快!這個更新動作會耗時一陣子喔!大概兩三小時以上!




2008年10月17日 星期五

依賴

最近透過一些長輩,幫我解決了不少心煩意亂的事情,不知不覺,我竟然依賴起別人。這樣的感覺好像挺糟的!

這週返家時碰到一位大一女生,一個人就這麼闖蕩,連火車票都沒買過就衝火車站,似乎連車班都沒調查過,不禁讓我感到佩服。回憶起大學的專題教授,有一次出遊時,那天下著雨,但目的地是山區,因此遲疑要不要繼續上山冒險,當然我有點不安心,所以投了反對票,進而去了九份!我覺得我似乎沒那種勇氣去做我還沒準備好的事吧!有時看似謹慎,但是否也損失著什麼呢?

嗯!希望自己能夠更加獨立地勇往直前!加油!


2008年10月5日 星期日

往前再踏一步!

人生總會碰到困境,有時候也令人腦筋轉不過來。這時候還是該靜一靜,凡事不是勇往直衝、或是僅追求個結果就是好。

最近打開 104 的履歷,準備要來面試科技替代役的公司囉!我連撈 104 的動作都已經準備好了 XD 不曉得這樣會不會太誇張,哈。就只是每天晚上撈一次,將各家有發出替代役名額的公司都整理一下,還滿方便觀看的!透過發表至 BBS ,以免自己太忙而忘了逛 104 囉。程式還滿好寫的啦,大概只有在 BBS 排版比較麻煩,整體費時不用兩小時吧。

發現 Pixnet 的 Blog 排名還挺前面的!有時都覺得太過誇張,因為我的文章有些真的沒有提供資訊,只是天外一筆罷了,不過有些文章倒是紀錄了一些實作筆記,看到這類文章瀏覽人數不斷地上升,就覺得滿快樂的,至少有幫助到其他需要的人啦!這也有可能是因為我將 Blog 文章列做了設定,原先文章都是全部呈列出,現在變成只列出一兩行,想看全文就必須點選進入囉。若不是想計算瀏覽人數,我還是比較喜歡一次列光光。

接下來一、兩個月應該會非常繁忙的,希望一切事都能好好地辦妥!衝啊。