顯示具有 SOLARIS 標籤的文章。 顯示所有文章
顯示具有 SOLARIS 標籤的文章。 顯示所有文章

Solaris 10 基本用法之備忘錄

Solaris 10 改用 SMF 服務命令行管理工具來進行 Solaris 10 系統服務的管理,為了怕自己又忘記這些常用 command 的用法,只好貼上來備忘囉...

1. 用 svcs –a 來查看所有服務的狀態:

svcs 命令顯示服務實例的狀態(STATE)、開始時間(STIME)和 FMRI。每個服務的狀態都為下列狀態之一:
-- degraded-服務實例處於啟用狀態,但是以有限的功能運行。
-- disabled-服務實例處於禁用狀態且尚未運行。
-- legacy_run-傳統服務不由 SMF 進行管理,但是可查看服務。此狀態只能由傳統服務使用。
-- maintenance-服務實例遇到錯誤,必須由管理員解決。
-- offline-服務實例處於啟用狀態,但是尚未運行或者無法運行。
-- online-服務實例處於啟用狀態,並且已成功啟動。
-- uninitialized-此狀態是所有服務在配置經過讀取之前的初始狀態。

以下是常見服務的名稱 :
network svc:/milestone/network:default
sshd svc:/network/ssh:default
cron svc:/system/cron:default
automount svc:/system/filesystem/autofs:default
sendmail svc:/network/smtp:sendmail
nfs svc:/network/nfs/server:default
ntpd svc:/network/ntp:default
2. 用 svcs -v -x 檢查當前系統中的服務狀況,並自動診斷出服務出錯的原因。

3. 使用 | (管道符重定向)作更個性化的查找當前所有的服務狀態;例如:
# svcs |grep online 查看當前運行服務
# svcs |grep offline 查看當前停止服務
# svcs |grep ntp 查看 ntpd 服務狀態
4. 用 svcadm 來做 Service 的啟動、停止或重啟:
這裡用 ntpd 來做例子,如果要立刻停止或重啟服務,那麼可以使用 svcadm 的 -t 參數:
# svcadm disable -t network/ntp
(另一種下法是敲入完整的 FMRI 表示的服務名稱:
# svcadm disable -t svc:/network/ntp:default)
停止ntpd服務,等同于 /etc/init.d/ntpd stop
# svcadm enable -t network/ntp
啟動 ntpd 服務,等同于 /etc/init.d/ntpd start
# svcadm restart network/ntp
重啟(停止並啟動) ntpd 服務,等同于 /etc/init.d/ntpd stop; /etc/init.d/ntpd start
# svcadm refresh network/ntp
Relaod ntpd (重新讀取配置文件),等同于 kill -HUP `cat /var/run/ntpd.pid`

最後的小注記:新裝的系統中由於沒有建立系統 DNS 解析配置檔 /etc/resolv.conf 會導致系統dns client 服務啟動失敗,而 dns client 則是許多服務的依賴前置服務,包括 inetd、sshd、sendmail...等幾乎所有的網路服務,就導致整個Solaris 10 系統中的所有網路服務啟動失敗。記得要在安裝完系統之後手動建立與設定 /etc/resolv.conf 和 /etc/defaultrouter 兩個檔案)
(詳全文...)

Solaris 10 變更 IP address

今天因為之前 IP plan 的一個疏忽,居然讓兩台 server 的 IP 衝到了,只好將其中一台 安裝了 Solaris 10 的 Sun server 改掉,手動將 /etc/hosts 變更之後,並確認過 /etc/hostname.bge0 也都正確後,重起網路,發現 bge0 的 IP address 居然沒改掉,東看西看,終於發現原來 /etc/hosts 居然不像以前用的 Solaris 8 會有 symbolic link 指向 /etc/inet/hosts 這個檔,
在手動將 /etc/inet/hosts 改掉重起網路之後,果然 bge0 的 IP address 已經變更完成。

將下面這些留著當筆記備用吧,果然東西不常用還是容易忘記啊~

要自己使用固定的 IP address 時,要設定檢查下面的幾個檔案:
/etc/nodename (寫 hostname 的地方啦)
/etc/hostname.bge*
/etc/defaultrouter
/etc/hosts (在 Solaris 10 裡用 symbolic link 指到 /etc/inet/hosts)
/etc/networks (在 Solaris 10 裡用 symbolic link 指到 /etc/inet/networks)
/etc/netmasks (在 Solaris 10 裡用 symbolic link 指到 /etc/inet/netmasks)
(詳全文...)

如何在 SunFire with Solaris 的機器上把指示燈打開?

