2008年3月30日星期日

cpu stats

apt-get install sysstat
mpstat

2008年3月20日星期四

iptables详解

iptables详解
http://blog.chinaunix.net/u2/62156/index.html

用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改

iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定

iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]

iptables -[NX] chain
用 -NX 指定链

iptables -P chain target[options]
指定链的默认目标

iptables -E old-chain-name new-chain-name
-E 旧的链名 新的链名
用新的链名取代旧的链名
说明
Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。
可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。

TARGETS
防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。
ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。

TABLES
当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。
-t table
这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块,这时若模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表如下: filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWORD(处理通过的包)和OUTPUT(处理本地生成的包)。nat, 这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由之前本地的包)。
OPTIONS
这些可被iptables识别的选项可以区分不同的种类。

COMMANDS
这些选项指定执行明确的动作:若指令行下没有其他规定,该行只能指定一个选项.对于长格式的命令和选项名,所用字母长度只要保证iptables能从其他选项中区分出该指令就行了。
-A -append
在所选择的链末添加一条或更多规则。当源(地址)或者/与 目的(地址)转换为多个地址时,这条规则会加到所有可能的地址(组合)后面。

-D -delete
从所选链中删除一条或更多规则。这条命令可以有两种方法:可以把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则。

-R -replace
从选中的链中取代一条规则。如果源(地址)或者/与 目的(地址)被转换为多地址,该命令会失败。规则序号从1开始。

-I -insert
根据给出的规则序号向所选链中插入一条或更多规则。所以,如果规则序号为1,规则会被插入链的头部。这也是不指定规则序号时的默认方式。

-L -list
显示所选链的所有规则。如果没有选择链,所有链将被显示。也可以和z选项一起使用,这时链会被自动列出和归零。精确输出受其它所给参数影响。

-F -flush
清空所选链。这等于把所有规则一个个的删除。

--Z -zero
把所有链的包及字节的计数器清空。它可以和 -L配合使用,在清空前察看计数器,请参见前文。

-N -new-chain
根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。

-X -delete-chain
删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。


-P -policy
设置链的目标规则。

-E -rename-chain
根据用户给出的名字对指定链进行重命名,这仅仅是修饰,对整个表的结构没有影响。TARGETS参数给出一个合法的目标。只有非用户自定义链可以使用规则,而且内建链和用户自定义链都不能是规则的目标。

-h Help.
帮助。给出当前命令语法非常简短的说明。

PARAMETERS
参数
以下参数构成规则详述,如用于add、delete、replace、append 和 check命令。

-p -protocal [!]protocol
规则或者包检查(待检查包)的协议。指定协议可以是tcp、udp、icmp中的一个或者全部,也可以是数值,代表这些协议中的某一个。当然也可以使用在 /etc/protocols中定义的协议名。在协议名前加上"!"表示相反的规则。数字0相当于所有all。Protocol all会匹配所有协议,而且这是缺省时的选项。在和check命令结合时,all可以不被使用。
-s -source [!] address[/mask]
指定源地址,可以是主机名、网络名和清楚的IP地址。mask说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边"1"的个数,因此, mask值为24等于255.255.255.0。在指定地址前加上"!"说明指定了相反的地址段。标志 --src 是这个选项的简写。

-d --destination [!] address[/mask]
指定目标地址,要获取详细说明请参见 -s标志的说明。标志 --dst 是这个选项的简写。

-j --jump target
-j 目标跳转
指定规则的目标;也就是说,如果包匹配应当做什么。目标可以是用户自定义链(不是这条规则所在的),某个会立即决定包的命运的专用内建目标,或者一个扩展(参见下面的EXTENSIONS)。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加。

-i -in-interface [!] [name]
i -进入的(网络)接口 [!][名称]
这是包经由该接口接收的可选的入口名称,包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。当在接口名前使用"!"说明后,指的是相反的名称。如果接口名后面加上"+",则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配任意接口。

-o --out-interface [!][name]
-o --输出接口[名称]
这是包经由该接口送出的可选的出口名称,包通过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)。当在接口名前使用"!" 说明后,指的是相反的名称。如果接口名后面加上"+",则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配所有任意接口。

[!] -f, --fragment
[!] -f --分片
这意味着在分片的包中,规则只询问第二及以后的片。自那以后由于无法判断这种把包的源端口或目标端口(或者是ICMP类型的),这类包将不能匹配任何指定对他们进行匹配的规则。如果"!"说明用在了"-f"标志之前,表示相反的意思。

OTHER OPTIONS
其他选项
还可以指定下列附加选项:

-v --verbose
-v --详细
详细输出。这个选项让list命令显示接口地址、规则选项(如果有)和TOS(Type of Service)掩码。包和字节计数器也将被显示,分别用K、M、G(前缀)表示1000、1,000,000和1,000,000,000倍(不过请参看-x标志改变它),对于添加,插入,删除和替换命令,这会使一个或多个规则的相关详细信息被打印。

-n --numeric
-n --数字
数字输出。IP地址和端口会以数字的形式打印。默认情况下,程序试显示主机名、网络名或者服务(只要可用)。

-x -exact
-x -精确
扩展数字。显示包和字节计数器的精确值,代替用K,M,G表示的约数。这个选项仅能用于 -L 命令。

--line-numbers
当列表显示规则时,在每个规则的前面加上行号,与该规则在链中的位置相对应。

MATCH EXTENSIONS
对应的扩展
iptables能够使用一些与模块匹配的扩展包。以下就是含于基本包内的扩展包,而且他们大多数都可以通过在前面加上!来表示相反的意思。

tcp
当 --protocol tcp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载。它提供以下选项:

--source-port [!] [port[:port]]
源端口或端口范围指定。这可以是服务名或端口号。使用格式端口:端口也可以指定包含的(端口)范围。如果首端口号被忽略,默认是"0",如果末端口号被忽略,默认是"65535",如果第二个端口号大于第一个,那么它们会被交换。这个选项可以使用 --sport的别名。

--destionation-port [!] [port:[port]]
目标端口或端口范围指定。这个选项可以使用 --dport别名来代替。

--tcp-flags [!] mask comp
匹配指定的TCP标记。第一个参数是我们要检查的标记,一个用逗号分开的列表,第二个参数是用逗号分开的标记表,是必须被设置的。标记如下:SYN ACK FIN RST URG PSH ALL NONE。因此这条命令:iptables -A FORWARD -p tcp --tcp-flags SYN, ACK, FIN, RST SYN只匹配那些SYN标记被设置而ACK、FIN和RST标记没有设置的包。

[!] --syn
只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求;例如,大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接,而出去的TCP连接不会受到影响。这等于 --tcp-flags SYN, RST, ACK SYN。如果"--syn"前面有"!"标记,表示相反的意思。

--tcp-option [!] number
匹配设置了TCP选项的。

udp
当protocol udp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载,它提供以下选项:

--source-port [!] [port:[port]]
源端口或端口范围指定。详见 TCP扩展的--source-port选项说明。

--destination-port [!] [port:[port]]
目标端口或端口范围指定。详见 TCP扩展的--destination-port选项说明。

icmp
当protocol icmp被指定,且其他匹配的扩展未被指定时,该扩展被装载。它提供以下选项:
--icmp-type [!] typename
这个选项允许指定ICMP类型,可以是一个数值型的ICMP类型,或者是某个由命令iptables -p icmp -h所显示的ICMP类型名。

mac
--mac-source [!] address
匹配物理地址。必须是XX:XX:XX:XX:XX这样的格式。注意它只对来自以太设备并进入PREROUTING、FORWORD和INPUT链的包有效。

limit
这个模块匹配标志用一个标记桶过滤器一一定速度进行匹配,它和LOG目标结合使用来给出有限的登陆数.当达到这个极限值时,使用这个扩展包的规则将进行匹配.(除非使用了"!"标记)

--limit rate
最大平均匹配速率:可赋的值有'/second', '/minute', '/hour', or '/day'这样的单位,默认是3/hour。

--limit-burst number
待匹配包初始个数的最大值:若前面指定的极限还没达到这个数值,则概数字加1.默认值为5

multiport
这个模块匹配一组源端口或目标端口,最多可以指定15个端口。只能和-p tcp 或者 -p udp 连着使用。

--source-port [port[, port]]
如果源端口是其中一个给定端口则匹配

--destination-port [port[, port]]
如果目标端口是其中一个给定端口则匹配

--port [port[, port]]
若源端口和目的端口相等并与某个给定端口相等,则匹配。
mark
这个模块和与netfilter过滤器标记字段匹配(就可以在下面设置为使用MARK标记)。

--mark value [/mask]
匹配那些无符号标记值的包(如果指定mask,在比较之前会给掩码加上逻辑的标记)。

owner
此模块试为本地生成包匹配包创建者的不同特征。只能用于OUTPUT链,而且即使这样一些包(如ICMP ping应答)还可能没有所有者,因此永远不会匹配。

--uid-owner userid
如果给出有效的user id,那么匹配它的进程产生的包。

--gid-owner groupid
如果给出有效的group id,那么匹配它的进程产生的包。

--sid-owner seessionid
根据给出的会话组匹配该进程产生的包。

state
此模块,当与连接跟踪结合使用时,允许访问包的连接跟踪状态。

