Jerry さんのプロフィール三角阳台的LIVE记事本フォトブログリストその他 ツール ヘルプ
2008/12/31

2008年终回顾

终于,从年“中”到了年“终”,事实证明,在2008年“中”的时候就先写篇总结是明智的,因为2008年发生了太多太多事情。。。

接续《2008年中回顾

7月,开始学攀岩,每周2次。7月3日小猪和青牛首次见面于攀岩馆(声明,不是我安排的)
7月,国际油价冲高到147.27美元的历史最高点。

8月,这个月最大的事情莫过于北京奥运会了。开幕式美仑美奂气势宏大精彩绝伦,比赛中,中国选手勇夺金牌数第一。
8月,格俄冲突。这是近年来最大的区域战争。

9月6日,为了哈巴去拉练,我们二度西湖毅行。
9月12-21日,哈巴·丽江游。攀哈巴雪山了却一桩心愿,虽然有点遗憾,最终高度停在了5100米的大雪坡上,但也算是参加户外活动以来的最高点了。
9月11日,三鹿事件暴露出中国食品安全的新问题,甚至掩盖了奥运的成功。
9月15日,雷曼兄弟申请破产,拉开了这一次金融危机乃至全球经济危机的序幕。
9月25日,中国载人航天事业达到一个新高峰,中国宇航员出舱在太空漫步。


10月,国庆无聊,重拾魔兽。
10月,魔鬼、Tracy新疆游遇险,迷路+大雪。

11月,三度西湖毅行,和兔子严寒青牛组成了“沿途青苔”队,参加了毅行公益活动。这次终于走完了全程,耗时7小时19分钟。
11月,魔兽世界第2个资料片巫妖王之怒(WLK)在除了中国大陆的世界各地开放。中国大陆的WLK开放时间完全没谱,被戏称为“WLK=忘了开”。我跟wuwu、菜菜一起在台服开了个新号。
11月,美国大选尘埃落定,奥巴马获胜,美国历史上第一个黑人总统诞生。
11月初,陈云林访台,签署多项协议。同时也引发绿营的强烈反弹。
11月,陈水扁被首度收押,而后在12月又被法官周占春2次释放,终又于12月30日二度收押。
11月,索马里海盗劫持乌克兰运送军火的船只、沙特油轮等几十艘船,愈演愈烈。
11月底,泰国政治局势恶化,数万旅客被困泰国。中国政府派专机接回中国游客。
11月底,印度孟买发生恶性恐怖袭击事件,泰姬陵酒店遇袭。

12月1日,拿到Kern给的台服70级萨满号,正式在台服开玩魔兽WLK,一个字,“太赞”!呃~数错,一激动,当了次“特奥”。
12月,绍兴游,意外在7路公交车上遇到Tony及其女友,巧哉!
12月计划26日去牯牛降,逢数周无雨气候干燥而封山,“雨神”魔鬼欲施法引雨,结果引发大雨雪天气,最后因大雪封山,活动取消。
12月25日,爷爷平静地过世,享年98岁。
12月底,经济危机的影响开始在公司较强烈的反应出来。
12月,国际油价从7月11日的147.27美元的历史最高点,如同坐过山车般的跌到36美元。
12月15日,两岸大三通正式启动。
12月,赠台大熊猫团团和圆圆终于赴台,入住台北动物园。
12月,中国海军3艘舰艇赴索马里海域护航,这是中国海军自郑和舰队以来首次远离本土的行动。
12月,以色列大举轰炸加沙,至今仍在持续。

2008年是中国改革开放30年,电视、报纸和各种媒体专题报道不断。

(完)

Windows 2008 Hyper-V Clustering (4) SCVMM安装/配置/试用

image 
安装是顺序安装VMM Server 和VMM Administrator Console即可。
采用默认端口8100作为管理端口。
因为这是测试,所以直接选了SQL 2005 Express SP2,如果在正式环境中,建议链接到生产环境的SQL Server 2005上。 此外,如果是生产环境,建议采用一个专门的service account来运行vmm服务。如图
image

安装完后桌面上多了一个管理控制台的图标,双击即可运行。
image 
点击右侧“Actions”面板中的Add Host
image
选择连接到那些Host的帐号,点Next。(注:这一步中的帐号应该和运行VMM服务的帐号不同,我第一次用了这个相同的帐号,导致了后面的报错)
image
Search...
image
先Search要添加的Host名,因为我们已经组建了Hyper-V的容错集群(Failover Cluster),所以,选择1个节点(node)会添加这个集群中所有的节点。
image
选Yes继续。
image
OK以后,然后点Next...
接下去是Host组,我们没有分组,直接点Next
image
添加默认的VM存放路径。因为我们是Cluster环境,VM都存放在共享存储的单独的LUN上,所有这里先不填。
image
最后点Add Hosts添加这些Host到VMM控制台。这步会在各台Host上安装VMM代理(Agent),同时打开相应的防火墙端口。
image

添加Host失败,失败原因很清楚:不能用VMM服务的帐号来添加Host。
image 
解决办法也很简单:点Restart this job,然后一个窗口跳出,重新输入帐号即可。
image
随后开始添加,从控制台可以清楚的看见添加Host的过程:先安装VMM Agent,然后启动hyper-V,最后刷新Host。
image

2008/12/24

针对VM环境,Microsoft软件许可证如何计算?

参考文档:Licensing Microsoft Server Products with Virtual Machine Technologies White Paper (Word file, 958KB)

没兴致读原文的,可以看我下面的简单概括:
(1) 一个Windows Server 2003/2008 Enterprise 版本可以装4个VM(不包括Host的那个,包括了就是5次)
(2) 一个Windows Server 2003/2008 Datacenter版本可以装无限个VM
(3) Per CPU版本的license,是根据VM的vCPU计算的。如果物理服务器是多核(比如双核)的,那么,可以视VM也是同样多(双)核的。举例,如果物理服务器是2个双核cpu,而上面的VM具有2个core,那么这2个core会被视为一个双-core CPU,只需要一个license。但是如果VM只有一个core,那么这一个单core也被视为一个CPU,需要一个license。
(4) 以上license概念适用于各种VM技术,包括Virtual Server 2005, Hyper-V 和VMWare的各个版本。

2008/12/19

从NetApp Snapshot恢复VMWare虚拟机

