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

2012年2月14日 星期二

Xen Guest如何進入single mode




1. Alter the 'OS Boot Parameters' entry in the 'General' tab of XenCenter to include the alphabet s.
e.g graphical utf8 [b]s[/b]

2. Reboot the host

3. You will be directly taken to the shell prompt of single user mode.

參考:
http://forums.citrix.com/thread.jspa?threadID=151166

手動釋放Linux記憶體

kernel:2.6.16+
OS:CentOS 4.7

透過 /proc/sys/vm/drop_caches這個檔案來釋放記憶體

以root來執行以下的指令
先將記憶體的暫存資料寫入disk
# sync;sync;sync

釋放linux記憶體
# echo 3 > /proc/sys/vm/drop_caches

再將 /proc/sys/vm/drop_caches的值設為0
# echo 0 > /proc/sys/vm/drop_caches

可以用  free 令來看記憶體目前的狀態

參考:
http://huenlil.pixnet.net/blog/post/26822270-%5B%E8%BD%89%5D-%E9%87%8B%E6%94%BElinux%E8%A8%98%E6%86%B6%E9%AB%94

man drop_caches
ftp://ftp.alaska.edu/pub/sois/man/drop_caches.html

2010年8月3日 星期二

linux 網路卡驅動

確認系統有沒有抓到硬體裝置
# lspci | grep Ethernet
03:07.0 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 01)
03:07.1 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 01)

確認有沒有上模組
# lsmod | grep e1000
e1000 120273 0

確認網路有沒有連接 (使用ethtool工具,必須由root身份執行)
# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes

查看網路卡驅動程式資料
# ethtool -i eth1
driver: e1000
version: 7.3.20-k2-NAPI
firmware-version: N/A
bus-info: 0000:03:07.1

2010年7月26日 星期一

Linux Hostid

Linux hostid 的演算步驟:

1. 用 $HOSTNAME 反查,查看 /etc/hosts 的記錄,來得到 IP

2. IP 四個數字轉 Hex

3. 再做 2143 順位的轉換


範例:

在 /etc/hosts 內的第一行記錄是
127.0.0.1 hostname localhost.localdomain localhost

1. 用$HOSTNAME 反查得知 IP 為 127.0.0.1

2. 127.0.0.1 轉成 Hex 為 7F000001

3. 再做 2143 順位的轉換,得到 007F0100

說明:這也說明了,為什麼 linux 查到的 hostid 都是 7f0100 這個答案了 ^ ^


參考網址:
http://pank.org/blog/2005/10/linux-hostid.html

2010年6月21日 星期一

查詢linux安裝的套件是32bit or 64bit ?

目前大都安裝64bit的linux OS,當然隨附的套件主要也是64bit,可是當你所使用的應用軟體需要使用到32bit的套件、library時,可以使用下列指令來查詢已安裝的套件是32bit or 64bit.

# rpm -q --queryformat '%{ARCH}\n' rpm_name

例如:
# rpm -q --queryformat '%{ARCH}\n' glibc
i686
x86_64

(代表安裝的 glibc 有 32bit及64bit)

2010年5月27日 星期四

Find Host ID or Machine ID

有些軟體的license是與機器的hostid綁在一起的,以下整理在各個平台上,如何尋找Host ID (Machine ID):(主要還是要看軟體要取的是哪一種方式)
Windows
Option 1: Volume Serial Number
執行命令提示字元,執行下列指令
C:\> vol c:
會出現"DISK_SERIAL_NUM=1234-abcd"的字串,Host ID就是"1234abcd" (將dash "-" 去掉)

Option 2: Mac Address (Physical Address)
執行命令提示字元,執行下列指令
C:\> getmac
會列出本機上所有的網路卡實體位址

或者執行
C:\> ipconfig /all
"Physical Address"所列的就是網路卡實體位址 (例如:001122aabbcc,將dash去掉)

Solaris
Option 1: Mac Address

執行下列指令
# /usr/sbin/arp `hostname`
出現 00:11:22:aa:bb:cc 的網路卡實體位址 (記得要將colon ":"去掉)

Option 2: CPU Hostid
執行下列指令
# /bin/hostid

Linux
主要是以eth0這個網卡的MAC Address為主
執行下列指令
# /sbin/ifconfig eth0
"HWaddr"
所列的就是網路卡實體位址 (例如:001122aabbcc,將colon去掉)

補充說明
如果有安裝FLEXnet tools,可以執行下列指令,查看在此平台上的hostid
# lmutil lmhostid



參考資料來源:
http://www.mathworks.com/support/solutions/en/data/1-171PI/index.html

2010年5月21日 星期五

以非root身份執行命令

在linux系統,如果要將程式設定開機自動啟動,將執行命令編輯到 /etc/rc.local檔案
若要以非root身份執行命令,如下:

su - username -c “command”