--state state
这里state是一个逗号分割的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接,ESTABLISHED表示是双向传送的连接,NEW表示包为新的连接,否则是非双向传送的,而RELATED表示包由新连接开始,但是和一个已存在的连接在一起,如FTP数据传送,或者一个ICMP错误。

unclean
此模块没有可选项,不过它试着匹配那些奇怪的、不常见的包。处在实验中。

tos
此模块匹配IP包首部的8位tos(服务类型)字段(也就是说,包含在优先位中)。

--tos tos
这个参数可以是一个标准名称,(用iptables -m tos -h 察看该列表),或者数值。

TARGET EXTENSIONS
iptables可以使用扩展目标模块:以下都包含在标准版中。

LOG
为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。
--log-level level
记录级别(数字或参看 syslog.conf(5))。
--log-prefix prefix
在纪录信息前加上特定的前缀:最多14个字母长,用来和记录中其他信息区别。

--log-tcp-sequence
记录TCP序列号。如果记录能被用户读取那么这将存在安全隐患。

--log-tcp-options
记录来自TCP包头部的选项。
--log-ip-options
记录来自IP包头部的选项。

MARK
用来设置包的netfilter标记值。只适用于mangle表。

--set-mark mark

REJECT
作为对匹配的包的响应,返回一个错误的包:其他情况下和DROP相同。

此目标只适用于INPUT、FORWARD和OUTPUT链,和调用这些链的用户自定义链。这几个选项控制返回的错误包的特性:

--reject-with type
Type 可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port-nreachable、icmp- proto-unreachable、 icmp-net-prohibited 或者 icmp-host-prohibited,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。选项 echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。最后,选项tcp-reset可以用于在INPUT链中,或自INPUT链调用的规则,只匹配TCP协议:将回应一个TCP RST包。
TOS
用来设置IP包的首部八位tos。只能用于mangle表。

--set-tos tos
你可以使用一个数值型的TOS 值,或者用iptables -j TOS -h 来查看有效TOS名列表。
MIRROR
这是一个试验示范目标,可用于转换IP首部字段中的源地址和目标地址,再传送该包,并只适用于INPUT、FORWARD和OUTPUT链,以及只调用它们的用户自定义链。

SNAT
这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查,它包含选项:

--to-source [-][:port-port]
可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,源端口中512以下的(端口)会被安置为其他的512以下的端口;512到1024之间的端口会被安置为1024 以下的,其他端口会被安置为1024或以上。如果可能,端口不会被修改。

--to-destiontion [-][:port-port]
可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,目标端口不会被修改。

MASQUERADE
只用于nat表的POSTROUTING链。只能用于动态获取IP(拨号)连接:如果你拥有静态IP地址,你要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像,当接口关闭连接会终止。这是因为当下一次拨号时未必是相同的接口地址(以后所有建立的连接都将关闭)。它有一个选项:

--to-ports [-port>]
指定使用的源端口范围,覆盖默认的SNAT源地址选择(见上面)。这个选项只适用于指定了-p tcp或者-p udp的规则。

REDIRECT
只适用于nat表的PREROUTING和OUTPUT链,和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1)。它包含一个选项:

--to-ports []
指定使用的目的端口或端口范围:不指定的话,目标端口不会被修改。只能用于指定了-p tcp 或 -p udp的规则。

DIAGNOSTICS
诊断
不同的错误信息会打印成标准错误:退出代码0表示正确。类似于不对的或者滥用的命令行参数错误会返回错误代码2,其他错误返回代码为1。

BUGS
臭虫
Check is not implemented (yet).
检查还未完成。

COMPATIBILITY WITH IPCHAINS
与ipchains的兼容性
iptables 和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的一个;以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口;-o引用输出接口,两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用默认过滤器表时,iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和包过滤结合使用的混淆,所以以下选项作了不同的处理:
-j MASQ
-M -S
-M -L
在iptables中有几个不同的链

Linux的时间设置与同步 (NTP)

Linux的时间设置与同步 (NTP)
Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来和大家分享
设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法
和上次一样,下面的实验都在RHEL5上运行
1. 时间和时区
如果有人问你说现在几点? 你看了看表回答他说晚上8点了. 这样回答看上去没有什么问题,但是如果问你的这个人在欧洲的话那么你的回答就会让他很疑惑,因为他那里还太阳当空呢.
这里就有产生了一个如何定义时间的问题.
因为在地球环绕太阳旋转的24个小时中,世界各地日出日落的时间是不一样的.所以我们才有划分时区(timezone)
的必要,也就是把全球划分成24个不同的时区. 所以我们可以把时间的定义理解为一个时间的值加上所在地的时区(注意这个所在地可以精确到城市)
地理课上我们都学过格林威治时间(GMT), 它也就是0时区时间. 但是我们在计算机中经常看到的是UTC. 它是Coordinated
Universal Time的简写.
虽然可以认为UTC和GMT的值相等(误差相当之小),但是UTC已经被认定为是国际标准,所以我们都应该遵守标准只使用UTC
那么假如现在中国当地的时间是晚上8点的话,我们可以有下面两种表示方式
20:00 CST
12:00 UTC
这里的CST是Chinese Standard Time,也就是我们通常所说的北京时间了. 因为中国处在UTC+8时区,依次类推那么也就是12:00 UTC了.
为什么要说这些呢(呵呵这里不是地理论坛吧...)?
第一,不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出UTC+0的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作
第二,很多国家都有夏令时(我记得小时候中国也实行过一次),那就是在一年当中的某一天时钟拨快一小时(比如从UTC+8一下变成UTC+9了),那么同理到时候还要再拨慢回来.如果我们设置了正确的时区,当需要改变时间的时候系统就会自动替我们调整
现在我们就来看一下如何在Linux下设置时区,也就是time zone
2. 如何设置Linux Time Zone
在Linux下glibc提供了我们事先编译好的许多timezone文件, 他们就放在/usr/share/zoneinfo这个目录下,这里基本涵盖了大部分的国家和城市
代码:
# ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GB Indian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire Iran MST PRC UTC
Arctic/ EET GMT iso3166.tab MST7MDT PST8PDT WET
Asia/ Egypt GMT0 Israel Navajo right/ W-SU
Atlantic/ Eire GMT-0 Jamaica NZ ROC zone.tab
Australia/ EST GMT+0 Japan NZ-CHAT ROK Zulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong Libya Poland Turkey
CET Europe/ HST MET Portugal UCT
在这里面我们就可以找到自己所在城市的time zone文件. 那么如果我们想查看对于每个time zone当前的时间我们可以用zdump命令
代码:
# zdump Hongkong
Hongkong Fri Jul 6 06:13:57 2007 HKT
那么我们又怎么来告诉系统我们所在time zone是哪个呢? 方法有很多,这里举出两种
第一个就是修改/etc/localtime这个文件,这个文件定义了我么所在的local time zone.
我们可以在/usr/share/zoneinfo下找到我们的time zone文件然后拷贝去到/etc/localtimezone(或者做个symbolic link)
假设我们现在的time zone是BST(也就是英国的夏令时间,UTC+1)
代码:
# date
Thu Jul 5 23:33:40 BST 2007
我们想把time zone换成上海所在的时区就可以这么做
代码:
# ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2007
这样时区就改过来了(注意时间也做了相应的调整)
第二种方法也就设置TZ环境变量的值. 许多程序和命令都会用到这个变量的值. TZ的值可以有多种格式,最简单的设置方法就是使用tzselect命令
代码:
# tzselect
...
TZ='America/Los_Angeles';export TZ
tzselect会让你选择所在的国家和城市(我省略了这些步骤),最后输出相应的TZ变量的值.那么如果你设置了TZ的值之后时区就又会发生变化
代码:
# date
Thu Jul 5 15:48:11 PDT 2007
通过这两个例子我们也可以发现TZ变量的值会override /etc/localtime.
也就是说当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone. 所以你想永久修改time
zone的话那么可以把TZ变量的设置写入/etc/profile里
好了现在我们知道怎么设置时区了,下面我们就来看看如何设置Linux的时间吧
3. Real Time Clock(RTC) and System Clock
说道设置时间这里还要明确另外一个概念就是在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)
硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因
系统时钟就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值 在Linux下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了
那么既然两个时钟独自运行,那么时间久了必然就会产生误差了,下面我们来看一个例子
代码:
# date
Fri Jul 6 00:27:13 BST 2007
# hwclock --show
Fri 06 Jul 2007 12:27:17 AM BST -0.968931 seconds
通过hwclock --show命令我们可以查看机器上的硬件时间(always in local time zone), 我们可以看到它和系统时间还是有一定的误差的, 那么我们就需要把他们同步
如果我们想要把硬件时间设置成系统时间我们可以运行以下命令
代码:
# hwclock --hctosys
反之,我们也可以把系统时间设置成硬件时间
代码:
# hwclock --systohc
那么如果想设置硬件时间我们可以开机的时候在BIOS里设定.也可以用hwclock命令
代码:
# hwclock --set --date="mm/dd/yy hh:mm:ss"
如果想要修改系统时间那么用date命令就最简单了
代码:
# date -s "dd/mm/yyyy hh:mm:ss"
现在我们知道了如何设置系统和硬件的时间. 但问题是如果这两个时间都不准确了怎么办?
那么我们就需要在互联网上找到一个可以提供我们准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP了.
注意接下去我们所要说的同步就都是指系统时间和网络服务器之间的同步了

