2008年8月9日 星期六

升級成新版的 FEDORA

FEDORA 提供了一個簡單的 升級管理程式 yum
不只可以利用 yum 安裝, 管理, 升級各個程式
也可以用來升級 FEDORA 的安裝版本
像是
Fedora core 6 --> Fedora 7 啦!
Fedora 7 --> Fedora 8 啦!
Fedora 8 --> Fedora 9 (新增)
基本上的動作只有幾個
1 清掉 yum 的 cache
2 下載 新版的 資料
3 升級為新版本的程式

1 yum clean all

Fedora 8 --> Fedora 9 需要下的指令如下 (此處為舊的作法, 新的作法可用 preupgradey 進行 見後面附註2)
2 rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/9/Fedora/i386/os/Packages/fedora-release-9-2.noarch.rpm ftp://download.fedora.redhat.com/pub/fedora/linux/releases/9/Fedora/i386/os/Packages/fedora-release-notes-9.0.0-1.noarch.rpm
(需注意升級的目標的版本及相關位置)

Fedora 7 --> Fedora 8 需要下的指令如下
2 rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/
i386/os/Packages/fedora-release-8-3.noarch.rpm
ftp://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/
i386/os/Packages/fedora-release-notes-8.0.0-3.noarch.rpm
(需注意升級的目標的版本及相關位置)

Fedora core 6 --> Fedora 7 執行如下
2 rpm -Uvh http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/
i386/os/Fedora/fedora-release-notes-7.0.0-1.noarch.rpm
http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/
i386/os/Fedora/fedora-release-7-3.noarch.rpm
)

3 yum upgrade
這裡要注意可能有些軟體在新舊版本中使用的套件並不相容, 可先移除後, 再在升級新版本完成後再安裝
同時要注意, 重要的檔案路徑其分割區需要的磁碟空間要夠大 (每個 版本間的 upgrade 大約要 1~1.2 G), 我在安裝過程中也曾經碰過 /usr 剩餘的空間不夠大, upgrade 不成功的情況

附註1
在Fedora 7 升級 Fedora 8完成1,2 後, 進行 3更新的時候, 出現了一個衝突的問題
avahi.i386 在list 中有兩個版本, 分別為 fc7 及 fc8
要繼續進行系統安全性升級等動作, 出現了下列錯誤訊息

Transaction Check Error:

file /etc/avahi/avahi-autoipd.action from install of avahi-autoipd-0.6.21-8.fc8.i386 conflicts with file from package
avahi-0.6.17-1.fc7.i386
file /usr/sbin/avahi-autoipd from install of avahi-autoipd-0.6.21-8.fc8.i386 conflicts with file from package
avahi-0.6.17-1.fc7.i386

若利用 yum 先移除 avahi.i386 再安裝也會出錯
發生原因是, avahi-daemon avahi-dnsconfid 在 fc7 及 fc8 中 安裝在不同的位置
升級過程 中執行移除 avahi.i386 的script 會依 fc7 的路徑刪除檔案後再依 fc8 的script 再作一次 (或是反過來), 就會出現找不到檔案或路徑的錯誤
若手動移除 avahi*.fc7.i386 及 avahi.fc8.i386 會影響很多package, 重裝費時

請執行下面的指令, 跳過rpm套件的script直接將 avahi*.fc7 移除掉

rpm -e --noscripts avahi-0.6.17-1.fc7

成功後即可繼續利用 yum 進行 update

附註2 改用 preupgrade 套件進行

1 更新 yum
yum update fedora-release
2 安裝 preupgrade 套件
yum install preupgrade
3 在 x window 中執行 preupgrade
preupgrade

2008年8月4日 星期一

/var/log/messages stopped to log 系統記錄檔停止寫入 log 資料

跑了一段時間的 Server 通常都需要升級許多的套件, 升級結果偶而會發生下列的情況
/var/log 下面與系統有關的 記錄檔都不再寫入任何資料
包括 /var/log/messages /var/log/security etc.
會發生這個情況的原因是 SELINUX 的檔案目錄權限控管阻擋了許多檔案的寫入動作
造成幾個結果
1. syslogd klogd 仍舊可執行
2. /var/log/messages 長度 0, 無寫入任何資料
3. 手動執行 klogd -x -c 4; syslogd -m 0 可正常啟動
4. 使用服務啟動的script 無法正常寫入任何 log 資料
5. dmesg | grep syslog 會顯示類似下面的訊息
audit(1151150355.645:2): avc: denied { read } for pid=2204 comm="syslogd" name="services" dev=dm-0 ino=14567535 scontext=system_u:system_r:syslogd_t tcontext=rootbject_r:tmp_t tclass=file

