發表文章

目前顯示的是 2008的文章

ZFS-Solaris 10的新檔案系統 (一)

Sun Solaris 10作業系統 (Solaris OS) 裡新的ZFS檔案系統於2006年6月正式推出。 昇陽號稱ZFS是目前地球上最強的檔案系統,其創新的技術推翻你對檔案系統管理的概念。 根據昇陽的文件它具有如下的功能。 * 管理簡單 ZFS 自動化並整合複雜的儲存管理概念,降低 80% 管理上的經常性耗用時間。 * 確實的資料完整性 ZFS 用 64 位元的總和檢查保護所有資料, 能夠偵測並修正無訊資料損毀的情況。 * 無限延伸性 ZFS 是世界第一個 128 位元檔案系統,其儲存容量為 32 或 64 位元系統的 1600 萬兆倍。 * 極速效能 作業事件模型消除了傳統式發送 I/O 的順序限制,大幅提升效能。 看了這麼多,還是快開始進入我們的重點吧! 要使用ZFS你得要先有一個Solaris 10的系統。不管是SPARC版或是x86版的都可以,但是一定要是Solaris 10 06/06(Update 2)這個版本以後的。再來最好有多顆硬碟, 而且每顆硬碟要大於128MB( 現在去那兒找比128MB還小的呀)。最後是RAM越多越好,官方說法是512MB是起碼,1G是基本。 不過實際上我在VMware下只開了256MB測試也是跑的很順暢。 在一切都準備就緒後就可以開始了。 首先看一下我們所安裝的Solaris版本是不是正確的。 # cat /etc/release Solaris 10 6/06 s10x_u2wos_09a X86 Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 09 June 2006 是2006年6月的版本, 不然你也可以執行zfs這個指令試看看。在我測試的環境裡, 我用了6個大小都為1GB的SCSI硬碟,分別是c2t

如何在命令列下寄信

在Unix的系統管理上我們常會把各式各樣指令的輸出導到檔案去 ,但是檔案在系統上想看一下內容難免還得要登入進去。於是懶惰的人就會把這些輸出寄出來給相關的人, 這樣就不需要連進去系統了。 在Unix下寄mail是一件很平常的事, 有人可能會覺得這個有點老生常談, 但事實是還是有人會來問我命令列下要怎麼寄mail,而這個問題在網路上應該還是FAQ中的FAQ。 在Unix下最常被用來寄信的指令應該非mail莫屬, 因為它普遍的存在各種不同版本不同平台的Unix系統上。 或許你習慣用它的加強版mailx。 不過這二個用起來差不多我也不清楚到底有什麼差別, 知道的人跟我講一下吧。另外有一個指令叫mutt 它是一個功能相當強大的MUA軟體,如果你有安裝的話 也可以使用它來寄mail。 現在我們就來看個簡單的例子。假設你想把/etc/hosts的內容傳到你的電腦上, 你不需要使用ftp來把它抓到你的電腦, 只要使用指令來將它寄給你自己。 # cat /etc/hosts |mailx -s 'hosts table' jerry@abc.com 許多人應該都知道要怎麼用,而且也很多人應該是這樣子用的。 上面的指令並沒有錯,只是可以直接把檔案導入給mailx,為什麼要cat給mailx呢? 公司薪水給的又不多,實在沒必要多花時間在處理公事上, 所以字能少打就少打吧。 # mailx -s 'hosts table' jerry@abc.com < /etc/hosts -s(Subject)是主旨,如果主旨有空白字元的話, 記得要用單引號(')或是雙引號(")括起來。 最後一個參數是收件人,如果收件人有多個的時候要用逗號(,)分隔,如 jerry@abc. com , jerry@abc.com.tw 。 或者你在Linux下而且又裝了mutt。 你也可以使用mutt來寄信,mutt的參數和mail差不多。 # mutt -s 'hosts table' jerry@abc.com 可是這樣子寄,/etc/hosts的內容是在信裡面呀, 我想把它變成附件可以嗎?當然可以, 只要跟其他的程式配合就可以了。 # uuencode /etc/hosts hosts.txt | m

Unix下為你的檔案加密