4. 设置NTP Server前的准备
其实这个标题应该改为设置"NTP Relay Server"前的准备更加合适.
因为不论我们的计算机配置多好运行时间久了都会产生误差,所以不足以给互联网上的其他服务器做NTP Server.
真正能够精确地测算时间的还是原子钟. 但由于原子钟十分的昂贵,只有少部分组织拥有, 他们连接到计算机之后就成了一台真正的NTP Server.
而我们所要做的就是连接到这些服务器上同步我们系统的时间,然后把我们自己的服务器做成NTP Relay
Server再给互联网或者是局域网内的用户提供同步服务
好了,前面讲了一大堆理论,现在我们来动手实践一下吧. 架设一个NTP Relay Server其实非常简单,我们先把需要的RPM包装上
代码:
# rpm -ivh ntp-4.2.2p1-5.el5.rpm
那么第一步我们就要找到在互联网上给我们提供同步服务的NTP Server
http://www.pool.ntp.org
是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server
那么比如在英国的话就可以选择下面两个服务器
0.uk.pool.ntp.org
1.uk.pool.ntp.org
它的一般格式都是number.country.pool.ntp.org
第二步要做的就是在打开NTP服务器之前先和这些服务器做一个同步,使得我们机器的时间尽量接近标准时间. 这里我们可以用ntpdate命令
代码:
# ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
# ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec
假如你的时间差的很离谱的话第一次会看到调整的幅度比较大,所以保险起见可以运行两次. 那么为什么在打开NTP服务之前先要手动运行同步呢?
1. 因为根据NTP的设置,如果你的系统时间比正确时间要快的话那么NTP是不会帮你调整的,所以要么你把时间设置回去,要么先做一个手动同步
2. 当你的时间设置和NTP服务器的时间相差很大的时候,NTP会花上较长一段时间进行调整.所以手动同步可以减少这段时间
5. 配置和运行NTP Server
现在我们就来创建NTP的配置文件了, 它就是/etc/ntp.conf. 我们只需要加入上面的NTP Server和一个driftfile就可以了
代码:
# vi /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
非常的简单. 接下来我们就启动NTP Server,并且设置其在开机后自动运行
代码:
# /etc/init.d/ntpd/start
# chkconfig --level 35 ntpd on
6. 查看NTP服务的运行状况
现在我们已经启动了NTP的服务,但是我们的系统时间到底和服务器同步了没有呢? 为此NTP提供了一个很好的查看工具: ntpq (NTP query)
我建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里我们可以使用watch命令来查看一段时间内服务器各项数值的变化
代码:
# watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:45 2007
remote refid st t when poll reach delay offset jitter
==============================================================================
+193.60.199.75 193.62.22.98 2 u 52 64 377 8.578 10.203 289.032
*mozart.musicbox 192.5.41.41 2 u 54 64 377 19.301 -60.218 292.411
现在我就来解释一下其中的含义
remote: 它指的就是本地机器所连接的远程NTP服务器
refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
st: 远程服务器的级别. 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
t: 这个.....我也不知道啥意思^_^
when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小
reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
delay: 从本地机发送同步要求到服务器的round trip time
offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确
那么大家细心的话就会发现两个问题: 第一我们连接的是0.uk.pool.ntp.org为什么和remote server不一样? 第二那个最前面的+和*都是什么意思呢?
第一个问题不难理解,因为NTP提供给我们的是一个cluster server所以每次连接的得到的服务器都有可能是不一样.同样这也告诉我们了在指定NTP Server的时候应该使用hostname而不是IP
第二个问题和第一个相关,既然有这么多的服务器就是为了在发生问题的时候其他的服务器还可以正常地给我们提供服务.那么如何知道这些服务器的状态呢? 这就是第一个记号会告诉我们的信息
*
它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+
它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
-
远程服务器被clustering algorithm认为是不合格的NTP Server
x
远程服务器不可用
了解这些之后我们就可以实时监测我们系统的时间同步状况了

7. NTP安全设置
运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的
那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间
在/etc/ntp.conf文件中我们可以用restrict关键字来配置上面的要求
首先我们对于默认的client拒绝所有的操作
代码:
restrict default kod nomodify notrap nopeer noquery
然后允许本机地址一切的操作
代码:
restrict 127.0.0.1
最后我们允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
代码:
restrict 192.168.1.0 mask 255.255.255.0 nomodify
把这三条加入到/etc/ntp.conf中就完成了我们的简单配置. NTP还可以用key来做authenticaiton,这里就不详细介绍了
8. NTP client的设置
做到这里我们已经有了一台自己的Relay
Server.如果我们想让局域网内的其他client都进行时间同步的话那么我们就都应该照样再搭建一台Relay
Server,然后把所有的client都指向这两台服务器(注意不要把所有的client都指向Internet上的服务器).
只要在client的ntp.conf加上这你自己的服务器就可以了
代码:
server ntp1.leonard.com
server ntp2.leonard.com

9. 一些补充和拾遗
1. 配置文件中的driftfile是什么?
我们每一个system clock的频率都有小小的误差,这个就是为什么机器运行一段时间后会不精确.
NTP会自动来监测我们时钟的误差值并予以调整.但问题是这是一个冗长的过程,所以它会把记录下来的误差先写入driftfile.这样即使你重新开机以
后之前的计算结果也就不会丢失了
2. 如何同步硬件时钟?
NTP一般只会同步system clock. 但是如果我们也要同步RTC的话那么只需要把下面的选项打开就可以了
代码:
# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
10. 参考资料
1.
http://www.freebsd.org/cgi/man.cgi?q...conf&sektion=5

不知为什么Redhat没有ntp.conf的man page.费了好大劲才从FreeBSD上找到了.
2.
http://www.eecis.udel.edu/~mills/ntp/html/index.html
官方的NTP文档
3.
http://tldp.org/HOWTO/TimePrecision-HOWTO/index.html
The Linux Documentation Project上的NTP HOWTO
4.
www.pool.ntp.org/
全球NTP服务器提供站

2008年3月19日星期三

How to download and convert YouTube video to MPG/AVI in Ubuntu?

How to download and convert YouTube video to MPG/AVI in Ubuntu?

Every once in a while, you may come across some videos on YouTube-the popular free video sharing service. You may enjoy the videos more or less but sometimes, just sometimes, you come across a video you really need to have on your hard drive and to watch over and over again, every time you feel the need. Unfortunately, YouTube seems to discourage its users from downloading the videos. This can get rather annoying because you'll need to save a bookmark with the video url, load it in your browser every time you want to re-watch it, wait until it's loaded and so on. So why get through all this trouble, when you can easily download the file in Flash Video format (FLV), convert it into mpeg4 or xvid video with mp3 audio and watch it on your PC or even on your mobile phone?

However, the standard ffmpeg package is pretty useless since it doesn't offer support for mp3 so you'll have to go through a painful process first in order to encode your videos with mp3 audio. Before we start, your Ubuntu system needs to have the c compilers, patch tools and standard devel packages installed. It also needs to have multiverse and universe repositories enabled. And to make things easier, you'll need to have a password on the root account. As this is the easiest part, we'll start with it. Open a terminal and type:

CODE

$ sudo passwd root

Enter a password and switch to the super user account by typing:

CODE

$ su -