NetApp snapshot是硬件级别的块方式的snapshot,所有速度非常快。用NetApp的snapshot技术来备份VM是非常好的方法。

我们知道,一台VMware的VM就是位于同一个目录下的一组文件组成的,比如
image

当我们需要restore 某一台VM的时候,只需要将这一组文件恢复到以前的一个snapshot即可。恢复到以前的snapshot有2种方法,第一种就是直接从snapshot里面将这一组文件全部复制出来,覆盖掉原来的文件。第2种方法就是通过NetApp的Snap Restore来实现。

Copy的方法
因为VMDK文件非常大,copy方法的速度非常慢。一般需要每10GB大概需要15分钟。这种方法比较耗时。

Snap Restore整个Volume的方法
优点是非常快速。
缺点是整个volume都被恢复到了之前的一个snapshot,只适用于每个VM都保存在独占的Volume的情况。

Snap Restore单个文件的方法
首先,各个小文件的恢复还是采用上述的copy方式。
其次,2个文件不需要恢复。
.lck-xxxxxxxx是一个锁定位,表示当前服务器正在允许,这个文件不需要恢复。
*.vswp是当前内存状态的镜像,大小等于该VM的内存,这个文件也不需要恢复。
这2个文件存在反而有可能导致VM不能启动。
image

再次,单独用snap restore命令恢复最大的vmdk文件

1. 通过telnet或者console方式连到NAS设备
2. 在命令行下输入
nas> snap restore -t file -s <snapshot_name> -r <source> <destination>
其中-t参数表示恢复的数据是整个volume还是file
-s参数后面跟需要恢复的snapshot的名字
-r参数后面跟需要恢复的文件名, <dest>如果和source名字不一样则会恢复到一个不同文件的文件名。
举例:
nas> snap restore -t file -s nightly.1 -r /vol/vol1/vm/vm1.vmdk /vol/vol1/vm/vm1.vmdk

需要注意的是,在restore的时候,我们通常会restore到原位置并覆盖原来的文件。如果先删除原文件然后再用snap restore恢复,则NAS执行的操作几乎等同于copy方式的恢复,因此时间会相当长,一个25G的文件需要大约30分钟。如果不删除原文件,Snap restore会比较snapshot和原文件的各个block,如果一致则不会copy那个block,这样只copy变化的block可以节约大量的时间。经测试恢复25GB的文件大概需要3分钟。

所以,用snap restore恢复单个文件时不要删除原文件!

2008/12/18

Linux常用命令行(一)

前言:整理中....先更新一部分...

一、查看网络设置

查看本机的IP(查看本机网卡、MAC、IP等信息)
#ifconfig -a
其中eth0是第一块网卡,lo是默认的设备

查看eth0网卡信息
#ifconfig eth0

查看本机默认网关
#netstat -rn
或者
#route -n
以0.0.0.0开头的一行的Gateway即为默认网关

也可以查看/etc/sysconfig/network文件,里面有指定的地址!

查看DNS server
more /etc/resolv.conf
文件内容如下
nameserver 202.206.32.1

二、更改网络设置

临时更改ip (重启会丢失)
#ifconfig eth0 <新ip>

临时更改网关(重启会丢失)
#route add default gw <网关的IP>

更改网关
编辑 /etc/sysconfig/network
添加或者更改
GATEWAY=<ip_addr>

该文件格式
NETWORKING=yes
HOSTNAME=<hostname>
GATEWAY=192.168.10.1


更改eth0网络接口的IP
编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
添加或修改
IPADDR=<ip_addr>
NETMASK=255.255.255.0

该文件格式如下
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
IPADDR=192.168.10.22
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes

更改HOST名
编辑以下2个文件
/etc/sysconfig/network
/etc/hosts

重启network
#/etc/init.d/network restart
编辑完配置文件后不会应用,记得要重启网络后才会生效

【转】Unix/Linux 基本知识总结贴

博主前言:先转帖了再说,日后有空再整理下......
20081218注:关于网络部分已经删除,序号可能不连续
============================================


UNIX 技术交流的前提是: 了解,懂得UNIX ,要提高 UNIX 技术,就让我们我 学习UNIX 的一些基本知识吧!!
特此 总结这个帖子, 希望对大家有 一个 抛砖引玉的 作用@@@
谢谢!

 

2、从Linux上远程显示Windows桌面
安装rdesktop包

 

4、 查出22端口现在运行什么程序
lsof -i :22

 

6、RH8.0命令行下轻松改变ping 的TTL值

#sysctl -w net.ipv4.ip_default_ttl=N (N=0~255),若N>255,则ttl=0

7、RH8.0命令行下轻松改变系统配置默认值

编辑/etc/sysctl.conf, 例如,将 net.ipv4.ip_forward = 0 变为 net.ipv4.ip_forward = 1 重启后生效,用sysctl -a查看可知

8、mount局域网上其他windows机器共享出的目录

mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

9、允许|禁止root通过SSH登陆

修改sshd_config:PermitRootLogin no|yes

10、 让root直接telnet登陆

编辑/etc/pam.d/login,去掉 auth required /lib/security/pam_securetty.

11、 改变telnet的端口

/etc/services这个文件里可修改想要的端口号.重启守护进程

12、终端模式有问题

export TERM=vt100

13、模仿超级终端,LINUX里什么程序连接路由器和交换机(alstone) minicom

14、 ssh上来能不能不自动断线

那是timetou的设置,修改TMOUT变量值

15、用什么工具做入侵检测
snort

16、Linux下检测程序内存泄漏的工具
cchecker或是efence库都可以

17、linux下如何监视所有通过本机网卡的数据
tcpdump iptraf

18、为什么root执行好多命令都说command not found 一定是telnet上来的,然后su成root的,修改su命令格式,应该是su - root 0025 关闭用户的POP3权限(tiansgx) 把POP3的端口关了就可以了。 在文件/etc/services中找到这一行 pop-3 110/tcp 把这一行前加个'#',把它注释掉就可以了。

19、锁定wu-ftp用户目录(wangla) 编辑ftpaccess文件 restricted-uid * 这一句很重要,限制了ftp用户在自己的目录里。

20、服务器怎么不让telnet
服务器上必须启动telnet服务 && 服务器的防火墙优先级应该设为低

21、防止任何人使用su命令成为root

vi /etc/pam.d/su auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel

在/etc/pam. d/su配置文件中定义了wheel组.