如果你有使用過WinRAR, 那你應該知道WinRAR在壓縮時提供一項功能, 可以為壓縮檔加上密碼,這樣子一來沒有密碼就 無法解開檔案,也就可以防止資訊外流。 在Unix下壓縮通常我們會使用tar+gzip來達成, 但是想為檔案多加一層保護時,通常就不知該如何下手了。 其實做法很簡單,所要使用的指令就只有openssl, 只要你有裝openssl的套件就可以了。 在Linux下預設就會安裝,如果你的是其他的Unix like的系統,你就得要自己檢查了。 openssl中我們要用到的是enc(Encoding And Cipher)這個子功能,使用的方式如下。 openssl enc -e -cipher_method -in input_file -out output_file 其中-e表示要加密、-d表示解密、-in表示輸入的檔案、- out表示輸出的檔案、-cipher_ method要看你選擇什麼加密方法,可以是-des、-des3、-bf......等。 我們看個範例先。 # openssl enc -e -des3 -in /etc/hosts -out /tmp/hosts.cpt enter des-ede3-cbc encryption password:12345 Verifying - enter des-ede3-cbc encryption password:12345 上面的範例使用des3的加密法將/etc/hosts加密, 然後輸出成/tmp/hosts.cpt。過程中你所輸入密碼, 也是你解開檔案 時的密碼。 那要如何解開檔案呢?剛有講到-e表示要加密(encrypt) ,-d就表示要解密(decrypt)了。 我們看一下解密的範例。 # openssl enc -d -des3 -in /tmp/hosts.cpt enter des-ede3-cbc decryption password:12345 # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost

Solaris - 強化密碼的安全性

Solaris使用者帳號密碼的加密方式是很兩光的, 解密的程式輕易的就可以解開。為了強化系統的安全性, Solaris 10在加密的功能上提供了不少好用的東西, 現在先針對帳號密碼加密及安全上做個介紹。 Solaris 10提供了四種帳號密碼加密的演算法,下面的表是四種的說明。 試別字 加密法 說明 Man manual 1 crypt_bsdmd5 和BSD及Linux相容的MD5演算法, 密碼最長可達255個字元。 crypt_bsdmd5(5) 2a crypt_bsdbf 相容於BSD的Blowfish演算法, 密碼最長可達255個字元。 crypt_bsdbf(5) md5 crypt_sunmd5 Sun的MD5,比BSD及Linux更為安全, 密碼最長可達255個字元。 crypt_sunmd5(5) __unix__ crypt_unix Unix傳統的演算法,並不安全,密碼最長為8個字元。 crypt_unix(5) Solaris預設是使用__unix__, 所以密碼長度限制為8個字元。我們來做個實驗, 建立一個使用者abc並將其密碼設定為1234567890 共10個字元,然後使用abc這個帳號連入, 輸入密碼的前8個字元也就是12345678。 你會發現登入時的密碼和設定的並不相同,但是我們還是進入系統了。 # useradd abc # passwd abc New Password: 1234567890 Re-enter new Password: 1234567890 passwd: password successfully changed for abc # ssh abc@. Password: 12345678 Last login: Thu Sep 7 16:38:38 2006 from c01093.ncic.cor Could not chdir to home directory /h

Solaris - log的管理,使用logadm

在開始之前有個故事要和大家分享。 有一次我朋友的公司裡有一台Sun的機器疑似crash後重開機 ,他的第一個反應是去看 messages log,結果使用vi來開啟messages檔時, vi跑了二分多鍾後,丟出一個訊息"檔案太大了,它開不了"。 他轉頭問問我怎麼會這樣?於是我接手幫忙處理。 執行uptime的結果確認是有重開機過,但為何重開機? 則要看messages的內容才會知道,問題是vi開不了messages,所以我只好用tail+ more來慢慢看。為什麼開不了呢? 一看才知messages這個檔案竟然超過2G,最早的一筆記錄是四年多前的。天呀! 接著想瞭解在機器掛掉之前有誰在線上操作,結果last一跑.. ....約五分鍾後螢幕才開始有東西跑出來。為什麼呢?因為和last相關的檔案wtmpx也超過500MB......。 最早的記錄的時間我已經不想知道了。( messages不是有newsyslog會去換檔案嗎?是的, 但不知在何時crontab裡已經沒有這一項存在了。唉, 天兵管理員!) 早期的Solaris(9 以前) 並沒有一個真正可用的log輪替程式來做系統log的管理。 所以如果管理員沒有自己做適當的處理, 硬碟空間很容易就被吃光了。不然就會發生像上述的事情, 檔案大到很難開啟。 以往的Solaris就只有一支newsyslog的簡單scr ipt來做messages的輪替的工作。 不然就要自己安裝logrotate的套件來做這一類的工作。雖然logrotate很好用, 但總是還要抓下來安裝。不過自從Solaris 9開始,Sun終於聽到使用者的聲音了。 Solaris 9開始提供了一支程式logadm專門用來做系統log的管理工 作。個人覺得它和logrotate還有點相像,只是它的設定是一個log檔一行, 而logrotate是一個log檔一個區塊。 下面就來看看logadm要如何使用。 logadm有一個設定檔/etc/logadm.conf, 該檔是一個純文字檔,所以你可以直接用vi去編輯它, 或是使用logadm來變更設定。雖然可以直接編輯設定檔, 不過使用logadm來變更設定時logadm會檢查語法是否正 確,所以建議還是使用指令去變更設定。 Solaris在安裝完成後, root的cronta