或者編輯username的crontab
# crontab -e -u username
加入
@reboot command
(詳細說明,可以 man 5 crontab)

2010年5月20日 星期四

tcsh

關閉beep警告音
# set nobeep

2010年5月12日 星期三

Glibc升級

OS: RHEL 5.3 x86_64
Kernel: 2.6.18

需要rpm套件如下:
32bit
glibc-2.5-42.i386.rpm
glibc-common-2.5-42.i386.rpm
glibc-devel-2.5-42.i386.rpm
glibc-headers-2.5-42.i386.rpm
nscd-2.5-42.i386.rpm
64bit
glibc-2.5-42.x86_64.rpm
glibc-common-2.5-42.x86_64.rpm
glibc-devel-2.5-42.x86_64.rpm
glibc-headers-2.5-42.x86_64.rpm
nscd-2.5-42.x86_64.rpm

執行rpm升級指令
# rpm -Uvh glibc-2.5-42.i386.rpm glibc-2.5-42.x86_64.rpm glibc-common-2.5-42.i386.rpm glibc-common-2.5-42.x86_64.rpm glibc-devel-2.5-42.i386.rpm glibc-devel-2.5-42.x86_64.rpm glibc-headers-2.5-42.i386.rpm glibc-headers-2.5-42.x86_64.rpm nscd-2.5-42.i386.rpm nscd-2.5-42.x86_64.rpm
warning: glibc-2.5-42.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:glibc-common ########################################### [ 10%]
2:glibc-common ########################################### [ 20%]
3:glibc ########################################### [ 30%]
4:nscd ########################################### [ 40%]
5:glibc-headers ########################################### [ 50%]
6:glibc-devel ########################################### [ 60%]
7:glibc-headers ########################################### [ 70%]
8:glibc ########################################### [ 80%]
9:glibc-devel ########################################### [ 90%]
10:nscd ########################################### [100%]
#

2010年4月23日 星期五

壓縮 / 解壓縮 指令

tar
將 /aaa 的資料全部備份至 /bbb

# cd /aaa
# tar cf - . | (cd /bbb ; tar xfBp -)

解 biz2檔案
# tar -jcv -f filename.tar.biz2 filename <--壓縮檔案或目錄
# tar -jtv -f filename.tar.biz2 <--查詢壓縮檔的內容
# tar -jxv -f filename.tar.biz2 -C <解壓縮要放置的目標目錄> <--解壓縮檔案

檢視目錄下的檔案數

查看目前目錄下文件數,包括子目錄內的。
# ls -lR | grep "^-" | wc -l

查看目前目錄下的目錄數,包括子目錄內的。
# ls -lR | grep "^d" | wc -l

查看目前目錄下的目錄+文件總數,包括子目錄內的。
# ls -lR | wc -l

2010年3月31日 星期三

解決CentOS 5.3安裝Acroread時,出現libGLU.so.1的問題

安裝套件
rpm -ivh mesa-libGLU-6.5.1-7.7.el5.i386.rpm

rpm套件下載網址
http://rpm.pbone.net/

解決CentOS出現方塊字的問題

安裝中文字型

rpm -ivh fonts-chinese-3.02-9.6.e15.noarch.rpm

rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm


rpm套件下載網址
http://rpm.pbone.net/

2010年3月30日 星期二

CentOS中文顯示

修改檔案:
/etc/sysconfig/i18n

內容換成:
LANG="zh_TW.Big5"
SUPPORTED="zh_TW.Big5:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"


登出重新連線

文章出處:
http://lincf0315.blogspot.com/2007/04/centos.html

2010年3月8日 星期一

在linux上安裝nawk -用連結方式

linux 環境 : kernel 2.6.9-34

目前linux預設安裝的 awk 工具為 gawk (GNU)
可以在安裝路徑下看到 awk以連結方式連結到gawk:
# ls -la /bin | grep awk
lrwxrwxrwx 1 root root 4 Dec 1 2008 awk -> gawk
-rwxr-xr-x 1 root root 252380 Nov 5 2004 gawk

如果有nawk的需求,也可以用soft link方法,連結到gawk
# ln -s gawk nawk
# ls -la /bin | grep awk
lrwxrwxrwx 1 root root 4 Dec 1 2008 awk -> gawk
-rwxr-xr-x 1 root root 252380 Nov 5 2004 gawk
lrwxrwxrwx 1 root root 4 Mar 8 15:19 nawk -> gawk

2008年8月12日 星期二

執行shell script,出現error

當執行一個 Shell Script可執行檔時,出現無法執行的情況時,可以採用下列方法解決。
必須先確認此Script是可執行的

# chmod 755 filename

一般在 Shell Script的第一行會寫由哪一個 Shell來執行,如下列所示


#!/bin/sh
....

[狀況一]:
執行 ./filename 時,出現 "bad interpreter:No such file or directory"等訊息時