23、在redhat9下配samba,win2000能访问,win98不能访问?

如果是wind98必需修改注册表:

HKEY_LOCAL_MACHINE/system/correntcontrolset/services/Vxd/VNETSUP下建个D值:EnablePlainTextpasswd,键值1

24、如何得到网卡的MAC地址

arp -a | awk '{print $4}'

25、如何得到网卡的IP地址

ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'

26、如何全面卸载Linux?如何删除它的分区?

进入linux, 用fdisk删除linux分区和swap区。

重新启动,在dos下运行fdisk /mbr,恢复主引导记录。

 

28、启动环境设置

Ret Hat Linux启动到文字界面(不启动xwindow)

将/etc/inittab中 id:5:initdefault: 一行中的5改为3

29、redhat的自动升级更新问题

在www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。 升级除kernel外的rpm: up2date -u 升级包括kernel在内的rpm: up2date -u -f

30、windows下看linux分区的软件

Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip

31、mount用法

fat32的分区

mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom

ntfs的分区

mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom

iso文件

mount -o loop /abc.iso /mnt/cdrom

软盘

mount /dev/fd0 /mnt/floppy

USB闪存

mount /dev/sda1 /mnt/cdrom

所有/etc/fstab内容

mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等.

32.a 删除名为-a的文件

rm ./-a

rm -- -a 告诉rm这是最后一个选项,

参见getopt ls -i 列出inum,

然后用find . -inum inum_of_thisfile -exec rm '{}' ;

32.b 删除名为a的文件

rm \a

32.c 删除名字带的/和‘'文件

这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在Mac系统上使用 1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件。 2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文件系统, clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it. 最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了!

32.d 删除名字带不可见字符的文件

列出文件名并转储到文件:ls -l >aaa 然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式:

vi aaa [rm -r ******* ]

把文件加上执行权限 chmod +x aaa 执行 $aaa

32.e 删除文件大小为零的文件

rm -i `find ./ -size 0` find ./ -size 0 -exec rm {} ; find ./ -size |xargs rm -f

&非常有效 for file in *

#自己定义需要删除的文件类型 do if [ ! -s ${file} ] then rm ${file} echo "rm $file Success!" fi done

33、加装xwindow

用linux光盘启动,选择升级,然后单独选择包,安装即可

34、删除linux分区

做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除.

35、如何退出man  

q

36、 找回忘记了的root口令(lilo/grub) 三种办法:

1.在系统进入单用户状态,直接用passwd root去更改

2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root 这样可以搞定

3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同 rh8中

一. lilo

1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single

2. 回车可直接进入linux命令行

3. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存

4. #reboot重启,root密码为空

二. grub

1. 在出现grub画面时,用上下键选中平时启动linux的那一项(别选dos),然后按e键 2. 再次用上下键选中平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键

3. 修改现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

4. 回车返回,然后按b键启动,即可直接进入linux命令行

5. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存

6. #reboot重启,root密码为空 0015 使ctrl + alt + del失效 vi /etc/inittab 将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了

37、如何看出redhat的版本是7还是8

cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue

38、文件在哪个rpm中

上www.rpmfind.net上搜,或者rpm -qf 文件名得到

39、把man或info的信息存为文本文件

以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s

40、利用现存两个文件,生成一个新的文件

1. 取出两个文件的并集(重复的行只保留一份)

2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)

3. 删除交集,留下其他的行

1. cat file1 file2 | sort | uniq

2. cat file1 file2 | sort | uniq -d

3. cat file1 file2 | sort | uniq -u

41、设置com1口,让超级终端通过com1口进行登录 确认有/sbin/agetty,编辑/etc/inittab,添加 7:2345:respawn:/sbin/agetty /dev/ttyS0 9600 9600bps是因为联路由器缺省一般都是这种速率,也可以设成 19200、38400、57600、115200 修改/etc/securetty,添加一行:ttyS0,确保root用户能登录 重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了

42、 删除目录下所有文件包括子目录

rm -rf 目录名

43、查看系统信息

cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)

cat /proc/interrupts - 中断

cat /proc/ioports - 设备IO端口

cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)

cat /proc/partitions - 所有设备的所有分区

cat /proc/pci - PCI设备的信息

cat /proc/swaps - 所有Swap分区的信息

cat /proc/version - Linux的版本号 相当于 uname -r uname -a - 看系统内核等信息

44、去掉多余的回车符 sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的 或者 dos2unix filename

45、切换X桌面

switchdesk KDE或者switchdesk GNOME

46、通用的声卡驱动程序

OSS www.opensound.com/ ALSA www.alsa-project.org/

47、改变redhat的系统语言/字符集

修改 /etc/sysconfig/i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。

还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 这样就可以改变个人的界面语言,而不影响别的用户

48、把屏幕设置为90列

stty cols 90

49、使用md5sum文件 md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值 是否一致 md5sum –c hashfile

50、一次解压多个zip文件

unzip "*",注意引号不能少

51、看pdf文件

使用xpdf或者安装acrobat reader for linux

52、查找权限位为S的文件

find . -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

53、装中文输入法 以redhat8为例

xwindow及其终端下的不用说了吧,缺省就安装了,用ctrl-space呼出。 现在讨论纯console,请下载zhcon.gnuchina.org/download/src/zhcon-0.2.1.tar.gz , 放在任一目录中,tar xvfz zhcon-0.2.1.tar.gz, cd zhcon-0.2.1, ./configure, make, make install。安装结束,要想使用,请运行zhcon,想退出,运行exit。

54、把弹出的光盘收回来

#eject -t

55、cd光盘做成iso文件

cp /dev/cdrom xxxx.iso

56、快速观看开机的硬件检测

dmesg | more

57、查看硬盘的使用情况

df -k 以K为单位显示

df -h 以人性化单位显示,可以是b,k,m,g,t..

58、查看目录的大小

du -sh dirname -s 仅显示总计 -h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以1024为换算单 位, -H以1000为换算单位。

59、查找或删除正在使用某文件的进程

fuser filename fuser -k filename

 

61、字符模式下设置/删除环境变量

bash下

设置:export 变量名=变量值

删除:unset 变量名

csh下

设置:setenv 变量名 变量值

删除:unsetenv 变量名

62、ls如何看到.开头的文件

ls -a

63、rpm中的文件安装到哪里去了

rpm -qpl aaa.rpm