有時候到機房去找一台不知道在哪裡的機器時,那真可謂是大海撈針一般啊。所以如果可以先將這機器上那超亮的指示燈打開(機器的前後都會亮喔),一到機房,是不是就很容易可以找到要的機器了呢?當然前提是這台機器是有接電的啦,呵呵...

這裡我們就來試一下這個很好用的 command 吧...
首先看一下這個 command 有什麼 option 吧:
root@cms0 # /usr/sbin/locator ?
usage: locator [-n | -f]
加上 -n 是用來打開定位器指示燈的:
# /usr/sbin/locator -n
如果你的機器是處於 SC mode (ALOM command line),那你可以使用下面的 command 來打開指示燈:
sc> setlocator on
加上 -f 就是用來關閉定位器指示燈:
# /usr/sbin/locator -f
而 SC mode (ALOM command line),就使用下面的 command 來關閉指示燈:
sc> setlocator off
不加 option 則用來顯示定位器指示燈的狀態:
# /usr/sbin/locator
如果機器的指示燈目前狀態是關閉的,那應該就會得到像下面的結果:
The 'system' locator is off.
而 SC mode (ALOM command line),就使用下面的 command 來檢查指示燈狀態:
sc> showlocator

好了,報告完畢,雖然很短,但常到機房找機器的人應該會覺得很實用吧!
(詳全文...)

如何備份 Solaris 系統ㄌㄟ?(二)

這一篇要說的是部分資料或者說目錄好了的備份方式,相對來說會比上一篇簡單點,也就是採用 tar 命令來完成,這裡用兩個範例來說明:

首先第一個例子是把整個 /CMSshare 目錄備份到 TAPE:

root@cms0 # cd /CMSshare (切換到要備份的目錄)
root@cms0 # mt rew (備份前先把 TAPE 倒帶一下吧)
root@cms0 # /usr/local/bin/tar cvf /dev/rmt/0n ./* (這裡其中 0n 指備份完不倒帶,若只有0是備份完就倒帶)

root@cms0 # mt rew (檢查前先把 TAPE 倒帶一下吧)
root@cms0 # /usr/local/bin/tar tvf /dev/rmt/0n (檢查一下剛剛備份的資料)

這裡是把備份到 TAPE 的資料還原回 /CMSshare 目錄:

root@cms0 # cd /CMSshare (切換到要還原的目錄)
root@cms0 # mt rew (還原前一樣先把 TAPE 倒帶一下吧)
root@cms0 # /usr/local/bin/tar xfp /dev/rmt/0

接下來第二個例子是把整個 c3t3d0 上的 /CMSshare 目錄 (c3t3d0s6,因為是外接的 3310 Storage) 備份到 c1t2d0 :

Step1:
先檢查一下目前的 Disk format 狀態吧:
root@cms0 # format

Step2: 把新的 72G HDD 放進 c1t2d0, 然後用 devfsadm 重新掃一下這顆 HDD 吧:
root@cms0 # devfsadm


Step3: 再檢查一次目前的 Disk format 狀態:
root@cms0 # format


>>> 新的 HDD 應該會出現在 AVAILABLE DISK SELECTIONS:
2. c1t2d0 (SUN72G cyl 14087 alt 2 hd 24 sec 424)
/pci@1c,600000/scsi@2/sd@2,0

Specify disk (enter its number): ^D ( Ctrl+d 離開吧)
root@cms0 #


Step4: detect c1t2d0 的新 HDD 後我們先把 c1t2d0s2 做 newfs 的動作:
root@cms0 # newfs /dev/rdsk/c1t2d0s2


Step5: 把 c1t2d0s2 mount 到 /mnt 去吧,然後檢查一下是不是有看到 lost+found:
root@cms0 # mount /dev/dsk/c1t2d0s2 /mnt
root@cms0 # ls -alrt /mnt

total 22
drwxr-xr-x 33 root root 2048 Oct 3 16:07 ..
drwx------ 2 root root 8192 Oct 23 18:19 lost+found
drwxr-xr-x 3 root root 512 Oct 23 18:19 .

Step6: 檢查一下目前 /CMSshare 和 /mnt 的 Disk partition:
root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c3t3d0s6 104025041 82993939 19990852 81% /CMSshare
/dev/dsk/c1t2d0s2 70592505 9 69886571 1% /mnt

Step7: 開始 Dump /CMSshare 的資料到 c1t2d0s2:
root@cms0 # cd /CMSshare

root@cms0 # /usr/local/bin/tar cvf - ./*|(cd /mnt; /usr/local/bin/tar xfp -)


Step8: Dump 完 /CMSshare 的資料後把 c1t2d0s2 從 /mnt umount 掉吧:
root@cms0 # umount /mnt