[Solution]:確認 Script是什麼格式 ( dos、unix、mac)
1. vi filename,再執行命令
:set ff?
可以看到 fileformat是dos 或 unix的字樣,如果是dos格式,使用 :set fileformat=unix,強制成為 unix格式,存檔退出,再執行試試看。

2. 用 od -t x1 filename
如果看到 " 0d 0a"的字串,這個檔案為 dos格式,只有 0a而沒有0d,則是unix格式。

3. 除了用 vi 的命令變更檔案格式,也可以使用 unix2dos 或 dos2unix這兩個程式
# dos2unix filename <--變更為unix格式

[狀況二]:
執行 Script時,出現 "permission denied"的訊息

[Solution]:查看 Script 的所在目錄,mount table是否有加入 "noexec"的option
# cat /etc/fstab
/dev/hda5   /ftp      ext3      noexec,user_xattr           0  2
/dev/hda7 /home ext3 defaults 0 2
/dev/hda9 /tmp ext3 defaults 0 2

2008年2月29日 星期五

Linux

Linux的預設編譯語系
/etc/sysconfig/i18n

2008年2月26日 星期二

popd & pushd 切換目錄

用 cd 指令來切換目錄
回到家目錄
$ cd
回到上一個使用的目錄
$ cd -

切換多個目錄,可以用pushd及popd,排列方式為
堆疊(stack)的型式
例子:
cora@host[/home/cora]>#pushd /etc
/etc ~
cora@host[/etc]>#pushd /var/log
/var/log /etc ~
cora@host[/var/log]>#pushd /tmp
/tmp /var/log /etc ~
cora@host[/tmp]>#popd
/var/log /etc ~
cora@host[/var/log]>#popd
/etc ~
cora@host[/etc]>#


cora@host[/var/log]>#dirs
/var/log /tmp /usr/bin /etc ~
cora@host[/var/log]>#pushd +2
/usr/bin /etc ~ /var/log /tmp
cora@host[/usr/bin]>#pushd +3
/var/log /tmp /usr/bin /etc ~
cora@host[/var/log]>#

cora@host[/var/log]>#dirs
/var/log /tmp /usr/bin /etc ~
cora@host[/var/log]>#popd +2
/var/log /tmp /etc ~
cora@host[/var/log]>#popd +3
/var/log /tmp /etc
cora@host[/var/log]>#popd +1
/var/log /etc
cora@host[/var/log]>#

2008年2月25日 星期一

Swap space

Linux:

->新增 swap 分割區
# mkswap /dev/hda5
啟用 swap 分割區
# swapon /dev/hda5
編輯 /etc/fstab,加入下列這一行:
/dev/hdb2 swap swap defaults 0 0

->移除 swap 分割區
停用 swap 分割區
# swapoff /dev/hda5
刪除 /etc/fstab 內的記錄
更改 分割表 的記錄
# fdisk /dev/hda5

->新增 swap 檔案
決定swap檔案的大小,然後乘以 1024 以取得磁碟區
塊(block)的大小,例如 64MB 之 swap 檔案的區塊
大小為65536。
# dd if=/dev/zero of=/swapfile bs=1024
count=65536
設定 swap 檔案
# mkswap /swapfile
啟用 swap 檔案
# swapon /swapfile
編輯 /etc/fstab,加入下列這一行:
/swapfile swap swap defaults 0 0
->移除 swap 檔案
停用 swap 檔案
# swapoff /swapfile
刪除 /etc/fstab 內的記錄
移除 swap 檔案
# rm /swapfile

Solaris:

增加swap space
# mkfile 20m /export/data/swapfile
# swap -a /export/data/swapfile
# swap -l
# swap -s

刪除swap space
# swap -d /export/data/swapfile
# rm /export/data/swapfile
# swap -l
# swap -s

寫入/etc/vfstab
# vi /etc/vfstab
(/export/data/swapfile - - swap - no -)



參考:
/dev/null:為一輸出裝置(可以視為一個黑洞檔案),
輸出到 /dev/null 的資料會消失無蹤。

/dev/zero:為一輸入裝置(可以視為一個只會不斷輸
出 0 的鍵盤),對 /dev/zero 的讀取要
求都只能讀到 Null (0)。

2008年2月22日 星期五

stdin、stdout、stderr

stdin:標準輸入;代碼為 0;使用的方式為  <>

stderr:錯誤輸出;代碼為 2;使用的方式為 2>

例子:
[原式]
$cat y
This is y.

$cat x y
Cat: x: No such file or directory
This is y.

[將stdout重導入file1,stderr重導入file2]
$cat x y 1>file1 2>file2

$cat file1
This is y.

$cat file2
Cat: x: No such file or directory

[將stdout及stderr重導入file1]
$cat x y 1>file1 2>&1

$cat file1
Cat: x: No such file or directory
This is y.