64、使用src.rpm rpmbuild --rebuild *.src.rpm

65、vim中显示颜色或不显示颜色 vi ~/.vimrc; 如果有syntax on,则显示颜色,syntax off,则不显示颜色

66、linux是实时还是分时操作系统

分时

67、 make bzImage -j的j是什么意思

-j主要是用在系统硬件资源比较大的时候,比较富裕的时候,用这个可以来加快编译的速度,如-j 3

68、源码包怎么没有

没有安装源代码,把光盘上rpm -i *kernel*source*.rpm装上,就可以看到源代码了。

69、修改系统时间

date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10

70、开机就mount上windows下的分区

自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,加入以下一行 /dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0 注意,先得手工建立一个/mnt/d目录

71、linux怎么用这么多内存

为了提高系统性能和不浪费内存,linux把多的内存做了cache,以提高io速度

72、FSTAB 最后的配置项里边最后两个数字是什么意思

第一个叫fs_freq,用来决定哪一个文件系统需要执行dump操作,0就是不需要;

第二个叫fs_passno,是系统重启时fsck程序检测磁盘的顺序号 1 是root文件系统,2 是别的文件系统。fsck按序号检测磁盘,0表示该文件系统不被检测 dump 执行ext2的文件系统的备份操作 fsck 检测和修复文件系统

73、linux中让用户的密码必须有一定的长度,并且符合复杂度(eapass) vi /etc/login.defs,改PASS_MIN_LEN

74、linux中的翻译软件

星际译王 xdict

75、不让显示器休眠

setterm -blank 0 setterm -blank n (n为等待时间)

76、用date查询昨天的日期

date --date='yesterday'

77、xwindow下如何截屏

Ksnapshot或者gimp

78、解压小全

tar xvfj example.tar.bz2

tar xvfz example.tar.gz

tar xvfz example.tgz

tar xvf example.tar

unzip example.zip

79、在多级目录中查找某个文件的方法

find /dir -name filename.ext du -a | grep filename.ext locate filename.ext

80、不让普通用户自己改密码

[root@xin_fc etc]# chmod 511 /usr/bin/passwd

又想让普通用户自己改密码

[root@xin_fc etc]# chmod 4511 /usr/bin/passwd

81、显卡实在配不上怎么办

http://www.redflag-linux.com/,下了xfree86 4.3安装就可以了.

82、超强删除格式化工具

比PQMagic安全的、建立删除格式化的小工具:

sfdisk.exe for msdos http://www.wushuang.net/soft/sfdisk.zip

83、如何让xmms播放列表里显示正确的中文

-*-*-*-*-*-iso8859-1,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-

把这个东西完全拷贝到字体里面

操作方法: 右键单击xmms播放工具的任何地方 会看到一个"选项",然后选择"功能设定"选择"fonts" 然后把上面的字体完整的拷贝到"播放清单"和 "user x font

84、linux下听MP3

redhat光盘原带的xmms不能播放MP3(无声), 要下载安装一个RPM包:xmms-mp3-1.2.7-13.p.i386.rpm安装即可.

打开xmms,ctl-p,在font栏中 先在上半部的小框内打勾,再选择 “fixed(misc) gbk-0 13”号字 体即可显示中文歌曲名。在音频输出插件中选择 "开放音频系统驱动 程序 1.2.7 [lioOSS.so]即可正常播放MP3文件.

85、安装中文字体

先下载 http://freshair.netchina.com.cn/~George/sm.sh

