RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。另外,raid还有杀虫剂品牌,法国特警队伍名,游戏专有名词等义项。
Submitted by admin on 2010, August 20, 2:37 PM
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。另外,raid还有杀虫剂品牌,法国特警队伍名,游戏专有名词等义项。
Submitted by admin on 2010, August 19, 2:13 PM
sed -n '5,10{/pattern/p}' file
sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、 删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节 省了时间。sed必须通过行号和正则表达式指定要改变的文本行
sed怎样读取数据:
sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位 行号编辑它,重复过程直到命令结束
sed命令的调用:
在命令行键入命令;将sed命令插入脚本文件,然后调用sed;将sed命令插入脚本文件,并使sed脚本可执行
sed [option] sed命令 输入文件 在命令行使用sed命令,实际命令要加单引号
sed [option] -f sed脚本文件 输入文件 使用sed脚本文件
sed脚本文件 [option] 输入文件 第一行具有sed命令解释器的sed脚本文件
option如下:
n 不打印; sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑),p命令可以用来打印编辑行
c 下一命令是编辑命令,使用多项编辑时加入此选项
f 如果正在调用sed脚本文件,使用此选项,此选项通知sed一个脚本文件支持所用的sed命令,如
sed -f myscript.sed input_file 这里myscript.sed即为支持sed命令的文件
使用重定向文件即可保存sed的输出
使用sed在文本中定位文本的方式:
x x为一行号,比如1
x,y 表示行号范围从x到y,如2,5表示从第2行到第5行
/pattern/ 查询包含模式的行,如/disk/或/[a-z]/
/pattern/pattern/ 查询包含两个模式的行,如/disk/disks/
/pattern/,x 在给定行号上查询包含模式的行,如/disk/,3
x,/pattern/ 通过行号和模式查询匹配行,如 3,/disk/
x,y! 查询不包含指定行号x和y的行
基本sed编辑命令:
p 打印匹配行 c\ 用新文本替换定位文本
= 显示文件行号 s 使用替换模式替换相应模式
a\ 在定位行号后附加新文本信息 r 从另一个文本中读文本
i\ 在定位行号后插入新文本信息 w 写文本到一个文件
d 删除定位行 q 第一个模式匹配完成后退出或立即退出
l 显示与八进制ASCII代码等价的控制字符 y 传送字符
n 从另一个文本中读文本下一行,并附加在下一行 {} 在定位行执行的命令组
g 将模式2粘贴到/pattern n/
基本sed编程举例:
使用p(rint)显示行: sed -n '2p' temp.txt 只显示第2行,使用选项n
打印范围: sed -n '1,3p' temp.txt 打印第1行到第3行
打印模式: sed -n '/movie/'p temp.txt 打印含movie的行
使 用模式和行号查询: sed -n '3,/movie/'p temp.txt 只在第3行查找movie并打印
显示整个文件: sed -n '1,$'p temp.txt $为最后一行
任意字符: sed -n '/.*ing/'p temp.txt 注意是.*ing,而不是*ing
打印行号: sed -e '/music/=' temp.txt
附加文本:(创建sed脚本文件)chmod u+x script.sed,运行时./script.sed temp.txt
#!/bin/sed -f
/name1/ a\ #a\表示此处换行添加文本
HERE ADD NEW LINE. #添加的文本内容
插入文本: /name1/ a\ 改成 4 i\ 4表示行号,i插入
修改文本: /name1/ a\ 改 成 /name1/ c\ 将修改整行,c修改
删除文本: sed '1d' temp.txt 或者 sed '1,4d' temp.txt
替 换文本: sed 's/source/OKSTR/' temp.txt 将source替换成OKSTR
sed 's/\$//g' temp.txt 将文本中所有的$符号全部删除
sed 's/source/OKSTR/w temp2.txt' temp.txt 将替换后的记录写入文件temp2.txt
替换修改字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
结果将在source字符串前面加上"ADD BEFORE",这里的&表示找到的source字符并保存
sed结果写入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
从文件中读文本: sed '/name/r temp2.txt' temp.txt
在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
从 shell向sed传值: echo $NAME | sed "s/go/$REP/g" 注意需要使用双引号
快速一行命令:
's/\.$//g' 删除以句点结尾行
'-e /abcd/d' 删除包含abcd的行
's/[][][]*/[]/g' 删除一个以上空格,用一个空格代替
's/^[][]*//g' 删除行首空格
's/\.[][]*/[]/g' 删除句号后跟两个或更多的空格,用一个空格代替
'/^$/d' 删除空行
's/^.//g' 删除第一个字符,区别 's/\.//g'删除所有的句点
's/COL/(...\)//g' 删除紧跟COL的后三个字母
's/^\///g' 删除路径中第一个\
sed '1{:a;N;6!ba};N;${P;Q};D'
awk '{a[NR%7]=$0}END{print a[(NR-6)%7]}'
从性能上来讲,倒数几行的问题,还是用tail的好
tail -7 | head -1
http://fbirdzp.blogbus.com/logs/62624803.html
http://sed.sourceforge.net/sed1line_zh-CN.html
Submitted by admin on 2010, August 13, 6:40 PM
awstats做日志分析里,如果apache的日志文件按天生成,在用awstats处理时,是处理当天的,所以必需在12点前处理,但要想在零晨处理,需要改动下,如
YD=`date --date='yesterday' "+%Y%m%d"`
LogFile="/www/servers/apache/logs/access_log.$YD"
下面转
我们需要给awstats指定一个标识昨天的日志文件,awstats可以通过-LogFile参数来指定,可以写一个脚本来完成这个功能,然后定期的执行该脚本,脚本的代码如下:
yesterday=`date –date=’yesterday’ "+%y%m%d"`
LogFile="/home/iislog/www.szshequ.com/W3SVC87257621/ex$yesterday.log"
/usr/lib/cgi-bin/awstats.pl -update -LogFile=$logfile -config=www.szshequ.com
首先获取昨天的日期(格式为:090114),然后组合成日志文件名传递给awstats。最后将定期执行的命令修改成这个脚本的路径即可,如下:
00 03 * * * root /home/awstats/脚本.sh
对于大量日志文件需要分析,可以这样做,譬如日志文件从07年2月7号到现在:
先算出中间天数为708天,
#!/bin/bash
for((i=708;i>0;i–))
do
echo `date -d ‘-’$i’ day’ "+%y%m%d"`
done
for11.sh (END)
sh fo11r.sh >>/home/for
生成文件for,
root@ubuntu8110:/home# less for
070207
070208
090113
090114
(END)
root@ubuntu8110:/home# less for.sh
for i in `cat for`
do
LogFile="/home/iislog/www.qmediatech.com/W3SVC1137541015/ex$i.log"
/usr/lib/cgi-bin/awstats.pl -update -LogFile=$LogFile -config=www.qmediatech.com
done
for.sh (END)
运行脚本即可自动把708天日志自动分析完毕。
注意需要在配置文件awstats.www.qmediatech.com.conf 注释掉日志路径
00 03 * * * root /usr/share/doc/awstats/examples/awstats_updateall.pl -awstatsprog=/usr/lib/cgi-bin/awstats.pl now 使用awstats_updateall.pl把所有CONF配置的域名一次性更新
root@ubuntu8110:/etc/awstats# pwd
/etc/awstats
root@ubuntu8110:/etc/awstats# ls
awstats.admin.szshequ.com.conf awstats.images.szshequ.com.conf
awstats.agent.szshequ.com.conf awstats.my.szshequ.com.conf
awstats.all.pp.szshequ.com.conf awstats.pp.szshequ.com.conf
awstats.bbs.szshequ.com.conf awstats.shop.szshequ.com.conf
awstats.club.szshequ.com.conf awstats.wap.szshequ.com.conf
awstats.conf.111 awstats.www.szshequ.com.conf
awstats.conf.local awstats.yh.szshequ.com.conf
awstats.cost.szshequ.com.conf common.cof.111
awstats.files.szshequ.com.conf conf
awstats-icon
另外一种方法,就是直接在awstats的配置文件指定参数
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
配置文件为:
LogFile="/home/iislog/admin.szshequ.com/W3SVC1061345589/ex%YY-24%MM-24%DD-24.log"
LogFile="/home/iislog/agent.szshequ.com/W3SVC239483299/ex%YY-24%MM-24%DD-24.log"
Submitted by admin on 2010, August 13, 6:24 PM
/etc/sysctrl.conf
net.ipv4.ip_conntrack_max = 81920
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1500
可调整以下参数:echo 180 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 6553600 >/proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 120 >/proc/sys/net/ipv4/neigh/default/gc_stale_time
echo 10240 >/proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 40960 >/proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 81920 >/proc/sys/net/ipv4/neigh/default/gc_thresh3或vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
net.ipv4.neigh.default.gc_thresh1=10240
net.ipv4.neigh.default.gc_thresh2=40960
net.ipv4.neigh.default.gc_thresh3=81920
net.core.rmem_default = 2097152
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.wmem_default = 2097152再sysctl -p相关参数说明:ARP支持一个sysctl接口,可以用以配置全局参数或逐个网络接口地进行配制。该sysctl可以通过/proc/sys/net/ipv4/neigh/*/*文件或者使用sysctl(2)接口来访问。系统中每个接口都在/proc/sys/net/ipv4/neigh/.中有自己的目录。`default'目录中的设置用于所有新建的设备。sysctl相关的时间是以秒为单位,除非特别声明过.
anycast_delay
对IPv6相邻请求信息的回复的最大延迟时间;目前还不支持anycast。缺省值为1秒。
app_solicit
这是在使用多路广播探测(multicast probe)前,经过网络连接送到用户间隙ARP端口监控程序的探测(probe)最大数目(见mcast_solicit)。缺省值为0。
base_reachable_time
一旦发现相邻记录,至少在一段介于base_reachable_time/2和3*base_reachable_time/2之间的随机时间内,该记录是有效的。如果收到上层协议的肯定反馈,那么记录的有效期将延长。缺省值是30秒。
delay_first_probe_time
发现某个相邻层记录无效(stale)后,发出第一个探测要等待的时间。缺省值是5秒。
gc_interval
收集相邻层记录的无用记录的垃圾收集程序的运行周期,缺省为30秒。
gc_stale_time
决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。
gc_thresh1
存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。
gc_thresh2
保存在ARP高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字5秒。缺省值是512。
gc_thresh3
保存在ARP高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。
locktime
ARP记录保存在高速缓存内的最短时间(jiffy数),以防止存在多个可能的映射(potential mapping)时,ARP高速缓存系统的颠簸(经常是由于网络的错误配置而引起)。缺省值是1秒。
mcast_solicit
在把记录标记为不可抵达的之前,用多路广播/广播(multicast/broadcast)方式解析地址的最大次数。
缺省值是3。
proxy_delay
当接收到有一个请求已知的代理ARP地址的ARP请求时,在回应前可以延迟的jiffy(时间单位,见BUG)数目。这样,以防止网络风暴。缺省值是0.8秒。
proxy_qlen
能放入代理ARP地址队列(proxy-ARP addresses)的数据包最大数目。缺省值是64。
retrans_time
重发一个请求前的等待jiffy(时间单位,见BUG)的数目。缺省值是1秒。
ucast_solicit
询问ARP端口监控程序前,试图发送单探测(unicast probe)的次数。(见app_solicit).缺省值是3秒。
unres_qlen
每个没有被其它网络层解析的地址,在队列中可存放包的最大数目。缺省值是3.
Submitted by admin on 2010, August 11, 3:23 PM
在32位的系统上,单文件有大小的限制问题,在apache,cronolog的应用上,都有,如下,是apache通过cronolog后的错误提示
piped log program '/usr/local/sbin/cronolog /www/servers/apache/logs/access_log.%Y%m%d' failed unexpectedly
[Wed Aug 11 14:58:42 2010] [notice] child pid 911 exit signal File size limit exceeded (25)
piped log program '/usr/local/sbin/cronolog /www/servers/apache/logs/access_log.%Y%m%d' failed unexpectedly
1. 修改src/cronolog.c 2. 查找log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE);一共是两处 修改为如下log_fd = open64(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE); 如果编译不通过,可能是您的gcc版本问题,可以修改成如下 log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, FILE_MODE); 3. 修改后重新编译,然后重启apache(测试过)
另一方法
CustomLog "|/usr/local/cronolog/sbin/cronolog /www/logs/bbs.wedchina.com-%Y%m%d-access_log" combined env=!image-request加上%Y%m%d参数
或
引用自
CHOST=i686-pc-linux-gnu
CFLAGS=-march=i686 -O3 -pipe -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
CXX=gcc CXXFLAGS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
./configure –prefix=/usr/local/cronolog-1.6.2
因为日志是通过cronolog来处理所以只要重新编译cronolog就可以了
关键是这一行代码…-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
他会让你编译后的程序调用系统支持的64bit的操作..就不会有2G文件的限制了…
也重新编译了一下cronolog,希望不再有这个错误产生,观察中^
如果apache支持2G以上文件的下载呢,下面有一方法,现在还没测试
引用自
Linux下apache支持最大文件为2G,如果要让它支持更大文件,在编译前加上:
export CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
不加此参数的话,GCC默认是不支持大于2G的文件的。不光Apache2,其他的软件应该也适用。
Submitted by admin on 2010, July 23, 3:50 PM
工作需求,需要samba服务器使用Active Directory来进行身份认证。折腾了一段时间,终于配置起来了。
Windows 2003域环境的搭建不多说了,网上很多教程,而且都是点鼠标的操作,没啥技术含量,着重讨论Linux的Samba服务器支持域认证的配置过程。
Win 2003 Server作为域控制器,客户端提交的认证请求和授权的过程是通过Kerberos5协议来完成的,所以要让Linux的samba服务器支持域认证,首先需要将Kerberos配置好。看我的配置文件
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = MNKW.COM #指定域
dns_lookup_realm = false
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[realms]
MNKW.COM = {
kdc = 192.168.6.37:88 #设置密钥分发中心的接口,即域控制器的IP
admin_server = 192.168.6.37:749
default_domain = MNKW.COM
}
[domain_realm]
.mnkw.com = MNKW.COM #指定域
mnkw.com = MNKW.COM #指定域
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
在配置好以上之后,需要执行kinit来验证和初始化kerberos协议是否可以正常运行。
遇到的一些问题:
一、
[root@Gh0st CentOS]# kinit test111@mnkw.com
kinit(v5): Cannot find KDC for requested realm while getting initial credentials
原因:客户端主DNS未指向域控制器
解决:
编辑文件/etc/resolv.conf,将nameserver的值修改成域控制器的IP地址。
二、
[root@Gh0st CentOS]# kinit test111@mnkw.com
Password for test111@mnkw.com:
kinit(v5): Clock skew too great while getting initial credentials
原因:
客户端与认证服务器的时间差距太大,将客户端与认证服务器的时间同步即可
解决:
安装ntp软件,执行ntpdate –b 192.168.6.37(域控制器的IP),时间被同步
[root@Gh0st CentOS]# ntpdate -b 192.168.6.37
17 Sep 12:32:05 ntpdate[10302]: step time server 192.168.6.37 offset 2537.194742 sec
三、
[root@Gh0st CentOS]# kinit test111@mnkw.com
Password for test111@mnkw.com:
kinit(v5): KDC reply did not match expectations while getting initial credentials
解决:使用大写的域名
[root@Gh0st CentOS]# kinit administrator@MNKW.COM
Password for administrator@MNKW.COM:
[root@Gh0st CentOS]#
至此,kerberos的协议已经配置完成。http://hi.baidu.com/drinkey/blog/item/471a2f97a628226755fb969c.html
Submitted by admin on 2010, July 22, 11:22 AM
kickstart是什么
许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案.
Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.
Kickstart给用户提供了一种自动化安装红帽企业Linux的方法.
如何执行kickstart安装
kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS,FTP,HTTP 来执行.
要使用 kickstart,必须:
1.创建一个kickstart文件.
2.创建有kickstart文件的引导介质或者使这个文件在网络上可用.
3.筹备安装树.
4.开始kickstart安装.
创建kickstart文件
kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别.可以用「Kickstart 配置」应用程序创建它或是自己从头编写.红帽企业Linux安装程序也根据在安装过程中的选择创建一个简单的kickstart文件,这个文件被写入到/root/anaconda-ks.cfg.可以用任何能够把文件保存为ASCII文本的文本编辑器或字处理器来编辑它.
首先,在创建kickstart文件时留意下列问题:
1.每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:
命令部分,这里应该包括必需的选项.
%packages部分,这部分选择需要安装的软件包.
%pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.
2.不必需的项目可以被省略.
3.如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
4.以井号("#")开头的行被当作注释行并被忽略.
对于 kickstart 升级,下列项目是必需的:
1.语言
2.安装方法
3.设备规格(如果这个设备是在安装过程中所需要的)
4.键盘设置
5.upgrade 关键字
6.引导装载程序配置
7.如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).
kickstart命令选项
下面的选项可以放入kickstart文件.如果喜欢使用图形化的界面来创建kickstart文件,可以使用"Kickstart 配置"应用程序.(注:如果某选项后面跟随了一个等号(=),它后面就必须指定一个值.在示例命令中,括号([])中的选项是命令的可选参数.)
autopart(可选)
自动创建分区,大于1GB的根分区(/),交换分区和适合于不同体系结构的引导分区.一个或多个缺省分区的大小可以用part指令重新定义.
ignoredisk(可选)
导致安装程序忽略指定的磁盘.如果使用自动分区并希望忽略某些磁盘的话,这就很有用.
例如,没有ignoredisk,如要试图在SAN-cluster系统里部署,kickstart就会失败,因为安装程序检测到SAN不返回分区表的被动路径(passive path).
如果有磁盘的多个路径时,ignoredisk选项也有用处.
语法是:
ignoredisk --drives=drive1,drive2,...
这里driveN是sda,sdb... hda等等中的一个.
autostep(可选)
和interactive相似,除了它进入下一屏幕,它通常用于调试.
--autoscreenshot,安装过程中的每一步都截屏并在安装完成后把图片复制到/root/anaconda-screenshots.这对于制作文档很有用.
auth或authconfig(必需)
为系统设置验证选项.这和在安装后运行的authconfig命令相似.在缺省情况下,密码通常被加密但不使用影子文件(shadowed).
--enablemd5,每个用户口令都使用md5加密.
--enablenis,启用NIS支持.在缺省情况下,--enablenis使用在网络上找到的域.域应该总是用--nisdomain=选项手工设置.
--nisdomain=,用在NIS服务的NIS域名.
--nisserver=,用来提供NIS服务的服务器(默认通过广播).
--useshadow或--enableshadow,使用屏蔽口令.
--enableldap,在/etc/nsswitch.conf启用LDAP支持,允许系统从LDAP目录获取用户的信息(UIDs,主目录,shell 等等).要使用这个选项,必须安装nss_ldap软件包.也必须用--ldapserver=和--ldapbasedn=指定服务器和base DN(distinguished name).
--enableldapauth,把LDAP作为一个验证方法使用.这启用了用于验证和更改密码的使用LDAP目录的pam_ldap模块.要使用这个选项,必须安装nss_ldap软件包.也必须用--ldapserver=和--ldapbasedn=指定服务器和base DN.
--ldapserver=,如果指定了--enableldap或--enableldapauth,使用这个选项来指定所使用的LDAP服务器的名字.这个选项在/etc/ldap.conf文件里设定.
--ldapbasedn=,如果指定了--enableldap或--enableldapauth,使用这个选项来指定用户信息存放的LDAP目录树里的DN.这个选项在/etc/ldap.conf文件里设置.
--enableldaptls,使用TLS(传输层安全)查寻.该选项允许LDAP在验证前向LDAP服务器发送加密的用户名和口令.
--enablekrb5,使用Kerberos 5验证用户.Kerberos自己不知道主目录,UID或shell.如果启用了Kerberos,必须启用LDAP,NIS,Hesiod或者使用/usr/sbin/useradd命令来使这个工作站获知用户的帐号.如果使用这个选项,必须安装pam_krb5软件包.
--krb5realm=,工作站所属的Kerberos 5领域.
--krb5kdc=,为领域请求提供服务的KDC.如果的领域内有多个KDC,使用逗号(,)来分隔它们.
--krb5adminserver=,领域内还运行kadmind的KDC.该服务器处理改变口令以及其它管理请求.如果有不止一个KDC,该服务器必须是主KDC.
--enablehesiod,启用Hesiod支持来查找用户主目录,UID 和 shell.在网络中设置和使用 Hesiod 的更多信息,可以在 glibc 软件包里包括的 /usr/share/doc/glibc-2.x.x/README.hesiod里找到.Hesiod是使用DNS记录来存储用户,组和其他信息的 DNS 的扩展.
--hesiodlhs,Hesiod LHS("left-hand side")选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对 base DN的使用.
--hesiodrhs,Hesiod RHS("right-hand side")选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对base DN的使用.
--enablesmbauth,启用对SMB服务器(典型的是Samba或Windows服务器)的用户验证.SMB验证支持不知道主目录,UID 或 shell.如果启用SMB,必须通过启用LDAP,NIS,Hesiod或者用/usr/sbin/useradd命令来使用户帐号为工作站所知.要使用这个选项,必须安装pam_smb软件包.
--smbservers=,用来做SMB验证的服务器名称.要指定不止一个服务器,用逗号(,)来分隔它们.
--smbworkgroup=,SMB服务器的工作组名称.
--enablecache,启用nscd服务.nscd服务缓存用户,组和其他类型的信息.如果选择在网络上用NIS,LDAP或hesiod分发用户和组的信息,缓存就尤其有用.
bootloader(必需)
指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的.
--append=,指定内核参数.要指定多个参数,使用空格分隔它们.
例如:bootloader --location=mbr --append="hdd=ide-scsi ide=nodma"
--driveorder,指定在BIOS引导顺序中居首的驱动器.
例如:bootloader --driveorder=sda,hda
--location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序).
--password=,如果使用GRUB,把GRUB引导装载程序的密码设置到这个选项指定的位置.这应该被用来限制对可以传入任意内核参数的GRUB shell的访问.
--md5pass=,如果使用GRUB,这和--password=类似,只是密码已经被加密.
--upgrade,升级现存的引导装载程序配置,保留其中原有的项目.该选项仅可用于升级.
clearpart(可选)
在创建新分区之前,从系统上删除分区.默认不会删除任何分区.
注:如果使用了clearpart命令,--onpart命令就不能够用在逻辑分区上.
--all,删除系统上所有分区.
--drives=,指定从哪个驱动器上清除分区.
例如,下面的命令清除了主IDE控制器上的前两个驱动器上所有分区
clearpart --drives=hda,hdb --all
--initlabel,根据不同体系结构把磁盘标签初始化为缺省设置(例如,msdos用于x86而gpt用于Itanium).当安装到一个崭新的硬盘时,这很有用,安装程序不会询问是否应该初始化磁盘标签.
--linux,删除所有Linux分区.
--none(缺省),不要删除任何分区.
cmdline(可选)
在完全的非交互式的命令行模式下进行安装.任何交互式的提示都会终止安装.这个模式对于有x3270控制台的IBM System z系统很有用.
device(可选)
在多数的PCI系统里,安装程序会正确地自动探测以太网卡和SCSI卡.然而,在老的系统和某些PCI系统里,kickstart需要提示来找到正确的设备.device命令用来告诉安装程序安装额外的模块,它有着这样的格式:
device <type><moduleName> --opts=<options>
<type>,用scsi或eth代替
<moduleName>,使用应该被安装的内核模块的名称来替换.
--opts=,传递给内核模块的选项.注意,如果把选项放在引号里,可以传递多个选项.
例如:--opts="aic152x=0x340 io=11"
driverdisk(可选)
可以在kickstart安装过程中使用驱动软盘.必须把驱动软盘的内容复制到系统的硬盘分区的根目录下.然后必须使用driverdisk 命令来告诉安装程序到哪去寻找驱动磁盘.
driverdisk <partition> [--type=<fstype>]
另外,也可以为驱动程序盘指定一个网络位置:
driverdisk --source=ftp://path/to/dd.img
driverdisk --source=http://path/to/dd.img
driverdisk --source=nfs:host:/path/to/img
<partition>,包含驱动程序盘的分区.
--type=,文件系统类型(如:vfat,ext2,ext3).
firewall(可选)
这个选项对应安装程序里的「防火墙配置」屏幕:
firewall --enabled|--disabled [--trust=] <device> [--port=]
--enabled或者--enable,拒绝不是答复输出请求如DNS答复或DHCP请求的进入连接.如果需要使用在这个机器上运行的服务,可以选择允许指定的服务穿过防火墙.
--disabled或--disable,不要配置任何iptables规则.
--trust=,在此列出设备,如eth0,这允许所有经由这个设备的数据包通过防火墙.如果需要列出多个设备,使用--trust eth0 --trust eth1.不要使用以逗号分隔的格式,如--trust eth0, eth1.
<incoming>,使用以下服务中的一个或多个来替换,从而允许指定的服务穿过防火墙.
--ssh
--telnet
--smtp
--http
--ftp
--port=,可以用端口:协议(port:protocal)格式指定允许通过防火墙的端口.
例如,如果想允许IMAP通过的防火墙,可以指定imap:tcp.还可以具体指定端口号码,要允许UDP分组在端口1234通过防火墙,输入1234:udp.要指定多个端口,用逗号将它们隔开.
firstboot(可选)
决定是否在系统第一次引导时启动"设置代理".如果启用,firstboot软件包必须被安装.如果不指定,这个选项是缺省为禁用的.
--enable或--enabled,系统第一次引导时,启动"设置代理".
--disable或--disabled,系统第一次引导时,不启动"设置代理".
--reconfig,在系统引导时在重配置(reconfiguration)模式下启用"设置代理".这个模式启用了语言,鼠标,键盘,根密码,安全级别,时区和缺省网络配置之外的选项.
halt(可选)
在成功地完成安装后关闭系统.这和手工安装相似,手工安装的anaconda会显示一条信息并等待用户按任意键来重启系统.在kickstart安装过程中,如果没有指定完成方法(completion method),将缺省使用reboot选项.
halt选项基本和shutdown -h命令相同.
关于其他的完成方法,请参考kickstart的poweroff,reboot和shutdown选项.
graphical(可选)
在图形模式下执行kickstart安装.kickstart安装默认在图形模式下安装.
install(可选)
告诉系统来安装全新的系统而不是在现有系统上升级.这是缺省的模式.必须指定安装的类型,如cdrom,harddrive,nfs或url(FTP 或HTTP安装).install命令和安装方法命令必须处于不同的行上.
cdrom
从系统上的第一个光盘驱动器中安装.
harddrive
从本地驱动器的vfat或ext2格式的红帽安装树来安装.
--biospart=,从BIOS分区来安装(如82).
--partition=,从分区安装(如sdb2).
--dir=,包含安装树的variant目录的目录.
例如:harddrive --partition=hdb2 --dir=/tmp/install-tree
nfs
从指定的NFS服务器安装.
--server=,要从中安装的服务器(主机名或IP).
--dir=,包含安装树的variant目录的目录.
--opts=,用于挂载NFS输出的Mount选项(可选).
例如:nfs --server=nfsserver.example.com --dir=/tmp/install-tree
url
通过FTP或HTTP从远程服务器上的安装树中安装.
例如:url --url http://<server>/<dir>
或:url --url ftp://<username>:<password>@<server>/<dir>
ignore disk(可选)
用来指定在分区,格式化和清除时anaconda不应该访问的磁盘.这个命令有一个必需的参数,就是用逗号隔开的需要忽略的驱动器列表.
例如:ignoredisk --drives=[disk1,disk2,...]
interactive(可选)
在安装过程中使用kickstart文件里提供的信息,但允许检查和修改给定的值.将遇到安装程序的每个屏幕以及kickstart文件里给出的值.通过点击"下一步"接受给定的值或是改变值后点击"下一步"继续.请参考autostep命令.
iscsi(可选)
issci --ipaddr= [options].
--target
--port=
--user=
--password=
iscsiname(可选)
key(可选)
指定安装密钥,它在软件包选择和获取支持时设别系统的时候是必需的.这个命令是红帽企业Linux-specific,它对Fedora来说没有意义并且会被忽略.
--skip,跳过输入密钥.通常,如果没有key命令,anaconda将暂停并提示输入密钥.如果没有密钥或不想提供它,这个选项允许继续自动化安装.
keyboard(必需)
设置系统键盘类型.这里是 i386,Itanium,和 Alpha 机器上可用键盘的列表:
be-latin1, bg, br-abnt2, cf, cz-lat2, cz-us-qwertz, de, de-latin1,
de-latin1-nodeadkeys, dk, dk-latin1, dvorak, es, et, fi, fi-latin1,
fr, fr-latin0, fr-latin1, fr-pc, fr_CH, fr_CH-latin1, gr, hu, hu101,
is-latin1, it, it-ibm, it2, jp106, la-latin1, mk-utf, no, no-latin1,
pl, pt-latin1, ro_win, ru, ru-cp1251, ru-ms, ru1, ru2, ru_win,
se-latin1, sg, sg-latin1, sk-qwerty, slovene, speakup, speakup-lt,
sv-latin1, sg, sg-latin1, sk-querty, slovene, trq, ua, uk, us, us-acentos
文件/usr/lib/python2.2/site-packages/rhpl/keyboard_models.py 也包含这个列表而且是 rhpl 软件包的一部分.
lang(必需)
设置在安装过程中使用的语言以及系统的缺省语言.例如,要把语言设置为英语,kickstart文件应该包含下面的一行:
lang en_US
文件/usr/share/system-config-language/locale-list里每一行的第一个字段提供了一个有效语言代码的列表,它是system-config-language软件包的一部分.
文本模式的安装过程不支持某些语言(主要是中文,日语,韩文和印度的语言).如果用lang命令指定这些语言中的一种,安装过程仍然会使用英语,但是系统会缺省使用指定的语言.
langsupport(不赞成)
langsupport关键字已经被取消而且使用它将导致屏幕出现错误信息及终止安装.作为代替,应该在kickstart文件里的%packages 部分列出所支持的语言的支持软件包组.例如,要支持法语,应该把下面的语句加入到
%packages:
@french-support
logvol(可选)
使用以下语法来为逻辑卷管理(LVM)创建逻辑卷:
logvol <mntpoint> --vgname=<name> --size=<size> --name=<name><options>
这些选项如下所示:
--noformat,使用一个现存的逻辑卷,不进行格式化.
--useexisting,使用一个现存的逻辑卷,重新格式化它.
--fstype=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat.
--fsoptions=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat.
--bytes-per-inode=,指定在逻辑卷上创建的文件系统的节点的大小.因为并不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略.
--grow=,告诉逻辑卷使用所有可用空间(若有),或使用设置的最大值.
--maxsize=,当逻辑卷被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB.
--recommended=,自动决定逻辑卷的大小.
--percent=,用卷组里可用空间的百分比来指定逻辑卷的大小.
首先创建分区,然后创建逻辑卷组,再创建逻辑卷.
例如:
part pv.01 --size 3000
volgroup myvg pv.01
logvol / --vgname=myvg --size=2000 --name=rootvol
logging(可选)
这个命令控制安装过程中anaconda的错误日志.它对安装好的系统没有影响.
--host=,发送日志信息到给定的远程主机,这个主机必须运行配置为可接受远程日志的syslogd进程.
--port=,如果远程的syslogd进程没有使用缺省端口,这个选项必须被指定.
--level=,debug,info,warning,error或critical中的一个.
指定tty3上显示的信息的最小级别.然而,无论这个级别怎么设置,所有的信息仍将发送到日志文件.
mediacheck(可选)
如果指定的话,anaconda将在安装介质上运行mediacheck.这个命令只适用于交互式的安装,所以缺省是禁用的.
monitor(可选)
如果monitor命令没有指定,anaconda将使用X来自动检测的显示器设置.请在手工配置显示器之前尝试这个命令.
--hsync=,指定显示器的水平频率.
--vsync=,指定显示器的垂直频率.
--monitor=,使用指定的显示器;显示器的名字应该在hwdata软件包里的/usr/share/hwdata/MonitorsDB列表上.这个显示器的列表也可以在Kickstart Configurator的X配置屏幕上找到.如果提供了--hsync或--vsync,它将被忽略.如果没有提供显示器信息,安装程序将自动探测显示器.
--noprobe=,不要试图探测显示器.
mouse(已取消)
mouse 关键字已经被取消,使用它将导致屏幕出现错误信息并终止安装.
network(可选)
为系统配置网络信息.如果 kickstart安装不要求联网(换句话说,不从NFS,HTTP或FTP安装),就不需要为系统配置网络.如果安装要求联网而kickstart文件里没有提供网络信息,安装程序会假定从eth0通过动态IP地址(BOOTP/DHCP)来安装,并配置安装完的系统动态决定IP地址.network选项为通过网络的kickstart安装以及所安装的系统配置联网信息.
--bootproto=,dhcp,bootp或static中的一种,缺省值是dhcp.bootp和dhcp被认为是相同的.
static方法要求在kickstart文件里输入所有的网络信息.顾名思义,这些信息是静态的且在安装过程中和安装后所有.静态网络的设置行更为复杂,因为必须包括所有的网络配置信息.必须指定IP地址,网络,网关和命名服务器.
例如("\"表示连续的行):
network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 \
--gateway=10.0.2.254 --nameserver=10.0.2.1
如果使用静态方法,请注意以下两个限制:
所有静态联网配置信息都必须在一行上指定,不能使用反斜线来换行.
在这里只能够指定一个命名服务器.然而,如果需要的话,可以使用kickstart文件的%post段落来添加更多的命名服务器.
--device=,用来选择用于安装的特定的以太设备.注意,除非kickstart文件是一个本地文件(如ks=floppy),否则--device=的使用是无效的.这是因为安装程序会配置网络来寻找kickstart文件.
例如: network --bootproto=dhcp --device=eth0
--ip=,要安装的机器的IP地址.
--gateway=,IP地址格式的默认网关.
--nameserver=,主名称服务器,IP地址格式.
--nodns,不要配置任何 DNS 服务器.
--netmask=,安装的系统的子网掩码.
--hostname=,安装的系统的主机名.
--ethtool=,指定传给ethtool程序的网络设备的其他底层设置.
--essid=,无线网络的网络ID.
--wepkey=,无线网络的加密密钥.
--onboot=,是否在引导时启用该设备.
--class=,DHCP类型.
--mtu=,该设备的MTU.
--noipv4=,禁用此设备的IPv4.
--noipv6=,禁用此设备的IPv6.
multipath(可选)
multipath --name= --device= --rule=
part或partition(对于安装是必需的,升级可忽略).
在系统上创建分区.
如果不同分区里有多个红帽企业Linux系统,安装程序会提示用户升级哪个系统.
警告:作为安装过程的一部分,所有被创建的分区都会被格式化,除非使用了--noformat和--onpart.
<mntpoint>,<mntpoint>是分区的挂载点,它必须是下列形式中的一种:
/<path>,例如,/,/usr,/home
swap,该分区被用作交换空间,要自动决定交换分区的大小,使用--recommended选项.
swap --recommended
自动生成的交换分区的最小值大于系统内存的数量,但小于系统内存的两倍.
raid.<id>,该分区用于 software RAID(参考 raid).
pv.<id>,该分区用于 LVM(参考 logvol).
--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB.
--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值.
--maxsize=,当分区被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB.
--noformat,用--onpart命令来告诉安装程序不要格式化分区.
--onpart=或--usepart=,把分区放在已存在的设备上.
例如:partition /home --onpart=hda1,把/home置于必须已经存在的/dev/hda1上.
--ondisk=或--ondrive=,强迫分区在指定磁盘上创建.
例如:--ondisk=sdb把分区置于系统的第二个SCSI磁盘上.
--asprimary,强迫把分区分配为主分区,否则提示分区失败.
--type=(用fstype代替),这个选项不再可用了.应该使用fstype.
--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat.
--start=,指定分区的起始柱面,它要求用--ondisk=或ondrive=指定驱动器.它也要求用--end=指定结束柱面或用--size=指定分区大小.
--end=,指定分区的结束柱面.它要求用--start=指定起始柱面.
--bytes-per-inode=,指定此分区上创建的文件系统的节点大小.不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略.
--recommended,自动决定分区的大小.
--onbiosdisk,强迫在 BIOS 找到的特定磁盘上创建分区.
注:如果因为某种原因分区失败了,虚拟终端3上会显示诊断信息.
poweroff(可选)
在安装成功后关闭系统并断电.通常,在手工安装过程中,anaconda会显示一条信息并等待用户按任意键来重新启动系统.在kickstart的安装过程中,如果没有指定完成方法,将使用缺省的reboot选项.
raid(可选)
组成软件RAID设备.该命令的格式是:
raid <mntpoint> --level=<level> --device=<mddevice><partitions*>
<mntpoint>,RAID文件系统被挂载的位置.如果是/,除非已经有引导分区存在(/boot),RAID级别必须是1.如果已经有引导分区,/boot分区必须是级别1且根分区(/)可以是任何可用的类型.<partitions*>(这表示可以有多个分区)列出了加入到RAID阵列的RAID标识符.
--level=,要使用的RAID级别(0,1,或5).
--device=,要使用的RAID设备的名称(如md0或md1).RAID设备的范围从md0直到md7,每个设备只能被使用一次.
--bytes-per-inode=,指定RAID设备上创建的文件系统的节点大小.不是所有的文件系统都支持这个选项,所以对于那些文件系统它都会被忽略.
--spares=,指定RAID阵列应该被指派N个备用驱动器.备用驱动器可以被用来在驱动器失败时重建阵列.
--fstype=,为RAID阵列设置文件系统类型.合法值有:ext2,ext3,swap和vfat.
--fsoptions=,指定当挂载文件系统时使用的free form字符串.这个字符串将被复制到系统的/etc/fstab文件里且应该用引号括起来.
--noformat,使用现存的RAID设备,不要格式化RAID阵列.
--useexisting,使用现存的RAID设备,重新格式化它.
reboot(可选)
在成功完成安装(没有参数)后重新启动.通常,kickstart会显示信息并等待用户按任意键来重新启动系统.
repo(可选)
配置用于软件包安装来源的额外的yum库.可以指定多个repo行.
repo --name=<repoid> [--baseline=<url>| --mirrorlist=<url>]
--name=,repo id.这个选项是必需的.
--baseurl=,库的URL.这里不支持yum repo配置文件里使用的变量.可以使用它或者--mirrorlist,亦或两者都不使用.
--mirrorlist=,指向库镜像的列表的URL.这里不支持yum repo配置文件里可能使用的变量.可以使用它或者--baseurl,亦或两者都不使用.
rootpw(必需)
把系统的根口令设置为<password>参数.
rootpw [--iscrypted] <password>
--iscrypted,如果该选项存在,口令就会假定已被加密.
selinux(可选)
在系统里设置SELinux状态.在anaconda里,SELinux缺省为enforcing.
selinux [--disabled|--enforcing|--permissive]
--enforcing,启用SELinux,实施缺省的targeted policy.
注:如果kickstart文件里没有selinux选项,SELinux将被启用并缺省设置为--enforcing.
--permissive,输出基于SELinux策略的警告,但实际上不执行这个策略.
--disabled,在系统里完全地禁用 SELinux.
services(可选)
修改运行在缺省运行级别下的缺省的服务集.在disabled列表里列出的服务将在enabled列表里的服务启用之前被禁用.
--disabled,禁用用逗号隔开的列表里的服务.
--enabled,启用用逗号隔开的列表里的服务.
shutdown(可选)
在成功完成安装后关闭系统.在kickstart安装过程中,如果没有指定完成方法,将使用缺省的reboot选项.
skipx(可选)
如果存在,安装的系统上就不会配置X.
text(可选)
在文本模式下执行kickstart安装. kickstart安装默认在图形模式下安装.
timezone(可选)
把系统时区设置为<timezone>,它可以是timeconfig列出的任何时区.
timezone [--utc] <timezone>
--utc,如果存在,系统就会假定硬件时钟被设置为UTC(格林威治标准)时间.
upgrade(可选)
告诉系统升级现有的系统而不是安装一个全新的系统.必须指定 cdrom,harddrive,nfs或url(对于FTP和HTTP而言)中的一个作为安装树的位置.详情请参考 install.
user(可选)
在系统上创建新用户.
user --name=<username> [--groups=<list>] [--homedir=<homedir>] [--password=<password>] [--iscrypted] [--shell=<shell>] [--uid=<uid>]
--name=,提供用户的名字.这个选项是必需的.
--groups=,除了缺省的组以外,用户应该属于的用逗号隔开的组的列表.
--homedir=,用户的主目录.如果没有指定,缺省为/home/<username>.
--password=,新用户的密码.如果没有指定,这个帐号将缺省被锁住.
--iscrypted=,所提供的密码是否已经加密?
--shell=,用户的登录shell.如果不提供,缺省为系统的缺省设置.
--uid=,用户的UID.如果未提供,缺省为下一个可用的非系统 UID.
vnc(可选)
允许通过VNC远程地查看图形化的安装.文本模式的安装通常更喜欢使用这个方法,因为在文本模式下有某些大小和语言的限制.如果为no,这个命令将启动不需要密码的VNC服务器并打印出需要用来连接远程机器的命令.
vnc [--host=<hostname>] [--port=<port>] [--password=<password>]
--host=,不启动VNC服务器,而是连接至给定主机上的VNC viewer进程.
--port=,提供远程VNC viewer进程侦听的端口.如果不提供,anaconda将使用VNC的缺省端口.
--password=,设置连接VNC会话必需的密码.这是可选的,但却是我们所推荐的选项.
volgroup(可选)
用来创建逻辑卷管理(LVM)组,其语法格式为:
volgroup <name><partition><options>
这些选项如下所示:
--noformat,使用一个现存的卷组,不要格式化它.
--useexisting,使用一个现存的卷组,重新格式化它.
--pesize=,设置物理分区(physical extent)的大小.
首先创建分区,然后创建逻辑卷组,再创建逻辑卷.例如:
xconfig(可选)
配置X Window 系统.如果没有指定这个选项且安装了X,用户必须在安装过程中手工配置X;如果最终系统里没有安装X,这个选项不应该被使用.
--driver,指定用于视频硬件的 X 驱动.
--videoram=,指定显卡的显存数量.
--defaultdesktop=,指定GNOME或KDE作为缺省的桌面(假设已经通过%packages安装了GNOME或KDE桌面环境).
--startxonboot,在安装的系统上使用图形化登录.
--resolution=,指定安装的系统上X窗口系统的默认分辨率.有效值有:640x480,800x600,1024x768,1152x864, 1280x1024,1400x1050,1600x1200.请确定指定与视频卡和显示器兼容的分辨率.
--depth=,指定安装的系统上的 X 窗口系统的默认色彩深度.有效值有:8,16,24,和 32.请确定指定与视频卡和显示器兼容的色彩深度.
zerombr(可选)
如果指定了zerombr且yes是它的唯一参数,任何磁盘上的无效分区表都将被初始化.这会毁坏有无效分区表的磁盘上的所有内容.这个命令的格式应该如下:
zerombr yes
其它格式均无效.
zfcp(可选)
zfcp [--devnum=<devnum>] [--fcplun=<fcplun>] [--scsiid=<scsiid>] [--scsilun=<scsilun>] [--wwpn=<wwpn>]
%include
使用 %include/path/to/file命令可以把其他文件的内容包含在kickstart文件里,就好像这些内容出现在kickstart文件的%include命令后一样.
kickstart的软件包选择
在kickstart文件里使用%packages命令来列出想安装的软件包(仅用于全新安装,升级安装时不支持软件包指令).
可以指定单独的软件包名或是组,以及使用星号通配符.安装程序可以定义包含相 关软件包的组.关于组的列表,请参考第一张红帽企业 Linux光盘里的 variant/repodata/comps-*.xml. 每个组都有一个编号,用户可见性的值,名字,描述和软件包列表.在软件包列表里,如果这个组被选择的话,组里的标记为"mandatory"的软件包就必须被安装;标记为"default"的软件包缺省被选择;而标记为"optional"的软件包必须被明确地选定才会被安装.
多数情况下,只需要列出想安装的组而不是单个的软件包.注意Core和Base组总是缺省被选择,所以并不需要在%packages部分指定它们.
这里是一个 %packages 选择的示例:
%packages
@ X Window System
@ GNOME Desktop Environment
@ Graphical Internet
@ Sound and Video dhcp
如所看到的,组被指定了,每个占用一行,用@符号开头,后面是comps.xml文件里给出的组全名.组也可以用组的id指定,如gnome-desktop.不需要额外字符就可以指定单独的软件包(上例里的dhcp行就是一个单独的软件包).
%packages 指令也支持下面的选项:
--nobase,不要安装@Base 组.如果想创建一个很小的系统,可以使用这个选项.
--resolvedeps,选项已经被取消了.目前依赖关系可以自动地被解析.
--ignoredeps,选项已经被取消了.目前依赖关系可以自动地被解析.
--ignoremissing,忽略缺少的软件包或软件包组,而不是暂停安装来向用户询问是中止还是继续安装.
例如:%packages --ignoremissing
kickstart预安装脚本
可以在 ks.cfg文件被解析后马上加入要运行的命令.这个部分必须处于kickstart文件的最后(在命令部分之后)而且必须用%pre命令开头.可以在%pre部分访问网络;然而,此时命名服务还未被配置,所以只能使用IP地址.
注:预安装脚本不在改换了的根环境(chroot)中运行.
--interpreter /usr/bin/python,允许指定不同的脚本语言,如Python.把/usr/bin/python替换成想使用的脚本语言.
kickstart安装后脚本
也可以加入在系统安装完毕后运行的命令.这部分内容必须在kickstart的最后而且用%post命令开头.它被用于实现某些功能,如安装其他的软件和配置其他的命名服务器.
注:如果用静态IP信息和命名服务器配置网络,可以在%post部分访问和解析IP地址.如果使用DHCP配置网络,当安装程序执行到%post部分时,/etc/resolv.conf文件还没有准备好.此时,可以访问网络,但是不能解析IP地址.因此,如果使用DHCP,必须在%post部分指定IP地址.
注:post-install 脚本是在 chroot 环境里运行的.因此,某些任务如从安装介质复制脚本或RPM将无法执行.
--nochroot,允许指定想在chroot环境之外运行的命令.
下例把/etc/resolv.conf文件复制到刚安装的文件系统里.
%post --nochroot cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
--interpreter /usr/bin/python
允许指定不同的脚本语言,如Python.把/usr/bin/python替换成想使用的脚本语言.
开始kickstart安装
要开始kickstart安装,必须从制作的引导介质或红帽企业Linux光盘引导系统,并输入在引导提示下输入特殊的引导命令.如果ks命令行参数被传递给内核,安装程序将寻找kickstart文件.
第一张光盘和软盘
如果ks.cfg文件位于软盘的vfat或ext2文件系统里,而且从红帽企业Linux光盘引导的话,也可以使用linux ks=floppy命令.
另外一个引导方法是,从红帽企业Linux光盘引导并使用软盘上的vfat或ext2文件系统里的kickstart文件.要实现这样的方法,在boot:提示下输入下面的命令:linux ks=hd:fd0:/ks.cfg
使用驱动程序盘
如果要使用带有kickstart的驱动盘,需要指定dd选项.
例如,从软盘引导并使用驱动盘,可以在boot:提示下输入命令linux ks=floppy dd
引导光盘
如果kickstart文件位于引导光盘上,把光盘插入机器,引导系统并在boot:提示下输入命令linux ks=cdrom:/ks.cfg
其它启动 kickstart 安装的方法如下列举:
askmethod,如果我们没有在的光驱里检测到红帽企业Linux光盘的话,请不要自动地把光盘作为安装来源.
autostep,使kickstart成为非交互式的.
debug,马上启动pdb.
dd,使用驱动盘.
dhcpclass=<class>,发送自定义的DHCP vendor class identifier.ISC的dhcpcd可以用"option vendor-class-identifier"来查看这个值.
dns=<dns>,用逗号隔开的用于网络安装的命名服务器列表.
driverdisk,和'dd'相同.
expert,启用特殊的功能,允许对可移除介质(removable media)进行分区和提示驱动盘
gateway=<gw>,用于网络安装的网关.
graphical,强制图形化安装.ftp/http 安装模式时必须使用图形化界面.
isa,提示用户输入ISA设备配置.
ip=<ip>,用于网络安装的IP地址,对于DHCP使用'dhcp'.
keymap=<keymap>,使用的键盘格式.有效值是那些可以用于'keyboard' kickstart命令的值.
ks=nfs:<server>:/<path>,安装程序在NFS服务器<server>上的<path>里寻找kickstart文件.安装程序使用DHCP来配置以太网卡.例如,如果的NFS服务器是server.example.com且kickstart文件是NFS共享目录的里/mydir/ks.cfg,正确的引导命令应该是ks=nfs:server.example.com:/mydir/ks.cfg.
ks=http://<server>/<path>,安装程序在HTTP服务器<server>上的<path>里寻找kickstart文件.安装程序使用DHCP来配置以太网卡.例如,如果的HTTP服务器是server.example.com且kickstart文件是HTTP目录的里/mydir/ks.cfg,正确的引导命令应该是ks=http://server.example.com/mydir/ks.cfg.
ks=floppy,安装程序在/dev/fd0里的软盘上的vfat或ext2文件系统里寻找ks.cfg文件.
ks=floppy:/<path>,安装程序在/dev/fd0里的软盘上以<path>寻找kickstart文件.
ks=hd:<device>:/<file>,安装程序把文件系统挂载在<device>(必须是vfat或ext2),而且在该文件系统里以<file>来寻找 kickstart 文件,如ks=hd:sda3:/mydir/ks.cfg.
ks=file:/<file>,安装程序试图从文件系统里读取<file>;并没有挂载任何文件.如果kickstart文件已经在initrd映像里时我们通常使用这个方法.
ks=cdrom:/<path>,安装程序以<path>在光盘上寻找kickstart文件.
ks,如果单独使用ks,安装程序将配置以太网卡使用DHCP.kickstart文件从DHCP应答的"bootServer"里读取,就像是NFS服务器共享kickstart文件一样.在缺省情况下,bootServer与DHCP服务器是同一个.kickstart文件的名字是下列之一:
如果指定了DHCP且引导文件以/开头,DHCP提供的引导文件将在NFS服务器上寻找.
如果指定了DHCP且引导文件不以/开头,DHCP提供的引导文件将在NFS服务器的/kickstart目录里寻找.
如果DHCP没有指定引导文件,安装程序将试图读取/kickstart/1.2.3.4-kickstart,这里的1.2.3.4是被安装的机器的数字化IP地址.
ksdevice=<device>,安装程序使用这个网络设备来连接网络.如要使用通过eth1设备连接至系统的NFS服务器上的kickstart文件来启动kickstart安装,可以在boot:提示下使用ks=nfs:<server>:/<path> ksdevice=eth1命令.
kssendmac,把HTTP头加到对设置系统有帮助的ks=http://请求里.在CGI环境变量里包括所有网卡的MAC地址,如:"X-RHN-Provisioning-MAC-0: eth0 01:23:45:67:89:ab".
lang=<lang>,安装时使用的语言.这应该是'lang' kickstart命令可以使用的有效语言之一.
loglevel=<level>,设置记录日志信息的最低级别.<level>的值可以是debug,info,warning,error和critical.缺省值是info.
lowres,强制图形用户界面安装程序运行在640x480分辨率下.
mediacheck,激活加载者代码,可以允许用户选择测试安装介质(如果是基于ISO的方法)的完整性.
method=cdrom,执行基于光盘的安装.
method=ftp://<path>,使用<path>来进行FTP安装.
method=hd://<dev>/<path>,用<dev>上的<path>进行基于硬盘驱动器的安装.
method=http://<path>,用<path>来进行基于HTTP的安装.
method=nfs:<path>,用<path>来进行NFS安装.
netmask=<nm>,用于网络安装的掩码.
nofallback,如果图形化用户界面退出时失败.
nofb,不要载入某些语言进行文本安装时所需要的 VGA16 帧缓冲.
nofirewire,不要装载对防火墙设备的支持.
noipv6,在安装过程中禁用 IPv6 网络.
nokill,当发生致命错误时,阻止anaconda终止所有运行程序的调试选项.
nomount,不要在救援模式下自动挂载任何已安装的Linux分区.
nonet,不要自动探测网络设备.
noparport,不要试图装载对并行端口的支持.
nopass,不要把键盘和鼠标信息传递给安装程序的第二阶段.当执行网络安装时,它可以用来在安装的第二阶段测试鼠标和键盘配置屏幕.
nopcmcia,忽略系统上的任何PCMCIA控制器.
noprobe,提示用户输入而不要试图检测硬件.
noshell,安装过程中tty2上不要出现shell.
nostorage,不要自动探测存储设备(SCSI,IDE,RAID).
nousb,不要装载USB支持(如果安装过程在早些时候挂起,这会有帮助).
nousbstorage,不要在安装程序的载入程序中禁止载入usbstorage模块.它对SCSI系统上的设备排序可能有帮助.
rescue,运行救援环境.
resolution=<mode>,在指定模式下运行安装程序,如'1024x768'模式.
serial,启用串行控制台支持.
skipddc,跳过对显示器的DDC探测,如果系统被挂起的这可能有帮助.
syslog=<host>[:<port>],一旦安装过程被启动并运行,发送日志信息到<host>的可选端口<port>上的syslog进程.这要求远程syslog进程接受连接(-r 选项).
text,强制文本模式的安装.
updates,提示包含更新(bug修复)的软盘.
updates=ftp://<path>,基于FTP的包含更新的映像文件.
updates=http://<path>,基于HTTP的包含更新的映像文件.
upgradeany,不需要符合升级所期望的语法的/etc/redhat-release.
vnc,启用基于vnc的安装.将需要连接到使用vnc客户端程序的机器.
vncconnect=<host>[:<port>],一旦安装过程开始启动并运行,连接到<host>上的vnc客户端,也可以使用可选端口<port>.也要求'vnc' 选项被指定.
vncpassword=<password>,启用vnc连接的密码.这将阻止其他人无意地连接到基于vnc的安装上.也要求'vnc'选项被指定.
一个简单完整的实例
install
cdrom
key 2515dd4e215225dd
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip 192.168.100.8 --netmask 255.255.255.0 --gateway 192.168.100.2 --nameserver 122.70.138.10 --hostname test.huabo.org
rootpw --iscrypted $1$BPHqwNav$CjjfBezv5OuecU3rNkdDb/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Chongqing
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
clearpart --drives=sda,sdb,sdc,sdd --initlabel
part /boot --fstype ext3 --size=100 --ondrive=sda
part / --fstype ext3 --size=4000 --ondrive=sda
part swap --size=512 --ondrive=sda
part raid.11 --size=1 --grow --asprimary --ondrive=sdb
part raid.21 --size=1 --grow --asprimary --ondrive=sdc
part raid.31 --size=1 --grow --asprimary --ondrive=sdd
raid pv.01 --device=md0 --level=RAID5 raid.11 raid.21 raid.31
volgroup vgname pv.01
logvol /home --fstype=ext3 --vgname=vgname --size=4000 --name=home
%packages
@gnome-desktop
@core
@base-x
@chinese-support
xorg-x11-utils
xorg-x11-server-Xnest
Submitted by admin on 2010, July 16, 7:08 PM
查看IP连接数
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
top -n 1 -b |grep 'httpd' |awk 'length($9)>=100.0{print "kill", $1}'|sh
netstat + awk 查询连接数两种方法,意义相同
1:netstat -pnt | awk '/^tcp/{print $5}' | cut -d: -f 1 | sort -n |uniq -c
2:netstat -pnt | awk '/^tcp/{s=split($5,N,":");A[N[s-1]]++} END{ for (k in A) print k,A[k]}'