Step9: 現在可以把新 HDD 拔出 c1t2d0 囉。

這樣就算備份完成囉....簡單吧。
(詳全文...)

如何備份 Solaris 系統ㄌㄟ?(一)

昨天寫到 Linux 上的備份還原機制,就看到 Vicky 的留言,所以今天就把 Solaris 上的備份方式也貼上來好了。這裡我們的示範環境為 SunFire v240 的機器上面 OS Solaris 8 (其中 c1t0d0 和 c1t1d0 SDS mirror,然後 c1t2d0 用來備份測試,不過關於 SDS 的部分以後再說吧,雖然那也是一種備份整顆 HDD 資料的方式):

首先,比較簡單的方式就是用 dd 命令來直接備份整顆 c1t0d0 的資料( OS ) c1t2d0

Step1: 先檢查一下目前的 Disk format 狀態吧:
root@cms0 # format

Step2: 把新的 72G HDD 放進 c1t2d0, 然後用 devfsadm 重新掃一下這顆 HDD 吧:
root@cms0 # devfsadm

Step3: 再檢查一次目前的 Disk format 狀態:
root@cms0 # format

>>> 新的 HDD 應該會出現在 AVAILABLE DISK SELECTIONS:
2. c1t2d0 (SUN72G cyl 14087 alt 2 hd 24 sec 424)
/pci@1c,600000/scsi@2/sd@2,0

Specify disk (enter its number): ^D ( Ctrl+d 離開吧)
root@cms0 #

Step4: detect c1t2d0 的新 HDD 後我們開始把目前 c1t0d0 partition table 備一份到 c1t2d0 的新 HDD 囉:
root@cms0 # prtvtoc /dev/rdsk/c1t0d0s2 | fmthard -s - /dev/rdsk/c1t2d0s2
fmthard: New volume table of contents now in place.

Step5: 接著就可以開始 dump c1t0d0 上含 OS 的資料到 c1t2d0 了:
root@cms0 # dd if=/dev/rdsk/c1t0d0s2 of=/dev/rdsk/c1t2d0s2 bs=2048k

Step6: Dump 完資料後就可以把新 HDD 拔出 c1t2d0 囉。

第二種方式,使用 ufsdump 命令來做,不過這種方式因為是以一個一個 mount point 來做,所以相對比較麻煩,而且對於跨 mount point 的 link,在做完要使用新 HDD 時,需要記得先手動把這些目錄建回來喔!!

Step1: 跟使用 dd 一樣,先檢查一下目前的 Disk format 狀態吧:
root@cms0 # format

Step2: 把新的 72G HDD 放進 c1t2d0, 然後用 devfsadm 重新掃一下這顆 HDD 吧:
root@cms0 # devfsadm

Step3: 再檢查一次目前的 Disk format 狀態:
root@cms0 # format

>>> 新的 HDD 應該會出現在 AVAILABLE DISK SELECTIONS:
2. c1t2d0 (SUN72G cyl 14087 alt 2 hd 24 sec 424)
/pci@1c,600000/scsi@2/sd@2,0

Specify disk (enter its number): ^D ( Ctrl+d 離開吧)
root@cms0 #

Step4: detect c1t2d0 的新 HDD 後我們開始把目前 c1t0d0 partition table 備一份到 c1t2d0 的新 HDD 囉:
root@cms0 # prtvtoc /dev/rdsk/c1t0d0s2 | fmthard -s - /dev/rdsk/c1t2d0s2
fmthard: New volume table of contents now in place.

Step5: 先 newfs 一下 /dev/rdsk/c1t2d0s0 給 / partition 用:
root@cms0 # newfs /dev/rdsk/c1t2d0s0


Step6: 把 c1t2d0s0 mount 到 /mnt 去吧,然後檢查一下是不是有看到 lost+found:

root@cms0 # mount /dev/dsk/c1t2d0s0 /mnt

root@cms0 # ls -alrt /mnt
total 22
drwxr-xr-x 33 root root 2048 Oct 3 16:07 ..
drwx------ 2 root root 8192 Oct 23 18:19 lost+found
drwxr-xr-x 3 root root 512 Oct 23 18:19 .

Step7: 檢查一下目前的 Disk partition for / and /mnt:

root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 10177036 1047539 9027727 11% /
/dev/dsk/c1t2d0s0 11219980 9 11107772 1% /mnt

Step8: 開始 Dump / 的資料到 c1t2d0s0:

root@cms0 # cd /

root@cms0 # ufsdump 0uf - . | (cd /mnt; ufsrestore xf -);date

( 敲入“y” 兩次來確認)