(参考文献: http://www.linuxeden.com/edu/doctext.php?docid=2679 )

SimSun18030.ttc在微软网站可下载,

http://www.microsoft.com/china/windows2000/downloads/18 030.asp  它是个msi文件,在 mswindows中安装,装好后在windows目录下的fonts 目录里面就可以找到它。把simsun.ttc,SimSun18030.ttc,tahoma.ttf,tahomabd.ttf 拷贝到/usr/local/temp,然后下载的shell文件也放到这个目录里,然后打开终端 cd /usr/local/temp chmod 755 sm.sh ./sm.sh

86、装载windows分区的FAT32、FAT16文件系统

以root身份进入KDE,点击桌面上的“起点”图标,在/mnt目录下建立如下文件夹:c,d,e,f,g,usb.分别用作windows下各分区和usb闪盘。   

用文本编辑器打开/etc/fstab 文件.加入如下:

/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0

/dev/hda5 /mnt/d vfat iocharset=gb2312,umask=0,codepage=936 0 0

/dev/hda6 /mnt/e vfat iocharset=gb2312,umask=0,codepage=936 0 0

/dev/hda7 /mnt/f vfat iocharset=gb2312,umask=0,codepage=936 0 0

/dev/hda8 /mnt/g vfat iocharset=gb2312,umask=0,codepage=936 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,iocharset=gb2312,owner,kudzu,ro 0 0

/dev/sda1 /mnt/usb vfat iocharset=gb2312,umask=0,codepage=936 0 0

存盘退出. 重新启动后即可正常访问FAT32或FAT16格式分区,解决显示WINDOWS分区下和光盘中文文件名乱码 问题.其中共六列,每列用Tab键分开。注意此方法只能mount上Fat 分区格式.sda1是闪盘。

87、在X下使用五笔和拼音,区位输入法

从http://www.fcitx.org/ 上下载fcitx的rpm包安装即可

87、在Linux下如何解压RAR文件

http://www.linuxeden.com/download/softdeta....php?softid=883 下载RAR for Linux 3.2.0,解压后make 然后可以用unrar e youfilename.rar解压rar文件

88、硬盘安装后怎么添加/删除rpm包

redhat-config-packages --isodir= 可以指定iso文件所在的目录

89、字符下控制音量

aumix

90、用dd做iso

dd if=/dev/cdrom of=/tmp/aaa.iso

91、 删除几天以前的所有东西(包括目录名和目录中的文件)

find . -ctime +3 -exec rm -rf {} ; 或 find ./ -mtime +3 -print|xargs rm -f -r

92、用户的crontab在哪里

/var/spool/cron/下以用户名命名的文件

93、以不同的用户身份运行程序

su - username -c "/path/to/command" 有时候需要运行特殊身份的程序, 就可以让su来做

94、如何清空一个文件

> filename

95、为什么OpenOffice下不能显示中文

更改字体设置 tools->options->font replacement Andale Sans UI -> simsun

96、如何备份Linux系统

Symantec Ghost 7.5以后的版本支持Ext3 native复制

97、linux上的partition magic

Linux下一个有用的分区工具: parted 可以实时修改分区大小, 删除/建立分区.Linux联盟收集整理

98、/proc/sys/sem中每项代表什么意思?

/proc/sys/sem内容如下 250 32000 32 128 这4个参数依次为

SEMMSL(每个用户拥有信号量最大数量),

SEMMNS(系统信号量最大数量),

SEMOPM(每次semop系统调用操作数),

SEMMNI(系统信号量集最大数量)

99、 Grub 引导菜单里 bigmem smp up 都是什么意思?

smp: (symmetric multiple processor)对称多处理器模式

bigmem: 支持1G 以上内存的优化内核

up:(Uni processor) 单处理器的模式

100、Oracle的安装程序为什么显示乱码?

现在Oracle的安装程序对中文的支持有问题,只能使用英文界面来安装,在执行runinstaller之前,执行:export LANG=C;export LC_ALL=C

101、 linux下文件和目录的颜色代表什么

蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝 色表示链接文件;灰色表示其它文件;红色闪烁表示链接的文件有问题了;黄色是设备文件,包括block, char, fifo。 用dircolors -p看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等定义。

102、mysql的数据库存放在什么地方

1. 如果使用rpm包安装,应该在/var/lib/mysql目录下,以数据库名为目录名

2. 如果源码安装在/usr/local/mysql中,应该在/usr/local/mysql/var中,以数据库名为目录名

103、如何新增一块硬盘

一、关机,物理连接硬盘 如果是IDE硬盘,注意主、从盘的设置;如果是SCSI硬盘,注意选择一个没有被使用的ID号。

二、开机,检查硬盘有没有被linux检测到 dmesg |grep hd*(ide硬盘) dmesg |grep sd*(SCSI硬盘) 或者 less /var/log/dmesg 如果没有检测到新硬盘,重启,检查连线,看看bios有没有认出它来。

三、分区 可以使用fdisk,Sfdisk或者parted(GNU分区工具,linux下的partition magic) 四、格式化 mkfs 五、修改fstab vi /etc/fstab

104、linux下怎么看分区的卷标

e2label /dev/hdxn, where x=a,b,c,d....; n=1,2,3...

105、RH8,9中安装后如何添加新的语言包

一.8.0中

1.放入第一张光盘

2.cd /mnt/cdrom/Redhat/RPMS

3.rpm -ivh ttfonts-ZH_CN-2.11-29.noarch.rpm(简体中文,可以用tab键来补齐后面的部分,以免输入有误)

4.rpm -ivh ttfonts-ZH_TW-2.11-15.noarch.rpm(繁体中文) 如果还想装日文、韩文,试试第二张光盘上的ttfonts*.rpm.

二.9.0中

9.0不在第一张盘上,在第三张盘上.rpm包名分别为: ttfonts-zh_CN-2.12-1.noarch.rpm(简体中文) ttfonts-zh_TW-2.11-19.noarch.rpm

106 配置telnet服务

1. 安装telnet-server软件包。(略)
2. 设置telnet-server的启动运行
  telnet server不作为独立的服务器程序运行,而是受xinetd程序的控制,启动配置文件为/etc/xinetd.d/telnet,默认xinetd程序并不启动该服务,可在chkconfig --list看出telnet是关闭的,/etc/xinetd.d/telnet中disable=yes可通过下面的方式启动telnet server:
 1) chkconfig telnet on  //该命令修改了/etc/xinetd.d/telnet的配置,设置disable=no
 2) service xinetd restart
 再次chkconfig --list看到telnet server已经启动。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
107 让bash命令行可以输入汉字,

编辑~/.inputrc,添加:
set meta-flag on
set convert-meta off
set output-meta on

让less命令显示汉字,在~.bashrc中加入:
export LESSCHARSET=latin1

让ls命令显示汉字文件和目录名,在~.bashrc中加入:
alias ls='ls --show-control-chars --color=auto'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

108 Linux下配置DHCP服务器

配置DHCP

  Redhat使用dhcpd进程提供DHCP服务,启动时dhcpd自动读它的配置文件/etc/dhcpd.conf。dhcpd将客户的租用信息保存在/var/lib/dhcp/dhcpd.leases文件中,该文件不断被更新,从这里面可以查到IP地址分配的情况。

  dhcpd为了向一个子网提供服务,需要知道子网的网络地址和网络掩码,并且还要知道地址分配的范围,下面给出一个简单的dhcpd.conf文件:

  subnet 192.168.100.0 netmask 255.255.255.0 {

  range 192.168.100.10 192.168.100.253;

  }

  此例中,dhcpd将给192.168.100.0网络分配192.168.100.10到192.168.100.253的IP地址。

  租期时间可以从0秒到无限长,可以根据需要来定。缺省的租期时间为一天,即86400秒。可以为主机定义两个租期长度:

  default-lease-time 默认租期时间;

  max-lease-time 用户可以获得的最长租期时间。

  下面的配置将缺省的租期时间设置为10分钟,最长租用时间为1小时:

  subnet 192.168.100.0 netmask 255.255.255.0 {

   range 192.168.100.10 192.168.100.253;

   default-lease-time 600;

   max-lease-time 3600;

  }

  DHCP还可以向客户提供更多的参数,这些参数可以用option来指定,例如:

  subnet 192.168.100.0 netmask 255.255.255.0 {

  range 192.168.100.10 192.168.100.253;

   default-lease-time 600;

   max-lease-time 3600;

   option subnet-mask 255.255.255.0;

   option routers 192.168.100.254; 默认路由

   option domain-name-servers 202.102.134.68; DNS服务器

  }

现在大家对DHCP配置应该有个了解了,其实过程就是这么简单,中间就隔了一层窗户纸。

  实际演练

  接下来给大家一个示例,把我的redhat9.0配置成一台DHCP服务器。

  vi /etc/dhcpd.conf

  配置后,我的机器的该文件内容如下(注释的部分都已经删除掉了,至于原文,大家可以对照/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample文件):

  [root@rh9 test]# more /etc/dhcpd.conf

  ddns-update-style interim;

  ignore client-updates;

  subnet 192.168.0.0 netmask 255.255.255.0 {

   option routers 192.168.0.1;

   option subnet-mask 255.255.255.0;

   option broadcast-address 192.168.0.255;

   option domain-name-servers

  202.96.199.133, 202.96.133.134;

   range dynamic-bootp 192.168.0.1 192.168.0.255;

   default-lease-time 21600;

   max-lease-time 43200;

  }