第5 項就是問題的解答了 ^_^

遇到這樣的問題, 很容易困擾一些新手管理人員, 但修正的方法很簡單
執行 SELINUX的檔案目錄權限修正程式 fixfiles

fixfiles relabel

等它修正完成, 重啟動 syslogd 就一切正常囉!

google 您真是神啊!

2008年5月22日 星期四

vi 中利用 sort 排序資料

用vi 來看log檔常要排序一下資料
可以用外部的sort 程式協助排序

指令用法如下:
:1,$!sort -k 3
表示從第1列開始, 以第3 欄資料進行排序

:4,$!sort -k 3
表示從第4列開始, 以第3 欄資料進行排序 給有標題的文件用

:1,$!sort -k 4 -t"."
表示從第1列開始, 以第8 欄資料進行排序, 分欄字元是 "."
結果會如下 :
192.168.1.20
192.168.1.218
192.168.1.22
218 竟然排在 22 的前面? 是因為以"文字順序"排序的關係

:1,$!sort -k 4 -t"." -n
表示從第1列開始, 以第4 欄資料進行排序, 分欄字元是 "." , 並且依數字大小而非文字順序排序
結果會改變如下
192.168.1.20
192.168.1.23
192.168.1.218

vi 還真滿好用的

設定 DHCPD 記錄檔至 DHCPD.log

為了將DHCPD的 ip 分配記錄獨立設定到其他記錄檔可作如下的設定
1 建立 DHCPD.log
2修改 syslog.conf及 dhcpd.conf
i syslog.conf中加入下面的資料
##新增自定記錄及記錄檔
local6.* -/var/log/DHCPD.log
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
# 新增 local6.none 設定local6的記錄不寫入messages
*.info;mail.none;authpriv.none;cron.none;local6.none /var/log/messages
ii dhcpd.conf 中加入(我放在 dhcpd.conf最前面)
log-facility local6;
3建立DHCPD.conf
touch /var/log/DHCPD.log
4修改 /etc/logrotate.d/syslog的設定
增加 /var/log/DHCPD.log 到系統記錄自動壓縮儲存列表中
到此就大功告成了

2007年6月17日 星期日

Linux Soft RAID 新增、檢視及重建

1. 使用工具 mdadm
  • 第一個 Soft RAID : /dev/md0 由 /dev/hda1 及 /dev/hdb1 組成
  • 第二個 Soft RAID : /dev/md1 由 /dev/hda3 及 /dev/hdb3 組成
  • 第三個 Soft RAID : /dev/md2 由 /dev/hda2 及 /dev/hdb2 組成( 新增)
  • 兩個硬碟都要安裝 GRUB的開機管理程式才能在其中之一Crash 時用另一個開機!
  • 執行grub的指令如下即可
  • root (hd0,0)
  • setup (hd0)
  • root (hd1,0)
  • setup (hd1)
新增 RAID Level 1 陣列 使用 /dev/hda2 及 /dev/hdb2
  • 編輯 /etc/mdadm.con增加multipledevice資料如下
    ARRAY /dev/md2 devices=/dev/hda2,/dev/hdb2
  • 新建raid

    mdadm -C /dev/md2 --level=raid1 --raid-devices=2 /dev/hda2 /dev/hdb2
    此後即可使用 /dev/md2

2. 使用的是 IDE 為(hda 及 hdb ) 若是 SATA或SCSI 則可能是 ( sda 及 sdb)

3. 顯示磁碟陣列狀態

  • mdadm --detail /dev/md2
4. 假設 hda 壞了, 換成新硬碟後, partation 成Soft RAID 所需大小, 重新加入新磁碟 (要注意新舊分割區大小相符)
  • mdadm --manage /dev/md2 --add /dev/hda2
  • 再使用 mdadm --detail /dev/md2 即可看到Soft RAID rebuilding的訊息
  • 從 Rebuild Status 的資料可看到重建的百分率.

2007年3月17日 星期六

開放平台的Linux行動電話 OpenMoko

將在2007年Q1看到的開放平台計劃產品 OpenMoko 的 neo1973
http://www.openmoko.org/