set owner/mode for '.'? [yn] y
Directories already exist, set modes anyway? [yn] y

root@cms0 # iostat -cnzx 10 (用來檢查目前的 I/O status,這裡的 10 是每 10 秒的意思啦)


Step9: 再檢查一次目前的 Disk partition for /ot and /mnt:

root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 10177036 1047539 9027727 11% /
/dev/dsk/c1t2d0s0 10177036 1047569 9027697 11% /mnt

Step10: Install boot for / partition
:(這一步千萬別忘了唷)
root@cms0 # installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0


Step11: Dump 完 / 的資料後把 c1t2d0s0 從 /mnt umount 掉吧:

root@cms0 # umount /mnt


Step12: 再來 newfs 一下 /dev/rdsk/c1t2d0s4 給 /var partition 用:
root@cms0 # newfs /dev/rdsk/c1t2d0s4


Step13: 把 c1t2d0s4 mount 到 /mnt 去吧,然後檢查一下是不是有看到 lost+found:
root@cms0 # mount /dev/dsk/c1t2d0s4 /mnt

root@cms0 # ls -alrt /mnt

total 22
drwxr-xr-x 33 root root 2048 Oct 3 16:07 ..
drwx------ 2 root root 8192 Oct 23 18:19 lost+found
drwxr-xr-x 3 root root 512 Oct 23 18:19 .

Step14: 檢查一下目前的 Disk partition for /var and /mnt:
root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s4 10080200 2563351 7416047 26% /var
/dev/dsk/c1t2d0s4 11219980 9 11107772 1% /mnt

Step15: 開始 Dump /var 的資料到 c1t2d0s4:

root@cms0 # cd /var

root@cms0 # ufsdump 0uf - . | (cd /mnt; ufsrestore xf -);date

( 敲入“y” 兩次來確認)
set owner/mode for '.'? [yn] y
Directories already exist, set modes anyway? [yn] y
root@cms0 # iostat -cnzx 10 (用來檢查目前的 I/O status,這裡的 10 是每 10 秒的意思啦)

Step16: 再檢查一次目前的 Disk partition for /var and /mnt:

root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s4 10080200 2563383 7416015 26% /var
/dev/dsk/c1t1d0s4 11219980 2563374 8544407 25% /mnt

Step17: Dump 完 /
var 的資料後把 c1t2d0s4 從 /mnt umount 掉吧:
root@cms0 # umount /mnt


Step18: 再來 newfs 一下 /dev/rdsk/c1t2d0s5 給 /oracle partition 用:
root@cms0 # newfs /dev/rdsk/c1t2d0s5


Step19: 把 c1t2d0s5 mount 到 /mnt 去吧,然後檢查一下是不是有看到 lost+found:
root@cms0 # mount /dev/dsk/c1t2d0s5 /mnt

root@cms0 # ls -alrt /mnt

total 22
drwxr-xr-x 33 root root 2048 Oct 3 16:07 ..
drwx------ 2 root root 8192 Oct 23 18:19 lost+found
drwxr-xr-x 3 root root 512 Oct 23 18:19 .

Step20: 檢查一下目前的 Disk partition for /oracle and /mnt:
root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s5 20545897 1964723 18375716 10% /oracle
/dev/dsk/c1t2d0s5 20545897 9 20340430 1% /mnt

Step21: 開始 Dump /oracle 的資料到 c1t2d0s5 >>

root@cms0 # cd /oracle

root@cms0 # ufsdump 0uf - . | (cd /mnt; ufsrestore xf -);date

( 敲入“y” 兩次來確認)

set owner/mode for '.'? [yn] y
Directories already exist, set modes anyway? [yn] y
root@cms0 # iostat -cnzx 10 (用來檢查目前的 I/O status,這裡的 10 是每 10 秒的意思啦)


Step22: 再檢查一次目前的 Disk partition for
/oracle and /mnt:
root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s5 20545897 1964723 18375716 10% /oracle
/dev/dsk/c1t1d0s5 20545897 1964769 18375670 10% /mnt

Step23: Dump 完
/oracle 的資料後把 c1t2d0s5 從 /mnt umount 掉吧:
root@cms0 # umount /mnt


Step24: 再來 newfs 一下 /dev/rdsk/c1t2d0s6 給 /opt partition 用:
root@cms0 # newfs /dev/rdsk/c1t2d0s6


Step25: 把 c1t2d0s6 mount 到 /mnt 去吧,然後檢查一下是不是有看到 lost+found:
root@cms0 # mount /dev/dsk/c1t2d0s6 /mnt

root@cms0 # ls -alrt /mnt