解释一下配置部分:

首先subnet定义了网络的地址,然后option routers定义了网关地址;

subnet-mask定义子网掩码;

broadcast-address定义广播地址;

domain-name-servers定义DNS NAMESERVER的地址;

dynamic-bootp是给客户端分配的地址,定义的是192.168.0.1-- 192.168.0.255整个网段地址;

最后2行是讲分配出的地址的缺省租期时间设置为10分钟,最长租用时间为1小时。

这样,一个DHCP服务器就配置好了。

  我们可以测试一下结果:在另外一个redhat linux7.2上,把IP设置成DHCP主机的IP地址,通过netconfig命令配置。

  检查配置:

  [root@rh72 root]# more /etc/sysconfig/ network-scripts/ifcfg-eth0

  DEVICE=eth0

  ONBOOT=yes

  BOOTPROTO=dhcp

  [root@rh72 root]#

  确定网卡已经是DHCP的了。

  [root@rh72 root]# ifconfig

  eth0 Link encap:Ethernet HWaddr 00:0C:29:A3:C6:71

   inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0

  查看地址,发现ETH0已经分配了一个254的地址,说明DHCP服务器配置成功。

  小结

  至此,我们已经完成了一台Linux DHCP服务器的安装和配置工作。在实际的使用过程中,上述操作步骤应该可以满足一般应用的需求,但是我们还需要经常研究具体的命令参数,让DHCP服务器能更好地为我们服务

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

109 VNC 虚拟网络计算

  VNC(Virtual Network Computing,虚拟网络计算),是用来显示远程计算机整个桌面的轻量型远程控制程序。
1. 下载:http://www.uk.research.att.com/vnc
2. 使用方法:
1) 服务器端:
#vncserver
$vncserver
注意到每个用户都可以启动自己的vncserver,每个用户可以启动多个vncserver,用显示端口号:1,:2,:3等等来标识。
2) 客户端:
a)在linux下,运行vncviewer命令即可,服务器地址的写法形如192.168.3.119:1
b)在windows下,运行windows版本的vncviewer即可,用法与linux下相近。
c)用浏览器(平台无关),作为java applet来实现,以形如http://192.168.3.119:5801的方式来启动
3) 密码修改:
第一次启动vncserver会提示输入密码,以后要修改的话,运行:
#vncpassword
4) 停止vnc server:
#vncserver -kill :1
#vncserver -kill :2
注意到vncserver只能由启动它的用户来关闭,即时是root也不能关闭其它用户开启的vncserver,除非用kill命令暴力杀死进程。
5) 指定显示端口号启动VNC server:
#vncserver :3
$vncserver :6
6) 设置VNC server分辨率:
#vncserver -geometry 800x600
#vncserver -geometry 640x480
7) 设置vncserver的色深:
8位为256色,16位为64k色
#vncserver -depth 8
#vncserver -depth 16
8) 稳定性设置:
vncserver默认在多个客户机连接同一个vncserver的显示端口时,vncserver端口旧连接,而为新连接服务,可通过-dontdisconnect拒绝新连接请求而保持旧的连接。
9) 设置vncserver的同一个显示端口可以连接多个客户机
#vncserver -alwaysshared
10) vnc的反向连接
大多数情况下,vncserver总处于监听状态,vnc client主动向服务器发出请求从而建立连接。然而在一些特殊的场合,需要让vnc客户机处于监听状态,vncsrever主动向客户机发出连接请求,此谓vnc的反向连接。主要步骤:
a) 启动vnc client,使vncviewer处于监听状态
#vncviewer -listen
b) 启动vncserver
#vncserver
c) 在vncserver端执行vncconnect命令,发起server到client的请求
#vncconnect -display :1 192.168.3.69
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

110 GRUB入门
LILO 需要知道你的内核在驱动器上的实际位置,但是GRUB却不需要,它不仅能读文件系统还能识别内核映像,而且它还支持最新的 2.4.1 内核所带的 Reiser 日志文件系统。这意味着你不必在更新内核或者改变配置文件之后重新安装GRUB。如果BIOS 支持LBA 的话,也没有1024 柱面的问题。另外还支持网络启动和无盘客户机。

然而,或许我们对LILO 太熟悉了吧,也或许GRUB 还有很多需要完善?总之,安装 GRUB 看起来并不是一件很轻松的事情。下面我们就详细介绍GRUB 的安装和配置。

安装

在 /tmp 目录下解开文件:

# tar zxvf grub-0.5.96.1.tar.gz

进入 "grub-0.5.96.1" 目录,编译程序:

# ./configure
# make
# make install

配置:

和许多我们平常看到的多重启动管理程序一样,GRUB 供一个菜单界面(LILO 不是菜单界面的)。GRUB的
缺省安装位置为 /boot/grub ,配置文件也放在这个目录下。缺省的配置文件名为 menu.lst,这个文件的功能就像和 lilo.conf一样,定义多重启动选项以及磁盘映像。

我们来看一个 menu.lst 文件的示范例子:

timeout 5
color black/yellow yellow/black
default 0
password freeos

title My Mandrake
kernel (hd0,1)/vmlinuz root=/dev/hda3 idebus=66

title My Red Hat
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 idebus=66

title W2K Pro
root (hd0,0)
makeactive
chainloader +1

让我们详细分析一下各个选项的含义:

timeout - 缺省入口的显示延迟时间(秒)
color - 菜单显示的颜色组合,第一组颜色为前景色和背景色,
第二组为高亮时的组合。
default - 定义缺省的启动入口,这里的 0 就是使用定义的第一个入口。
password - 定义进入GRUB 高级特性时需要的口令。GRUB 利用其能读取文件系统的特色,提供十分强大的功能。例如用户可以在grub 的启动提示符下输 'cat /etc/shadow' 来读包含加密口令的文件,而不需要进入你的系统!所以,为你的系统设置一个口令十分重要。

下面分析启动入口,每一个入口都应该以一个 'title' 的关键字开始,后面跟上对该启动入口的描述。接下来就是 'kernel' 入口,

kernel (hd0,1)/vmlinuz root=/dev/hda3 hdc=ide-scsi