You will now have a super user bash terminal (#). Copy the following command and paste it into the super user terminal to install the needed libraries:

CODE

# apt-get install quilt libsdl1.2-dev libogg-dev libvorbis-dev liba52-dev libdts-dev libimlib2-dev texi2html libraw1394-dev libdc1394-13-dev libtheora-dev libgsm1-dev liblame-dev libxvidcore4-dev libfaac-dev libfaad2-dev

Go to a build directory. Since you're logged in as root, use the default build directory:

CODE

# cd /usr/local/src

Now get the ffmpeg source package:

CODE

# apt-get source ffmpeg

Get the patches for ffmpeg and apply them. Click HERE and save the file in /usr/local/src/:

CODE

# cd ffmpeg-0.cvs20060823
# bzcat ../ffmpeg-0.cvs20060823_enable_amr.patch.bz2 | patch -p1

You should see something like:

CODE

root:/usr/local/src/ffmpeg-0.cvs20060823# bzcat ../ffmpeg-0.cvs20060823_enable_amr.patch.bz2 | patch -p1
patching file debian/rules
patching file libavcodec/amr_float/decoder.c
patching file libavcodec/amr_float/encoder.c
patching file libavcodec/amr_float/interf_dec.c
patching file libavcodec/amr_float/interf_dec.h
patching file libavcodec/amr_float/interf_enc.c
etc..

Now build the deb packages:

CODE

# DEB_BUILD_OPTIONS="risky" dpkg-buildpackage

Go back to the src directory and install the resulting deb packages:

CODE

# cd ..
# dpkg -i ffmpeg_0.cvs20060823-3.1ubuntu1_i386.deb libavcodec0d_0.cvs20060823-3.1ubuntu1_i386.deb libavformat0d_0.cvs20060823-3.1ubuntu1_i386.deb libpostproc0d_0.cvs20060823-3.1ubuntu1_i386.deb

Open /etc/apt/preferences using your favorite text editor and add the following lines:

CODE

Package: ffmpeg Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001
Package: libavcodec0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001
Package: libavformat0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001
Package: libpostproc0d Pin: version 0.cvs20060823-3.1ubuntu1 Pin-Priority: 1001

Get the youtube-dl script which allows you to download YouTube movies in flv format, to your hard drive. Click HERE and download the youtube-dl script anywhere on your hard drive. Now, from the root termina, run these commands to make the script available for all users on the Ubuntu machine:

CODE

# cd /where/you/downloaded/the/script
# chmod +x youtube-dl
# mv youtube-dl /usr/local/bin

Download movies from YouTube by using the script:

CODE

$ youtube-dl youtube.http.address.while.viewing.video

The movie will be saved to something like I_KRmU2dO2M.flv

Finally, convert .FLV files into MPEG:

CODE

ffmpeg -i I_KRmU2dO2M.flv -ab 56 -ar 22050 -b 500 -s 320x240 video.mpg

Convert .FLV into XviD .AVI with MP3 Audio:

CODE

ffmpeg -i I_KRmU2dO2M.flv -ab 56 -ar 22050 -b 500 -s 320x240 -vcodec xvid -acodec mp3 video.avi

Enjoy!

2008年3月7日星期五

Debian学习 Linux安装压缩包大全

Debian学习 Linux安装压缩包大全

http://server.ctocio.com.cn/tips/197/7433697.shtml

作者: 论坛,  出处:IT专家网, 责任编辑: 邵海宏, 
2007-07-13 10:04
  deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
.tar

解包: tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

---------------------------------------------

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

---------------------------------------------

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

---------------------------------------------

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

---------------------------------------------

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

---------------------------------------------

.tgz

解压:tar zxvf FileName.tgz

压缩:未知

.tar.tgz

解压:tar zxvf FileName.tar.tgz

压缩:tar zcvf FileName.tar.tgz FileName

---------------------------------------------

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

---------------------------------------------

.rar

解压:rar a FileName.rar

压缩:r ar e FileName.rar



rar请到:http://www.rarsoft.com/download.htm 下载!

解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp rar_static /usr/bin/rar

---------------------------------------------

.lha

解压:lha -e FileName.lha

压缩:lha -a FileName.lha FileName



lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!

>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp lha /usr/bin/

---------------------------------------------

.rpm

解包:rpm2cpio FileName.rpm | cpio -div

---------------------------------------------

.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp

.arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar

.cpt .pit .sit .sea

解压:sEx x FileName.*

压缩:sEx a FileName.* FileName

Debian 应用手记

Debian 应用手记
last modified 2007-09-06 11:30

Debian中常用的设置和应用程序安装尽在其中,对新用户来说,不可多得!

Debian应用手记
2006年9月12日 20:52:01
========================================================================
声明:
1.本文档任何人可以任意使用,但本人不承担因此而造成的任何后果。
2.本文档所记录的信息绝大部分来自google抓来的信息,向与之相关的所有劳动表示感谢。
========================================================================


01.安装最小系统
02.安装基本的X系统
03.安装GNOME桌面环境
04.安装字体
05.配置locales
06.安装配置nvidia显卡GeForce4 MX
07.字体美化
08.配置GTK+程序的打开文件窗口字体编码为GBK
09.配置GTK+1.x程序使用的字体
10.配置GTK+2.0程序使用的字体
11.配置GTK+2.x程序使用的字体
12.安装中文输入法scim/fcitx
13.安装压缩解压缩软件zip/unzip/unrar
14.安装配置局域网内的资源共享samba/smbclient
15.配置ftp服务器
16.安装ftp工具wget/lftp/gftp
17.配置CVS
18.安装配置中文Latex
19.安装Latex前端texmaker
20.聊天软件gaim
21.安装音频播放器xmms
22.用totem播放全部格式的视频文件
23.用xCHM看.chm格式文件
24.安装gs/pdf文件阅读器
25.配置远程登录(可以从其它机器远程登录到我的 Debian,也可以反过来)
26.安装bbs客户端软件qterm
27.安装星际译王
28.安装科学绘图软件gnuplot/labplot
29.安装命令行界面的科学计算软件octave
30.安装图形界面的科学计算软件scilab
31.安装通用图形图像软件dia/gthumb/gimp/gtkam/scrot
32.安装firefox
33.安装P2P下载软件amule
34.安装项目管理软件planner
35.安装配置电子邮件客户端Evolution
36.保存GNOME桌面环境中声卡的音量设置
37.安装java
38.安装jabref
39.用qmue安装windows2000
40.安装网络打印机
41.安装gnumeric电子表格
42.配置中文emacs21
43.安装openoffice套件
44.安装单片机开发软件SDCC
45.安装电路图/电路板工具geda/kicad
46.安装指定版本的软件
47.降级指定软件的版本号
48.制作iso文件
49.常用的压缩、解压缩操作
50.配置网卡
51.安装Cadence-Allegro-SPB-v15.5



========================================================================
01.安装最小系统
从网上下载Debian-stable网络安装光盘映像文件(.iso文件),刻录后,从光盘引导机器,
Choose language: English->other->China
Select a keyboard layout: American English
配置网卡
手动分区(80G hard-disk):boot(32.0MB), swap(512.0MB), /(6.0GB), /opt(15.0GB),/home(余下的全部空间)
(如果是重新安装系统,则保留 /opt, /home 不格式化,只格式化其它分区),
将改动写入磁盘后,
加载网络APT源后,提示“Choose software to install”时,什么都不选以安装最小系统。

如果机器还有windows的话,会给出提示,
将grub安装在mbr,

# nano /etc/apt/sources.list
去掉光盘源,最后可能是这样的:

deb http://debian.cn99.com/debian/ stable main
deb-src http://debian.cn99.com/debian/ stable main


#deb http://ftp.hk.debian.org/debian stable main
#deb-src http://ftp.hk.debian.org/debian stable main


deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main

然后运行
# aptitude update
# aptitude upgrade

# nano /etc/apt/sources.list
将源中的stable换成testing,并增加non-free contrib:

deb http://debian.cn99.com/debian/ testing main non-free contrib
deb-src http://debian.cn99.com/debian/ testing main non-free contrib


#deb http://ftp.hk.debian.org/debian testing main non-free contrib
#deb-src http://ftp.hk.debian.org/debian testing main non-free contrib


deb http://security.debian.org/ testing/updates main non-free contrib
deb-src http://security.debian.org/ testing/updates main non-free contrib


然后运行
# aptitude update
# aptitude dist-upgrade
# reboot

安装最新的kernel
# aptitude search linux-image | more
选一个适合自己机器的、最新的image装上,并将相应的linux-headers-?安装上,
# reboot
选择最新的image
根据自己kernel-image用的gcc版本,安装相应版本的gcc,
我的是
# aptitude install gcc-4.0
修改/usr/bin/目录下的gcc/gccbug的链接,使其指向kernel所用版本的gcc


========================================================================
02.安装基本的X系统
# aptitude install x-window-system-core


========================================================================
03.安装GNOME桌面环境
# aptitude install gnome-core gdm xscreensaver


========================================================================
04.安装字体
# cd /usr/share/fonts/truetype/
# mkdir ttf-fonts (要确认所有用户都有rx该目录的权限)
# cd ./ttf-fonts
# cp your-ttf-fonts ./ (for example: simsun.ttf)
# mkfontscale
不知道为什么,没有gbk字体,所以做如下操作:
# nano ./fonts.scale
在每一种字体的描述后面新增一行,该行以“gbk-0”结尾(不包括引号),并且将文件第一行的数值加“1”

# mkfontdir (因为fonts.dir文件与fonts.scale文件相同,所以可以:cp fonts.scale fonts.dir)

# nano /etc/X11/xorg.conf
Section "Files"
FontPath "/usr/share/fonts/truetype/ttf-fonts"
EndSection

xlsfonts 命令可以列出系统字体。


========================================================================
05.配置locales
# dpkg-reconfigure locales
选中下列选项:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8

选择缺省字符集为zh_CN.GBK。


========================================================================
06.安装配置nvidia显卡GeForce4 MX
下载NVIIDA-Linux-x86-1.0-8762-pkg1.run
从grub的启动画面可以看到系统的kernel版本编号,
我的是: 2.6.15-1-486
然后在终端中运行:
# aptitude install gcc make(确保编译内核的gcc与系统安装的gcc版本要一致)
# aptitude install linux-headers-2.6.15-1-486
# sh NVIDIA-Linux-x86-1.0-8762-pkg1.run --kernel-source-path=/usr/src/linux-headers-2.6.15-1-486

==/etc/X11/XF86Config-4
ln -s /usr/X11R6/lib/modules/drivers/nvidia_drv.o /usr/lib/xorg/modules/drivers/nvidia_drv.o
ln -s /usr/X11R6/lib/modules/drivers/nvidia_drv.so /usr/lib/xorg/modules/drivers/nvidia_drv.so
mv /usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so-old (for backup purpose only)
ln -s /usr/X11R6/lib/modules/extensions/libglx.so.1.0.8762 /usr/lib/xorg/modules/extensions/libglx.so


========================================================================
07.字体美化
$ gedit ~/.fonts.conf









10


20


false






zh-tw
zh-cn
ja
ko


proportional


false






========================================================================
8.配置GTK+程序的打开文件窗口字体编码为GBK
$ gedit ~/.gnomerc
在文件末尾加入下面几行
# 配置GTK+程序的打开文件窗口字体编码为GBK
export G_FILENAME_ENCODING=GBK


========================================================================
09.配置GTK+1.x程序使用的字体
# cp /etc/gtk/gtkrc.zh_CN /etc/gtk/gtkrc.zh_CN.old && gedit /etc/gtk/gtkrc.zh_CN
内容如下:
# $(gtkconfigdir)/gtkrc.zh_CN
#
# This file defines the fontsets for Chinese language (zh) using
# the simplified chinese standard GuoBiao as in mainland China (CN)
#
# 1999, Pablo Saratxaga
#

# GTK+1.x中文使用simsun字体,英文使用adobe字体。
style "gtk-default-zh-cn" {
fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-*-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"


========================================================================
10.配置GTK+2.0程序使用的字体
$ gedit ~/.gnomerc
在文件末尾加入下面几行
# GTK+2.0程序使用Xft
export GDK_USE_XFT=1


========================================================================
11.配置GTK+2.x程序使用的字体
GTK+2.x程序字体配置可通过gnome桌面系统提供的gnome-font-properties工具来配置,该工具可在GNOME桌面环境中的"桌面"--"首选项"--"字体"中找到。


========================================================================
12.安装中文输入法scim/fcitx
.1 fcitx
# aptitude install fcitx
$ gedit ~/.gnomerc
加入下面几行
# fcitx输入法
export XIM_PROGRAM=fcitx
export XIM=fcitx
export XMODIFIERS="@im=fcitx"
fcitx&

注销,重新登录,即可用 "Control-Space" 切换输入法了。如果fcitx不能显示中文(汉字都成了小方块),设置 ~/.fcitx/config 的第一行“显示字体(中)=simsun”,注销后重新登录就可以了。

====================
scim:
su root
$sudo apt-get install scim scim-gtk2-immodule scim-chinese scim-tables-zh
$sudo sh -c " echo 'export XMODIFIERS=@im=SCIM ; export GTK_IM_MODULE="scim" ; scim -d ' > /etc/X11/Xsession.d/95xinput "
$sudo chmod +755 /etc/X11/Xsession.d/95xinput


========================================================================
13.安装压缩解压缩软件zip/unzip/unrar
# aptitude install bzip2 zip unzip unrar


========================================================================
14.安装配置局域网内的资源共享samba/smbclient
# aptitude install samba smbclient smbfs
samba 是服务器软件包,smbclient是客户端软件包,可选安装。Samba服务器的配置文件叫smb.conf,位于/etc/samba/目录下。在 /usr/share/samba/目录下也有一个smb.conf文件备份,如果你在配置服务器时把 /etc/samba/smb.conf改乱了,就可以用该文件来恢复到初始状态。启动脚本位于/etc/init.d/目录下,叫samba,如果修改了smb.conf配置文件,可用 samba restart命令重启Samba服务器。
/etc/default/samba文件可设置samba服务器的启动方式,是daemons还是inetd,默认的设置是采用daemons方式的:

关闭服务器可用smbcontrol这个程序。命令格式如下:

# smbcontrol smbd shutdown

在系统中创建share用户用于局域网内共享
# adduser share

第一步:从自己的 Debian 查看局域网内的其它机器
.1 su share
.2 从Debian查看网上邻居:
smbclient -N -L ip_address_my_own_pc | more
例如: smbclient -N -L 10.1.7.92 | more
.3 从Debian查看windows的共享资源:
smbclient -L hostname(or ip address) -U username
例如: smbclient -L 10.1.7.100 -U ome
smbclient -L omeprint -U ome
.4 从Debian连接windows的共享资源:
smbclient \\\\hostname(or ip address)\\sharename -U username
例如: smbclient \\\\10.1.7.100\\ome -U ome
smbclient \\\\omeprint\\ome -U ome
.5 安装windows的共享资源到Debian :
smbmount \\\\hostname(or ip address)\\sharename /home/share -o username=share-user-name,password=password-for-share-user-name
例如: smbmount \\\\10.1.7.100\\ome /home/share -o username=ome,password=omelab
smbmount \\\\omeprint\\ome /home/share -o username=ome,password=omelab
.6 卸载windows的共享资源 :
退出所有与该共享有关的应用程序,然后:
smbumount /home/share
如果提示Device or resource busy, 则:
su root
/etc/init.d/fam stop
/etc/init.d/fam restart
smbumount /home/share

第二步:从局域网内其它机器查看自己的Debian
1 创建密码文件
# touch /etc/samba/smbpasswd

2 增加samba用户
# smbpasswd -a share

3 删除samba用户
# smbpasswd -x share

[Note]
samba的用户名必须与Linux系统的用户名一致,但密码可以不同。用户登录Sabma服务器时的密码是使用sabpasswd程序设置的密码。

3 # gedit /etc/samba/smb.conf
去掉 ########## Domains ########### 前面的"+"
更改 ####### Authentication ####### 段的
security = user
更改 #======================= Share Definitions ======================= 段的
[homes]
browseable = no
writable = yes

4 重启samba
# /etc/init.d/samba restart

5 从一台windows的机器运行
\\huyimin
提示输入帐号、密码时,输入刚才添加的用户和密码,即可。

这样,最基本的Samba服务器就设置好了,在Windows上就可用share用户名访问Samba服务器上的/home/share目录了。


========================================================================
15.配置ftp服务器
# aptitude install vsftpd
# cp /etc/vsftpd.conf /etc/vsftpd.conf.old && gedit /etc/vsftpd.conf
将如下内容拷贝到该文件:
#===========匿名用户相关===========

#接受匿名用户
anonymous_enable=YES

#匿名用户login时不询问口令
no_anon_password=YES

#匿名用户是否可以上传
anon_upload_enable=NO

#匿名用户是否可以新建目录
anon_mkdir_write_enable=NO

#匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等
anon_other_write_enable=NO

#是否修改匿名用户所上传文件的所有权
chown_uploads=YES
#在chown_uploads=YES时,改变上传文件的所有者为root
chown_username=root

#匿名用户登录后的目录
anon_root=/home/ftp

#===========本地用户相关===========

#接受本地用户
local_enable=YES

#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.
local_root=/home/ftp

#可以上传(全局控制).
write_enable=YES

#本地用户上传文件的umask
local_umask=002

#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES

#login时的欢迎信息
ftpd_banner=Welcome to HU Yimin's FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd_welcom_message
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES

#如为YES, 则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户
#将被chroot在登录后所在目录中,无法离开.
chroot_list_enable=YES

#若设置为YES则检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.
#若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!

#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=512000
#本地用户的传输比率(b/s)
local_max_rate=10240000
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES

# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd

#开启tcp_wrappers支持
tcp_wrappers=YES

# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd

# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

.3 # gedit /etc/vsftpd.chroot_list
该文件中的每一行为一用户名,被记录的用户名登录 ftp 后不能更改目录,我在这里设置两个用户(注意不能有前导空格):
anonymous
ftper

.4 # gedit /etc/vsftpd.user_list
该文件中的每一行为一用户名,被记录的用户名可以登录 ftp,我在这里设置两个用户(注意不能有前导空格):
anonymous
ftper

.5 建立login时的欢迎信息
# gedit /etc/vsftpd_welcom_message
==============================================================
Welcome to HU Yimin's FTP service.
Any question, please send email to huyimin.cn@gmail.com.
==============================================================

.6 # groupadd ftp && adduser ftper && gedit /etc/group (在ftp的组名后面加上用户ftper,如果有多个用户则用逗号分开)
# mkdir /home/ftp/download && mkdir /home/ftp/upload && chmod -R 755 /home/ftp && chmod -R 775 /home/ftp/upload && chgrp ftp /home/ftp/upload

.7 重启 ftp 服务
# pkill vsftpd && /usr/sbin/vsftpd &

.8 至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftper的请求.anonymous只能下载,ftper可以下载和上传.他们登录后均在/home/ftp目录下,且无法离开这个目录(被chroot了).ftper可以在/home/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为500kb/s,ftpuser的传输比率为 10mb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.

如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.要让他登录后不能更改目录,则需要将他加入/etc/vsftpd.chroot_list.

接着我们可以在/home/ftp下的各个目录(包括/home/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示.message的内容,你可以在这里面写上欢迎信息或者注意事项等等.

vsFTPd服务器的运行;
/usr/sbin/vsftpd &
vsFTPd服务器是否运行起来;
pgrep vsftpd
vsFTPd 服务器关闭:
pkill vsftpd

查看谁登陆了FTP,并杀死它的进程:
ps -xf | grep ftp
kill 进程号


========================================================================
16.安装ftp工具wget/lftp/gftp
# aptitude install wget lftp gftp
wget/lftp为字符界面的,但是最强、最稳定 (wget -c --tries=0 ftp://---(http://---)文件)
gftp为图形界面的,安装完毕后,在 “应用程序”-->“互联网”下面有其快捷方式。


========================================================================
17.配置CVS
.1, 安装 CVS
# aptitude install cvs

.2, 建立 CVS 用户
# adduser cvs

.3, # more /etc/services | grep cvspserver
确保有以下两行,否则要手动添加:
cvspserver 2401/tcp #CVS client/server operations
cvspserver 2401/udp #CVS client/server operations

.4, 创建CVS仓库
# su cvs
$ cvs -d /home/cvs init

.5, 建立CVS服务启动文件
$ su root
.5.1如果用inetd,
# gedit /etc/inetd.conf
在文件末尾加入下面二行代码(第二行是完整一行,不能分断):
# cvs server
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs pserver

.5.2如果使用xinetd,
# gedit /etc/xinetd.d/cvspserver
将下述代码拷贝进去:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
env = HOME=
server = /home/cvs/cvs.run
log_on_success += USERID
log_on_failure += USERID
only_from = 192.168.0.0/24 #限制用户访问的IP
}

然后gedit /home/cvs/cvs.run
将下述代码拷贝进去:
#!/bin/bash
/usr/bin/cvs -f \
--allow-root=/home/cvs \
pserver

最后chmod +x /home/cvs/cvs.run

.5.3重新启动inetd或xinetd
/etc/init.d/inetd restart 或者 /etc/init.d/xinetd restart 或者重新登录(不知道为什么,我这里要重新启动才行)。

# netstat -l | grep cvspserver
应该看到:
tcp 0 0 *:cvspserver *:* LISTEN

.6, 管理 CVS 用户(不同于系统用户),实现:
cvser 可以读写 /home/cvs
cvsguest 可以读 /home/cvs
# aptitude install apache2

# htpasswd -c /home/cvs/CVSROOT/passwd cvser
# htpasswd /home/cvs/CVSROOT/passwd cvsguest

# gedit /home/cvs/CVSROOT/passwd
在每一行的末尾加上 :cvs
即将 CVS 用户映射到系统用户 cvs

# gedit /home/cvs/CVSROOT/readers
每行一个用户名(行首不能在空格):
cvsguest

# chmod +w /home/cvs/CVSROOT/config && gedit /home/cvs/CVSROOT/config && chmod -w /home/cvs/CVSROOT/config
去掉第二行的 #SystemAuth=no 前面的注释符号 "#",这样 cvs 只认证 cvs 用户而不考虑系统用户。

# chmod -R 775 /home/cvs

至此, CVS 服务器端配置完毕。

.7, 为方便部分 CVS 客户端软件快速找到仓库中的模块,可以在 /CVSROOT/modules 文件中
加入模块索引:
module_alias_name(模块别名,可以是中文) -a module_path(模块的根目录名,最好不要有中文)
如:胡益民的软件库 -a YM-software-lib

.8, 下面在 CVS 客户端操作:
# su ymhu
$ gedit ~/.bashrc
在文件的末尾加上:
# cvs
export CVSROOT=:pserver:cvser@localhost:/home/cvs


重新登录(或运行 source ~/.bashrc)

cd ~
mkdir working
cd working
mkdir cvstest
cd cvstest
cvs login
cvs import -m "新建模块" cvstest huym release_tag
cd ..
rm -R cvstest
cvs checkout cvstest
cvs logout

.9, 配置 web 界面的 CVS 客户端 CVSWEB:
# aptitude install cvsweb
修改CVSWEB的配置文件:
man cvsweb
# gedit /etc/cvsweb/cvsweb.conf
修改$defaulttitle为:$defaulttitle = "HU YiMin's CVS Repository";
修改$address为:$address = ' HU YiMin <huyi
去掉$long_intro

找到 @CVSrepositories = (
参照其下面的代码,将下面一行添加进去:
'cvs-root' => ['YM-cvs-root', '/home/cvs'],
将$charset = '';改成$charset = 'GBK';

现在可以在浏览器中输入下述命令来查看CVS的仓库了:
http://10.1.7.92/cgi-bin/cvsweb/
http://localhost/cgi-bin/cvsweb/

.10,图形客户端:http://www.wincvs.org/
Linux 系统选用 gcvs(# aptitude install gcvs, 安装完毕后,在"应用程序->Debian菜单->程序->编程"下面有快捷方式);
windows 系统选用 wincvs。


========================================================================
18.安装配置中文Latex
====方法(一):tetex+GB=====================================================
http://www.linuxsir.org/bbs/showthread.php?t=107395

apt-get install tetex-base tetex-bin tetex-extra cjk-latex dvipdfmx ttf-arphic* tfm-arphic* latex-beamer latex-xcolor pgf

安装时使用缺省选项,不做任何其他的设定就可以用了。

测试
% test.tex 记得保存时选择 GB2312 编码格式
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{GB}{song}
这是 latex
\end{CJK}
\end{document}

然后 latex test && latex test && bibtex test && dvipdfm (dvipdfmx会有一堆警告,不影响使用) test && gpdf(acroread) test.pdf 就应该可以看到生成 test.pdf 文件了。

注意我用的是GB而不是GBK,而且只能用song/kai两种字体。说实在的,俺确实很懒,能用就行了。
使用过程中如果缺少什么宏包,到http://www.ctan.org/search.html#byName下载,放到/usr/share/texmf/tex/latex目录下,su root

====方法(二):texlive=======================================================
http://www.hebl.name/zh/?p=120

Debian-etch

.1 先安装 texlive2005
# mount -o loop -t iso9660 path-to/texlive2005-inst-20051102.iso /cdrom
# cd /cdrom
# sh ./install-tl.sh
出现主菜单界面时,选择: S,确保是full,C,去掉一些不需要的文档,L,确保Chinese被选上,D-1,将安装目录更改到 /opt/texlive/2005,R 返回主菜单界面,
然后选择 I 开始安装。

.2 路径设置(root用户以及使用texlive2005的每个用户都要做)
$ gedit ~/.bashrc
在文件末尾加上:
# texlive2005
export TEXDIR=/opt/texlive/2005
export PATH=$PATH:$TEXDIR/bin/i386-linux
注销后重新登录。
rm -R ~/.texlive2005 (如果有的话)

.3 中文配置
# cp path-to/gbkfonts-linux-for.tetex3.0 /usr/local/bin/ && chmod +x /usr/local/bin/gbkfonts-linux-for.tetex3.0
# cp /opt/texlive/2005/texmf/web2c/texmf.cnf /opt/texlive/2005/texmf/web2c/texmf.cnf.old
# gedit /opt/texlive/2005/texmf/web2c/texmf.cnf
修改 OSFONTDIR = /usr/share/fonts/truetype/ttf-fonts (因为我在安装系统字体时,已经把一些ttf字体文件放到这里)
(如果有一大堆错误的话,请C+A+F1,root登录,重新启动系统)
# cd /opt/texlive/2005/texmf-local
# gbkfonts-linux-for.tetex3.0 /usr/share/fonts/truetype/ttf-fonts/simsun.ttf song (其它字体照做)
# cd ./fonts && mkdir sfd && mkdir cmap
# cp path-to/UGBK.sfd ./sfd/
# cp path-to/Adobe-GB1-UCS2 ./cmap/
# cp path-to/UniGB-UCS2-H ./cmap/
# cp path-to/UniGB-UCS2-V ./cmap/
# cp path-to/UniGB-UTF16-H ./cmap/
# cp path-to/UniGB-UTF16-V ./cmap/
# cp /opt/texlive/2005/texmf-var/web2c/updmap.cfg /opt/texlive/2005/texmf-var/web2c/updmap.cfg.old
# cp /opt/texlive/2005/texmf/web2c/updmap.cfg /opt/texlive/2005/texmf/web2c/updmap.cfg.old
# gedit /opt/texlive/2005/texmf-var/web2c/updmap.cfg
在最后加上一行:
Map cjk.map
# mktexlsr && updmap-sys

.4 现在OK了,所有设置了texlive2005路径的用户都可以在字符界面下使用latex相关的全部功能了。
可以使用的中文字体:song、hei、li、fs、you、kai
可以用latex/bibtex/pdflatex/dvipdfm/divpdfmx(生成的PDF文件的字体有点发虚)。
当提示缺少宏包时,到http://www.ctan.org/search.html#byName下载,放到$TEXDIR/texmf/tex/latex目录下, mktexlsr即可。


========================================================================
19.安装Latex前端texmaker
# aptitude install texmaker
如果使用前面安装的texlive2005的话,则:
(下面两行命令可选<同时>,如果做了,则在完成第一行命令后,可能需要重新登录或重新启动)
# aptitude purge tetex-base tetex-bin tetex-doc tetex-extra tex-common
# mktexlsr && updmap-sys
然后在/usr/local/bin/目录下建立local/dvipdfm/pdflatex/bibtex/等命令的链接到$TEXDIR/bin/i386-linux/目录下的相应文件,如下:
# cd /usr/local/bin/ && ln -s /opt/texlive/2005/bin/i386-linux/* ./ && ls


=========================================================================
20.聊天软件gaim
# aptitude install gaim

用gaim登录google talk.
Gaim是一个跨平台的IM客户端,支持多种IM协议,如AIM、MSN和Jabber等。Google talk是Google推出的IM服务,它采用了开放的XMPP协议。下面介绍如何在Gaim中登Google talk。
登录Google talk需要有Gmail帐号,在登录前请先准备好。运行gaim后,点击“帐户”--“添加”按钮添加一个新帐户。依次填入以下信息:
协议:Jabber
用户名:huymEmail #不含Gmail.com后缀的Gmail帐户名
服务器:gmail.com
资源:Gaim #默认值
密码:xxxx
别名:胡益民 #别名,可选填写

接着点击“显示全部选项”,配置Jabber选项:
选中“若可用则使用TLS”和“允许在不加密流上的纯文本验证”两个选项
端口:5222
连接服务器:talk.google.com
代理类型:无代理

点击“保存”,完成帐户设置。点击在线即可连接google talk。


===========================================================================
21.安装音频播放器xmms
# aptitude install xmms
在~/.xmms/目录下有其配置文件: config,修改allow_multiple_instances=TRUE可以让其运行多个实例。


===========================================================================
22.用totem播放全部格式的视频文件
# aptitude install totem

从 http://www.mplayerhq.hu/MPlayer/releases/codecs/
下载win32codecs-essential-20040703.tar.bz2和rp9codecs-20050115.tar.bz2,解开的文件(注:不包括目录)放到/usr/lib/win32(如果不存在建一个)即可。


===========================================================================
23.用xCHM看.chm格式文件
# aptitude install xchm


===========================================================================
24.安装gs/pdf文件阅读器
# aptitude install evince


===========================================================================
25.配置远程登录(可以从其它机器远程登录到我的 Debian,也可以反过来)
# aptitude install vino xvncviewer
local_user 为一系统用户
退出 root 用户,切换到 local_user 用户,在终端下输入:
vino-preferences
出现一个很简单的配置界面,我选择密码控制。

现在到远程机器安装vncviewer,然后运行并输入: huyimin:0(或者10.1.7.92:0)
怎么样?看到效果了吧。

任何一个系统用户都可以通过命令 vino-preferences 来配置自己的远程登录,当该系统用户在本地登录后,其 vino 会自动启动,此时可以在远程机器通过 vncviewer 进行登录。


===========================================================================
26.安装bbs客户端软件qterm
# aptitude install qterm
安装完毕后,在 “应用程序”-->“互联网”下面有其快捷方式。


===========================================================================
27.安装星际译王
# aptitude install stardict
安装完成后在“应用程序”-->“附件”下面有快捷方式。可以从其主页上下载字典放到/usr/share/stardict/dic即可。


===========================================================================
28.安装科学绘图软件gnuplot/labplot
# aptitude install gnuplot labplot
安装完毕后,在终端输入gnuplot即可启动该软件。
在 web 浏览器中输入http://localhost/dwww进入/usr/share/doc folders, 即可看见详细的帮助文档。


===========================================================================
29.安装命令行界面的科学计算软件octave
octave(命令行,特点是和MATLAB几乎差不多的命令)
# aptitude install octave
安装完毕后,在终端输入 octave 即可启动该软件。
在 web 浏览器中输入:
http://localhost/cgi-bin/dwww?type=file&location=/usr/share/doc/octave2.1-htmldoc/octave.html
或者输入 http://localhost/dwww 进入 /usr/share/doc folders, 即可看见详细的帮助文档。


===========================================================================
30.安装图形界面的科学计算软件scilab
# aptitude install libxp6
从 www.scilab.org 上下载最新版本,参见其帮助文档:
.1编译好的版本(推荐)
su root
cd /opt
tar -zxvf path-to/scilab-4.0.bin.linux-i686.tar.gz
cd scilab-4.0
make
.2源码版本
# cd /opt
# tar -zxvf scilab-4.0-src.tar.gz
# cd scilab-4.0
# ./configure
# make all #奇怪为什么不简单的用make
# sudo make install
.3安装完毕后,# ln -sf /opt/scilab-4.0/bin/scilab /usr/local/bin/scilab,要运行scilab, 在终端输入scilab 即可。


===========================================================================
31.安装通用图形图像软件dia/gthumb/gimp/gtkam/scrot
# aptitude install dia gthumb gimp gtkam scrot
gthumb,类似acdsee,功能绝不差于acdsee,安装:apt-get install gthumb
gimp,比肩photoshop的图像处理软件,几乎和photoshop一模一样,gnome的老祖宗:)
gtkam,数码相机软件,支持很多相机,无须另加驱动,我的Olympus相机一下子就认出来了
scrot 抓图


============================================================================
32.安装firefox
# aptitude install firefox firefox-locale-zh-cn


============================================================================
33.安装P2P下载软件amule
# aptitude install amule amule-utils-gui
在web浏览器(Epiphany/firefox)里添加ed2k连接:
1、在地址栏输入about:config,进入配置页面
2、在列表上单击右键,新建一个布尔值(Boolean)值,名字是network.protocol-handler.external.ed2k,值为true。
3、再新建一个字符串值(String),名字是network.protocol-handler.app.ed2k,值为你的启动程序,我在Debian-etch下用aMule,所以是/usr/bin/ed2k。

然后运行aMule,当在浏览器中点出ed2k://的链接里就会把地址加入相应软件了。


装好了amule以后,发觉它要求我输入个服务器
还有连接server.met
于是我打开win2k下的那个emule
找到config
下面有*.met,而且还很大,(当然了,用了好长一段时间的)
我打开我的主文件夹,选择查看菜单,把隐藏文件也显示出来
有个目录叫.amule的,就是它
我把上面那几个文件都考到那里去了,
还把incoming和temp设成emule的目录incoming和temp
启动amule,以前还没下载完的还可以继续下载

2. 常用的服务器
---名称--- ---地址---
DonkeyServer 62.241.53.2:4242
华语P2P源动力 61.152.93.254:4661
Razorback 2 195.245.244.243:4661
BiG BanG 9 80.239.200.108:3000
WWW.SEXESEXOSEX.COM 66.135.34.198:8270
WWW.UseNeXT.to 212.112.243.146:4661
DonkeyServerNo5 62.241.53.4:4242


============================================================================
34.安装项目管理软件planner
# aptitude install planner


============================================================================
35.安装配置电子邮件客户端Evolution
# aptitude install evolution

研究院的 email server 为: 202.105.139.xxx
gmail.com 的邮箱:
接收邮件:服务器类型-->pop/主机-->pop.gmail.com/使用安全连接-->SSL加密/认证类型-->密码
发送邮件:服务器类型-->smtp/主机-->smtp.gmail.com/使用安全连接-->SSL加密/认证类型-->Login
163.com 的邮箱:
接收邮件:服务器类型-->pop/主机-->pop.163.com/使用安全连接-->从不/认证类型-->密码
发送邮件:服务器类型-->smtp/主机-->smtp.163.com/使用安全连接-->从不/认证类型-->Login


============================================================================
36.保存GNOME桌面环境中声卡的音量设置
每次重启电脑后,都变成静音了,需重新调整音量。经研究,原来是我没有把ALSA声音系统的当前设置状态保存到 /var/lib/alsa/asound.state中。而每次重启电脑时,ALSA系统的初始化脚本(/etc/init.d/alsa)会用 /var/lib/alsa/asound.state这个默认的配置文件来设置ALSA系统的状态。所以就造成用户自已配置的状态失效,每次重启都还原到初始状态。OK,知道原因了,就可对症下药了。有一个工具叫 alsactl,它可自动把当前配置信息保存到 /var/lib/alsa/asound.state中。alsactl包含在alsa-utils软件 包中。用以下命令安装:
# apt-get install alsa alsa-utils

把音量、音色等调整好后,再用以下命令把当前声卡的状态保存到/var/lib/alsa/asound.state文件中:
# alsactl store

重启电脑,马上就可聆听到自由的声音了。

============================================================================
37.安装java
到SUN官方网站下载最新jre包,我下载的是jre-1_5_0_07-linux-i586.bin,并把该文件的属性改成可执行,直接执行该文件。
# chmod +x jre-1_5_0_07-linux-i586.bin
# cd /opt (我把java安装到/opt目录)
# path-to/jre-1_5_0_07-linux-i586.bin
这样java会安装到/opt/jre1.5.0_07目录。

在要使用java的用户的~/.gnomerc文件中加入下面的环境变量:

# java
export PATH=$PATH:/opt/jre1.5.0_07/bin
export CLASSPATH="/usr/local/jre1.5.0_07/lib"
export JAVA_HOME="/usr/local/jre1.5.0_07"

重启登录后,就可使用java命令了,你可用java -version命令进行测试。

为firefox浏览器安装java插件:
# cd /usr/lib/firefox/plugins && ln -s /opt/jre1.5.0_07/plugin/i386/ns7/libjavaplugin_oji.so
启动firefox浏览器(如果firefox浏览器正在运行,则重新启动它)。转至“编辑”> “首选设置” 在“内容”类别下方 > 选择“启用 Java”

使Java能处理中文:
# cd /opt/jre1.5.0_07/lib/fonts/ && mkdir fallback && cd ./fallback && ln -s /usr/share/fonts/truetype/ttf-fonts/* ./
(我在安装系统字体时,已经将相关文件放在/usr/share/fonts/truetype/ttf-fonts/目录)


============================================================================
38.安装jabref
直接下载JabRef的.jar文件,在命令行用:java -jar JabRef.jar即可。


============================================================================
39.用qmue安装windows2000
.1 安装qemu+kqemu
# aptitude install qemu qemu-launcher
找个地方安装你的虚拟机,要注意下自己的空间哦,强烈建议你先#df -h查看一下磁盘空间。
# mkdir /opt/qemu && cd /opt/qemu
从其主页上下载加速器kqemu,参照说明安装(确保编译内核的gcc与系统安装的gcc版本要一致)
# tar zxvf path-to/kqemu-1.3.0pre9.tar.gz
# cd kq* && make clean && ./configure && make && make install && modprobe kqemu && cd ..
创建虚拟机磁盘,后面的8G意思是创建一个8G的磁盘,大小你自己定
# qemu-img create -f qcow win2k.img 8G
接下就是要安装虚拟机了,我有两手准备,一是光驱,二是ISO文件(没有kqemu的支持不能用iso文件)
# qemu -hda win2k.img -cdrom /dev/hdc -boot d -m 256 -enable-audio -localtime -win2k-hack
如果提示:Could not open '/dev/kqemu' - QEMU acceleration layer not activated
退出qemu到命令终端运行,
# modprobe kqemu
如果还不行,就重新安装一下kqemu

解释上面的语法:
-hda 是指定硬盘,在本文里我们使用的是刚才创建的/opt/qemu/win2k.img
-cdrom 指定使用光驱,这个参数后面必须要跟个文件名,在上面的例子里我用的是我的物理光驱/dev/hdc,如果你要使用ISO文件,那就写上文件的路径,比如我第二安装时用的就是path-to/win2k.iso
-m 是指定虚拟机使用的内存大小,后面的数字即是你要指定的内存数,我的是256M
-boot 当然就是指定虚拟机启动用的设备,-boot后可以选择的参数是 a ,c ,d .其中a 是指从软盘启动,c 就是用硬盘启动,d 当然就是光驱启动了。
-enable-audio 这个意思我就不说了。
-localtime 就是说要使用你的实际主板bios上的时间。

.2 使用qemu
安装成功后,整个windows2000系统就打包成一个win2k.img磁盘映像文件,如果要从该映像文件中启动系统,可用以下命令。
# qemu -hda win2k.img -boot c -m 256 -localtime -parallel /dev/parport0
-boot c参数表示从硬盘启动系统,也就是从win2k.img磁盘映像文件启动系统。
-parallel /dev/parport0表示在虚拟机内启用主机的并行口0。

.3 几个常用的快捷键:
ctrl+alt+F 全屏切换
ctrl+alt 鼠标在虚拟机和主机间切换

.4 安装过程中,要求换盘:
在qemu中按ctrl+alt+2切换到qemu monitor模式,输入?或help可以查看可用命令及使用说明。
(在其他版本的qemu中,运行qemu加载OS后,这个shell就会自动变成qemu monitor模式)
change device filename -- change a removable media
看来它就是用来换盘的了: change cdrom path-to/your-iso-file.iso


============================================================================
40.安装网络打印机
# aptitude install cups cupsys-bsd cupsys-client foomatic-db-gutenprint python-foomatic foomatic-db-engine foomatic-db-hpijs foomatic-gui foomatic-filters foomatic-db foomatic-filters-ppds foomatic-db-gimp-print
# smbclient -L 10.1.7.100 -U ome
得知共享的打印机名为:hp1010
在firefox输入http://localhost:631/
Name: smb-printer
Location: omeprint
Description: smb printer on omeprint
Device: windows printer via samba
Device URI: smb://ome:omelab@10.1.7.100/hp1010 (ome为用户名,omelab为密码)
Make and Model: HP LaserJet 1010 Foomatic/pxl1010
可能需要重新登录或启动机器。


============================================================================
41.安装gnumeric电子表格
# aptitude install gnumeric

============================================================================
42.配置中文emacs21

http://linux.hiweed.com/node/1391


文章来源:http://h50069.www5.hp.com/e-Delivery3/Forum/WebUI/Messages/
ShowTopic.aspx?RID=0a7ddbe9-78b5-4fe4-b225-ecdabfecdb27

Debian Server Setup

Debian Server Setup
http://www.debianhelp.co.uk/debianserver.htm

Most of the people may be worrying how to setup debian server it is very easy than anything else. Normal installation will support for server setup. I am going to give you the each one how to achieve this. We have already discussed each one but i need to give complete details in one place.

Debian 3.1 sarge Installation

Installing Debian sarge basic setup you can check this link for clear installation steps

http://www.debianhelp.co.uk/install.htm

Debian 4.0 (Etch) Beta 3 Web-Installation with Screenshots

Very good Debian etch installation walkthrough with nearly 50 screenshots

http://www.debianadmin.com/debian-etch-beta3-graphical-mode-installation-with-screenshots.html

Debian Machine Backup Guides

If you are looking for how take debian machine backup you need to follow here

http://www.debianhelp.co.uk/backup.htm

Debian Firewalls Configuration

Shorewall Firewall Configuration follow this

http://www.debianhelp.co.uk/shorewall.htm

picofirewall Configuration

http://www.debianhelp.co.uk/picofirewall.htm

Debian Wallpapers

http://www.debianhelp.co.uk/wallpaper.htm

Webmin and Quota installation

This is very impotent if you are maintaining a web server for your users you need to configure quotas to control their usage check this link for complete tutorial

http://www.debianhelp.co.uk/Webmin.htm

Debian Proftp server Installation

Proftp server is very easy to setup check this link for complete installation process

http://www.debianhelp.co.uk/proftp.htm

Proftp Server Web interface or GUI Tools

http://www.debianhelp.co.uk/proftpweb.htm

Bandwidth, Network and Servers Monitoring tools with Tutorials

http://www.debianhelp.co.uk/monitortools.htm

Debian Pureftp server Installation

Pureftp server is very easy to setup check this link for complete installation process

http://www.debianhelp.co.uk/pureftp.htm

Pureftp Server Web interface or GUI Tools

http://www.debianhelp.co.uk/pureftpweb.htm

Debian Web server Setup

This is very important part of your server configuration for hosting websites or to install any applications

Debian Apache2 Installation with PHP Support

Check this link for complete apache2 installation with PHP support

http://www.debianhelp.co.uk/apache2.htm

Apache web Server Web interface or GUI Tools

http://www.debianhelp.co.uk/apacheweb.htm

Webalizer Configuration for apache web server

This software provides your users websites statistics check the below link for complete installation

http://www.debianhelp.co.uk/webalizer.htm

Debian Samba Server setup

If you want to configure your server as samba server follow this link

http://www.debianhelp.co.uk/samba.htm

Nagio (Network Minitoring) Server with Web interface Oreon

Nagios is Enterprise level Network monitoring tool.If you want to configure your server as monitoring server just follow this link

http://www.debianhelp.co.uk/oreon.htm

Samba Server Web interface or GUI Tools

http://www.debianhelp.co.uk/sambaweb.htm

Centralized Syslog Server Using syslog-NG

If you want to configure your server as Syslog Server follow this link

http://www.debianhelp.co.uk/syslog-ng.htm

Databases (Mysql,Postgresql,Firebird) Backup

If you want to take your databases Backup follow this link

http://www.debianhelp.co.uk/databasebackup.htm

Debian Mysql Database Server setup

If you want to configure your server as database server follow this link

http://www.debianhelp.co.uk/mysql.htm

Mysql Database Server Web interface or GUI Tools

http://www.debianhelp.co.uk/mysqlweb.htm

Debian Postgresql Database Server setup

If you want to configure you server as database server follow this link

http://www.debianhelp.co.uk/postgresql.htm

Postgresql Database Server Web interface or GUI Tools

http://www.debianhelp.co.uk/postgresqlweb.htm

Debian Firebird Database Server setup

If you want to configure you server as database server follow this link

http://www.debianhelp.co.uk/firebird.htm

Firebird Database Server Web interface or GUI Tools

http://www.debianhelp.co.uk/firebirdweb.htm

Debian mail server Configuration

If you want to configure you server as mail server you need to follow these instructions specified in below link

http://www.debianhelp.co.uk/postfix.htm

Qmail Server Web interface or GUI Tools

http://www.debianhelp.co.uk/qmailweb.htm

Postfix Mail Server Web interface or GUI Tools

http://www.debianhelp.co.uk/postfixweb.htm

ntpdate package for Synchronize server time

If you want to keep you server time to upto date follow this link

http://www.debianhelp.co.uk/time.htm

Debian VNC server Configuration

If you want to configure VNC server in debian follow this link

http://www.debianhelp.co.uk/vnc.htm

Proxy server configuration in Debian

If you want to configure proxy server follow this link

http://www.debianhelp.co.uk/squid.htm

tftp server configuration in Debian

If you want to configure tftp server follow this link

http://www.debianhelp.co.uk/tftp.htm

SSH Server configuration in Debian

If you want to configure SSH server follow this link

http://www.debianhelp.co.uk/ssh.htm

DHCP server Configuration in Debian

If you want to configure dHCP server you need to follow these instructions

http://www.debianhelp.co.uk/dhcp.htm

DHCP Server Web interface or GUI Tools

http://www.debianhelp.co.uk/dhcpweb.htm

DNS server setup in debian

If you want to setup DNS server you need to follow below link

http://www.debian.org/doc/manuals/network-administrator/ch-bind.html

Bind DNS Server Web interface or GUI Tools

http://www.debianhelp.co.uk/bindweb.htm

NFS server setup in Debian

If you want to configure your server as NFS follow the instructions from the below link

http://www.debianhelp.co.uk/nfs.htm