total 22
drwxr-xr-x 33 root root 2048 Oct 3 16:07 ..
drwx------ 2 root root 8192 Oct 23 18:19 lost+found
drwxr-xr-x 3 root root 512 Oct 23 18:19 .

Step26: 檢查一下目前的 Disk partition for /opt and /mnt:
root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s6 20545897 1246351 19094088 7% /opt
/dev/dsk/c1t2d0s6 20545897 9 20340430 1% /mnt

Step27: 開始 Dump /opt 的資料到 c1t2d0s6 >>

root@cms0 # cd /opt

root@cms0 # ufsdump 0uf - . | (cd /mnt; ufsrestore xf -);date

( 敲入“y” 兩次來確認)

set owner/mode for '.'? [yn] y
Directories already exist, set modes anyway? [yn] y
root@cms0 # iostat -cnzx 10 (用來檢查目前的 I/O status,這裡的 10 是每 10 秒的意思啦)


Step28: 再檢查一次目前的 Disk partition for /opt and /mnt:

root@cms0 # df -k

Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s6 20545897 1246351 19094088 7% /opt
/dev/dsk/c1t2d0s6 20545897 1246423 19094016 7% /mnt

Step29: Dump
完 /opt 的資料後把 c1t2d0s6 從 /mnt umount 掉吧:
root@cms0 # umount /mnt


Step30: Dump 完所有 mount point 的資料並 unmount 掉 /dev/dsk/c1t2d0 之後就可以把新 HDD 拔出 c1t2d0 囉。

以上這兩種方法可以看成是針對整顆 HDD 的資料來做備份或轉移的喔。
剩下的就留到下一篇再寫吧...以上,報告完畢。

(詳全文...)

[Solaris] Cluster NTP 的設定

幫其他國家的 Site 檢查設定時發現居然 server 間時差很嚴重,所以只好先幫他們解決 NTP 不 sync. 的問題。
1. 先從 /etc/inet/ntp.server copy 到 /etc/inet/ntp.conf.cluster 來用,分別在
myklmitv01, myklmitv02都做一樣的動作,把檔案中前面哪一堆有 # 的部分都先殺掉 (佔空間,看著很礙眼).
2. 再編輯一下 by "vi /etc/inet/ntp.conf.cluster".
>> 直接貼下面的設定進去 /etc/inet/ntp.conf.cluster (其中 10.1.110.11 是 NTP server 的 IP address)
server 10.1.110.11
peer clusternode1-priv prefer
peer clusternode2-priv
server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/ntp/ntp.drift
statsdir /var/ntp/ntpstats/
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable
filegen clockstats file clockstats type day enable

3. 兩台都改好之後,重起一下 NTP service by "/etc/init.d/xntp.cluster stop; /etc/init.d/xntp.cluster start;"
4. 然後稍待一下檢查 NTP process 及 sync. status by "ps -ef | grep ntp" and "ntpq -p".
5. 附上執行完的結果:

myklmitv01 root#ps -ef | grep ntp
root 1452 1 0 18:18:07 ? 0:00 /usr/lib/inet/xntpd -c /etc/inet/ntp.conf.cluster
root 1458 1 0 18:18:17 ? 0:00 /usr/lib/inet/xntpd
root 2287 28745 0 18:29:31 pts/22 0:00 grep ntp


myklmitv01 root#ntpq -p
remote refid st t when poll reach delay offset disp
==============================================================================
*10.1.110.11 .GPS. 1 u 9 128 377 27.97 -5.261 27.92
LOCAL(0) LOCAL(0) 10 l 43 64 377 0.00 0.000 10.01
clusternode1-pr 0.0.0.0 16 - - 64 0 0.00 0.000 16000.0
+clusternode2-pr 10.1.110.11 2 u 23 64 176 -4.67 20.924 390.00


myklmitv02 root#ps -ef | grep ntp
root 5439 1 0 18:20:02 ? 0:00 /usr/lib/inet/xntpd
root 6092 5346 0 18:30:12 pts/16 0:00 grep ntp
root 5433 1 0 18:20:02 ? 0:00 /usr/lib/inet/xntpd -c /etc/inet/ntp.conf.cluster


myklmitv02 root#ntpq -p
remote refid st t when poll reach delay offset disp
==============================================================================
*10.1.110.11 .GPS. 1 u 15 64 377 42.54 19.533 22.26
LOCAL(0) LOCAL(0) 10 l 14 64 377 0.00 0.000 10.01
+clusternode1-pr 10.1.110.11 2 u 34 64 377 0.78 3.101 11.80
clusternode2-pr 0.0.0.0 16 - - 64 0 0.00 0.000 16000.0

(詳全文...)