根据 GRUB 对设备的命名规则,我们可以很容易的理解上面这行的含义:软驱设备名为 fdx ,硬盘为 hdx,需要记住的是 GRUB 从0 开始计数,所以第一台硬盘为 hd0 而不是 hd1。设备名用括号括起来,硬盘上的分区用逗号连接。例如 (hd0,1) 表示第一台硬盘上的第二个分区,而 (hd1,5) 就表示第二台硬盘上的第一个逻辑分区。

GRUB 能读取大多数文件系统,上面这一行指定 GRUB 寻找
位于第一台硬盘上第二基本分区上的 /vmlinuz 文件,你也需要指定 'root=/dev/hda3' (假设你的根文件系统位于/dev/hda3),否则内核就不能挂接上根文件系统,之后就是你自己想加入的其他参数了。这些参数就和LILO 启动时传递给内核的参数一样,或者说和 lilo.conf 中 append 后面的参数一样。

另外一个比较特别的入口是启动Windows 2000 的入口,root 入口指向 Windows 2000 的安装位置(C:),接下来的入口设置分区的激活标志,最后的入口告诉 GRUB 搜索分区的第一个扇区来启动那里的操作系统。

以上是对GRUB 的一个典型的多重启动设置的分析,在正式开始安装GRUB 之前,建议你手头有一张LILO 启动盘或者一张应急启动盘,以防不测。

以root 登录,输入"grub"命令以后,就会看到如下的画面:

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ]

grub>

以上看到的就是 grub 提示符,我们要在这个提示符下面安装GRUB。

grub> install (hd0,1)/boot/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/boot/grub/menu.lst

GRUB 分为两个主要的步骤, stage1 和 stage2。Stage1 是一段嵌入MBR 的迷你代码。Stage2 是主要部分,在 stage1 把控制权传递给它后,就由它来接管所有事情。

install 后面指定stage1 的位置,我们不仅说明了其分区
位置:(hd0,1),因为 GRUB 能读取文件系统,所以还说
明了分区上目录位置:/boot/grub/stage1,d 参数表示 stage1 将寻找 stage2 所在的磁盘。接着就是 GRUB 的安装位置:(hd0) ,这里就是指安装在MBR。后面的参数指定 stage2 的位置:(hd0,1),和 stage1 的定义一样。p 参数指定 menu.lst 文件的位置。

对于 /boot 作为单独的分区的例子,需要采用下面的命令行:

grub> install (hd0,1)/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/grub/menu.lst

以上例子假设 /boot 位于 (hd0,1) (也就是hda2),而 / 位于(hd0,2) (也就是 hda3) ,我们不能用 '(hd0,2)/boot/grub/stage1' ,因为GRUB 不知道 (hd0,1) 是 /boot ,所以必须首先指向挂接为 /boot 的分区,然后把目录指向那里。

重新启动系统以后,就可以看到 GRUB 菜单了。看起来似乎很繁琐,这么长的命令行,是的!对于那些 LILO 能正常使用的人来说,或许没有必要来玩这个危险游戏。但是,对于那些想使用 GRUB 增强功能的人来说,试一下 GRUB 或许会有意想不到的惊喜。我的朋友告诉我说他不能用 LILO 识别 1G 内存,希望 GRUB 能帮助办到。本文旨在抛砖引玉,
GRUB 还有很多的功能有待您的开发。

如果在配置和安装中遇到了麻烦,为什么不使用 info grub 或者 man grub 来寻求帮助呢?或者干脆上
GRUB 的官方网站

http://www.gnu.org/software/grub/

寻找 FAQ 和其他文档呢?

GRUB 的下载地点:
ftp://alpha.gnu.org:/gnu/grub/

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

110 linux下操作光盘的几条命令
1. 从光盘中制作iso文件:
#cp /dev/cdrom ISO文件名
同理可以把上面的/dev/cdrom换成/dev/fd0、/dev/sda1等移动存储设备的设备文件名制作软盘、U盘的iso映象文件
2. 使用目录文件制作iso文件
#mkisofs -r -o ISO文件名 路径名
3. 刻录光盘
先检测光盘刻录机的参数:
#cdrecord -scanbus
……
scsibus0:
  0,0,0 0)'SAMSUNG' 'CDRW/DVD DATA-348B' 'T501' Removable CDROM
……
然后刻录:
#cdrecord -v speed=刻录速度 dev=刻录机设备号 ISO文件名
如:
#cdrecord -v speed=8 dev=0,0 /home/share/data.iso

112 rpm命令参数列表
1.安装一个包
  # rpm -ivh
2.升级一个包
  # rpm -Uvh
3.移走一个包
  # rpm -e
4.安装参数
  --force 即使覆盖属于其它包的文件也强迫安装
  --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
  # rpm -q < rpm package name>
6.得到被安装的包的信息
  # rpm -qi < rpm package name>
7.列出该包中有哪些文件
  # rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
  #rpm -qf
9.可综合好几个参数一起用
  # rpm -qil < rpm package name>
10.列出所有被安装的rpm package
  # rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
  # rpm -qilp < rpm package name>

RPM命令手册
一、安装

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 将要安装的RPM包的文件名

详细选项:

