2012年9月27日 星期四

bash 遞迴範例

#!/bin/bash

a()

{
[ "$1" -eq 1 ] && return
echo $1
$0 $[ $1 - 1 ]
}

a 5

2012年8月24日 星期五

RAMDisk Rootfs 工具 RDRTOOLS

類似embedded linux 作法,安裝好系統後,透過這個工具可將系統(rootfs)放到記憶體中
目前支援 CentOS 6版本

http://rdrtools.blogspot.tw/2012/08/ram-disk-root-tool-centos-ramdisktmpfs.html

2012年8月17日 星期五

尋找已安裝執行檔位於那個rpm套件中

find_rpm.sh內容如下

#!/bin/bash
[ $# -lt 1 ] && exit
p=$(which $1) && [ $? -ne 0 ] && exit
rpms=`rpm -qa`  || exit
n=0
for i in $rpms
do
  n=$[n + 1]
  a=$(rpm -ql $i  |   grep "^$p\$")
  [ "$a" != "" ] && echo $n $i $a && break
done

使用範例
find_rpm.sh which

RPM指令
rpm -q --whatprovides /

2012年6月22日 星期五

CentOS 6.2 設定 IP Over IB

modprobe ib_ipoib
modprobe ib_umad
/etc/init.d/opensm start

ip link set ib0 up
ip addr add 192.168.6.1/24 dev ib0

2012年5月30日 星期三

傳回 cut -d 最大分割筆數

bash shell function cut_dnum

傳回 cut -d 最大分割筆數,傳回值最大為 255

function cut_dnum ()
{
local __I=0
local __D=`echo "$2" | cut -c 1`
local __T
local __R

test $# -eq 3 && local __resultvar=$3 | local __resultvar=__R

while [ 1 ]
do
__I=`expr $__I + 1`
__T=`echo "$1"  | cut -d "$__D" -f -$__I`

eval $__resultvar="'$__I'"
test "$__T" = "$1" && return $__I;
done ;
}


使用方法
cut_dnum <字串> <分割字元> <結果儲存變數>

cut_dnum $PATH ':'
echo $?
cut_dnum $PATH " : " A
echo $? $A

2012年5月24日 星期四

手動mount LVM的Patition

列出所有 physical volumes

lvm pvscan

PV /dev/md5 VG vg1000 lvm2 [1.36 TB / 0 free]
Total: 1 [1.36 TB] / in use: 1 [1.36 TB] / in no VG: 0 [0 ]

使用 vgchange 在/dev下產生一個 vg1000 的目錄,並且在這個目錄下產生該有的device
vgchange -ay vg1000

找出裝置名
ls -l /dev/vg1000/

lrwxrwxrwx 1 root root 21 May 24 16:50 lv -> /dev/mapper/vg1000-lv

掛載檔案系統
mount /dev/mapper/vg1000-lv /mnt

Synology DS209內接硬碟(RAID1)改由USB外接存取

1.原NAS中硬碟改由usb外接

2.修復原 raid1
mdadm -A -R /dev/md5 /dev/sdq5

3.列出所有 physical volumes
lvm pvscan

PV /dev/md5 VG vg1000 lvm2 [1.36 TB / 0 free]
Total: 1 [1.36 TB] / in use: 1 [1.36 TB] / in no VG: 0 [0 ]

4.使用 vgchange 在/dev下產生一個 vg1000 的目錄,並且在這個目錄下產生該有的device
vgchange -ay vg1000

5.找出裝置名
ls -l /dev/vg1000/
lrwxrwxrwx 1 root root 21 May 24 16:50 lv -> /dev/mapper/vg1000-lv

6.掛載檔案系統
mount /dev/mapper/vg1000-lv /mnt

2012年3月14日 星期三

QNAP NAS TS212 安裝SVN

1.安裝SVN相關軟體
ipkg update
ipkg install svn

2.建立SVN資料目錄
mkdir /share/MD0_DATA/svn
svnadmin create /share/MD0_DATA/svn

3.修改SVN設定檔
修改 /share/MD0_DATA/svn/conf/passwd
[users]
harry = harryssecret
sally = sallyssecret

修改 /share/MD0_DATA/svn/conf/svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd

4.執行 svnserve -d --listen-port=3690 -r /share/MD0_DATA/svn

Client 相關設定
Linux client  bash 中加入以下參數
export SVN_EDITOR="/usr/bin/vim"

2012年2月20日 星期一

測伺服器CPU滿載電源最大負載

測伺服器CPU滿載電源最大負載
1.執行以下程式,一個核心一次
cpuload.c
int main(){ int i; for(;;) i=1;}
2.量測電流負載

2012年1月12日 星期四

QNAP TS-412 自訂排程

1.安裝 cron, coreutilsipkg install cron
ipkg install coreutils

2.編輯 /opt/var/cron/cron.allow 內容如下admin
3.加入排程工作 /opt/bin/crontab -e 內容範例如下
*/1 * * * * date >> /tmp/crontab.test

2012年1月5日 星期四

HD SUPPORT TOOLS

1.安裝 hdsupp.lrp
apkg -i hdsupp.lrp

2.複製 MBR 至開機硬碟(/dev/sda)
dd if=/usr/sbin/mbr.bin of=/dev/sda bs=512 count=1

3.執行 syslinux 安裝 ldlinux.sys
syslinux /dev/sda1