Solaris - 新增使用者的問題

早期Solaris新增使用者時預設的家目錄是在/ export/home下,不知何時開始忽然改成在/ home下面了。而偏偏/home又是 autofs所要使用的目錄,所以每次新增使用者時,總會因為/ home被lock住所以無法順利新增。並且出現如下的訊息。 useradd -m abc UX: useradd: ERROR: Unable to create the home directory: Operation not applicable. 解決的方法有下面幾種, 1. 停掉autofs ### Solairs 9 # /etc/init.d/autofs stop # mv /etc/rc2.d/S74autofs /etc/rc2.d/_S74autofs ### Solaris 10 # svcadm disable autofs 2. 修改autofs的設定檔,把/ home標記起來或是改成別的路徑。 # vi /etc/auto_master +auto_master /net -hosts -nosuid,nobrowse #/home auto_home -nobrowse 3. 更改使用者家目錄的位置。 ### 使用-d指定家目錄 # useradd -d /export/home -m abc ### 變更useradd預設的家目錄位置,一勞永逸。 # useradd -D -b /export/home group=other,1 project=default,3 basedir=/export/home skel=/etc/skel shell=/bin/sh inactive=0 expire= auths= profiles= roles= limitpriv= defaultpriv= lock_after_retries= 當變更useradd預設值後會產生一個檔案/usr/ sadm/defadduser,記錄著上述的內容。 如果有需要也可以手動修改,不過建 議還是用useradd -D來改比較好。

系統管理該注意的事- 五不二要

這一篇是依據自己的經驗、 前輩的教誨和網路上眾多高手的經驗分享整理出來的, 也是我這幾年來做系統管理工作的心得,不見得絕對的正確,但希望可以給你參考, 幫助你更輕鬆的做好系統管理的工作。。 1. 不要在休假前做任何的事 管理一個系統常會面臨一些系統變更的需求,如修改系統參數、 改某個程式的組態、新增一個例行性工作......等,凡此種種變動千萬不要在你休假前夕執行。 你以為在休假前把事情做好你就能安心的休假了嗎? 通常答案是否定的。我曾經在星期五時,因需求而修改一個備份的script。 該script主要的工作是備份已經丟進資料庫的資料,並將已備份過的資料刪除。修改時我將刪除檔案的部份註解起來, 以免測試時誤刪了資料。結果script順利修改完成,但是我卻忘了將刪除檔案的註解移掉。...... 星期一時才發現檔案系統在星期六下午就達100%, 前端的機器跟本就無法將資 料送進來,更不要說丟進資料庫裡去。 結果是有一天多的資料沒進資料庫,二天的日報表和週報表沒跑, 前端AP人員花了一整個工作天才將資料全部丟進去資料庫, 晚上才能開始跑報表,預計到星期二下午就可以跑完了。事情結束了嗎?沒有,其中有一個報表是副總要看的, 我老闆免不了被叫去罵一頓,而我則負責寫檢討報告。 還有一個ip設定錯誤的案例可以講呢?想聽嗎? 我的經驗告訴我,重大的變動一定要計劃, 任何的改變一定要保留一段觀察期,選在對系統影響最小的時候( 通常是離峰時間)進行。 2. 不要隨意在正式運作的系統上亂搞 熱衷於技術性新知的追求是好事, 但在你對新發現的東西有完整的瞭解之前, 不要輕易的將之使用在已經正式上線且運作正常的系統上。有的管理員在網路上看到好用的軟體、 神奇的設定、便利的script,就會迫不及待的在自己管理的機器上試驗起來。經驗法則告訴我們說,這是一件很危險的事。 系統管理強調的是維持系統的可用性,而不是裡頭有多高難度的設定或多偉大的軟體。沒有穩定可用的系統, 管理員再高的技術也等於零。 3. 不要亂改預設值 除非有必要,如效能提昇、應用程式需求、安全因素.....等, 否則不要改系統的預設值。如果真的需要改變,記得詳細記錄在系統文件上。隨意的改變系統預設值, 可能在某些情況下造成系統的不正常,或是在除錯時造成困難。 除了系統參數外, 程式安裝的預設路徑和設定