-h (or --hash) 安装时输出hash记号 (``#'')
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安
装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

二、删除

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

参数

pkg1 ... pkgN :要删除的软件包

详细选项

--test 只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性

通用选项

-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装
程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

三、升级

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

参数

file1.rpm ... fileN.rpm 软件包的名字

详细选项

-h (or --hash) 安装时输出hash记号 (``#'')
--oldpackage 允许"升级"到一个老版本
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--percent 以百分比的形式输出安装的进度。
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

四、查询

命令格式:

rpm -q ( or --query) options

参数:

pkg1 ... pkgN :查询已安装的软件包

详细选项

-p (or ``-'') 查询软件包的文件
-f 查询属于哪个软件包
-a 查询所有安装的软件包
--whatprovides 查询提供了 功能的软件包
-g 查询属于 组的软件包
--whatrequires 查询所有需要 功能的软件包

信息选项

显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scripts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能

通用选项

-v 显示附加信息
-vv 显示调试信息
让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

五、校验已安装的软件包

命令格式:

rpm -V ( or --verify, or -y) options

参数

pkg1 ... pkgN 将要校验的软件包名

软件包选项

-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包

详细选项

--noscripts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性

通用选项

-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

六、校验软件包中的文件

语法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 软件包的文件名

Checksig--详细选项

--nopgp 不校验PGP签名

通用选项

-v 显示附加信息
-vv 显示调试信息
--rcfile 设置rpmrc文件为

七、其它RPM选项

--rebuilddb 重建RPM资料库
--initdb 创建一个新的RPM资料库
--quiet 尽可能的减少输出
--help 显示帮助文件
--version 显示RPM的当前版本

113 chsh 更换你登入时所用的shell
名称
chsh - 更换你登入时所用的shell

语法
chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]

描述
chsh 用来更换你登入时所用的shell 。在命令列没指定shell。 chsh 会提示一个给你。

有效的shell

chsh
可用指定路径全名的方式来指定任何一个可执行的档案。 然而,如果此 shell并没纪录在 /etc/shells 档上,则chsh会提出警告讯息。

选项
-s, --shell 变更你的登入shell.
-l, --list-shells
列出纪录在 /etc/shells 的shell。
-u, --help
使用短讯。
-v, --version
版本资讯

相关文件
login(1) , passwd(5) , shells(5)

114 在linux下一些常用的关机/重启命令

有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。

   1.shutdown

  shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。

而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。

shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

   shutdown 参数说明:
   [-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
   [-r] 重启计算器。
   [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
   [-h] 关机后关闭电源〔halt〕。
   [-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
   [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
   [-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
   [-time] 设定关机〔shutdown〕前的时间。

2.halt----最简单的关机命令
   其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
   参数说明:
   [-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
   [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
   [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
   [-f] 没有调用shutdown而强制关机或重启。
   [-i] 关机〔或重启〕前﹐关掉所有的网络接口。
   [-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。

4.init
  init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

2008/12/09

SCSI-3 Persistent Reservation (PR)

今天,当我在尝试组建Hyper-V Cluster的时候,进行到Cluster Configuration检查的时候,检查结果中有一项Fail:Validate SCSI-3 Persistent Reservation(如图)

详细的报告中还有进一步的错误提示:

Failed to read PR on cluster disk 0 from node HyperV1.lab.local. Some PR implementations fail to report existing PR on a disk.
Cluster Disk 0 does not support Persistent Reservation.
100408_1400_BuildingaHy12 
=====================================================

那么什么是SCSI-3 PR呢?

Symantec的解释
https://vias.symantec.com/docportal/sf/5.0/hpux/html/vcs_users/ch_vcs_communications11.html

SCSI-3 Persistent Reservation (SCSI-3 PR) supports device access from multiple systems, or from multiple paths from a single system. At the same time it blocks access to the device from other systems, or other paths.

VCS logic determines when to online a service group on a particular system. If the service group contains a disk group, the disk group is imported as part of the service group being brought online. When using SCSI-3 PR, importing the disk group puts registration and reservation on the data disks. Only the system that has imported the storage with SCSI-3 reservation can write to the shared storage. This prevents a system that did not participate in membership arbitration from corrupting the shared storage.

SCSI-3 PR ensures persistent reservations across SCSI bus resets.

--------------------------------------------------------------------------------
Note   Use of SCSI 3 PR protects against all elements in the IT environment that might be trying to write illegally to storage, not only VCS related elements.
--------------------------------------------------------------------------------

IBM这样解释
http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.rsct_5300_06.vsd.doc/bl506_undperr.html
Persistent Reserve refers to a set of Small Computer Systems Interface-3 (SCSI-3) standard commands and command options which provide SCSI initiators with the ability to establish, preempt, query, and reset a reservation policy with a specified target device. The functionality provided by the Persistent Reserve commands is a superset of the reserve/release commands. The Persistent Reserve commands are not compatible with the legacy reserve/release mechanism, and target devices can only support reservations from either the legacy mechanism or the new mechanism. Attempting to mix Persistent Reserve commands with legacy reserve/release commands will result in the target device returning a reservation conflict error

总之,SCSI-3 PR就是一组SCSI命令集,用在多个系统访问一个共享存储的时候协调之用。并且于旧的命令集不兼容。Windows 2008用SCSI-3 PR,而Windows 2003用SCSI-2。当Windows 2003访问SCSI-3的共享存储的时候,会发生错误,MS KB911030解释了这个bug,http://support.microsoft.com/kb/911030


参考文档
1) What are SCSI reservations?
https://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb29190
你需要一个NOW帐号来访问上述页面。


20081218注:经过实验,找到了问题就是因为NAS设备版本太老的缘故。当NetApp NAS设备升级到DATAONTAP 7.2.5以后版本,创建LUN格式就可以选择windows_2008,此时支持SCSI-3 PR。类似的问题也发生在测试时使用了不支持SCSI-3的NAS,比如nas模拟器 freenas等。

2008/12/04

Microsoft Hyper-V Server 2008

许兄弟告知让我关注下微软的Hyper-V Server 2008,说是可以一个独立安装在裸设备上的Hyper-V,没有GUI只有Hypervisor,他说应该比Windows 2008 Hyper-V性能要好。

有点吃惊,去微软网站看了下,的确有这个产品,而且还是今年10月就推出的。
有点纳闷,这么好的东东怎么上次Tech-Ed的时候盆盆兄没提起呢。

开始我还揣测这个东东是不是就是Windows server 2008 server-core模式下安装Hyper-V的另一个名称,或者说微软市场部旧瓶装新酒搞了新名字,仔细看了产品说明和FAQ才明白,原来它不是。因为这款产品不内置管理console,也不支持HA。而且FAQ中间关于VMware 3i的比较明明白白的说明这是一款针对VMWare 3i推出的对应产品。首页上的比较表说的更明白。

Snap1

这个产品的好处就不多说了,广告也就不做了,提醒用这个产品的同学们,Hyper-V Server 2008必须远程管理,你需要在另外的管理工作站上(Vista or Win2008)上安装Hyper-V Manager 或者SCVMM 2008来管理它。

最后插一句性能的问题,微软推荐的Hyper-V是安装在server-core模式下的,在这个模式下,不必要的service和windows组件都不安装,所以从性能上讲,Hyper-V Server 2008应该和Windows Server 2008 server-core 模式下的Hyper-V基本一样。

更具体的介绍请参考微软网站:http://www.microsoft.com/servers/hyper-v-server/default.mspx