GNU/Linux问题集

LINUX 专栏收录该内容
10 篇文章 0 订阅
 整理:Jims of <www.ringkee.com>
本文遵从GPL协议,欢迎转载、修改、散布
注:为了反映最新的变化,该文档从2004/11/29开始,把新的内容放到前面。

2005/03/30
问题:在NAT机器上的Log中出现大量的“ip_conntrack: table full, dropping packet.”
解决:ip_conntrack是nat的连接状态跟踪数据库,维护一个连接状态跟踪表,该表的容量一般有1024字节,
如果连接数太多,则该表会被填满,从而使外部用户很难连接进来。造成这个故障的原因可能是病毒发作,黑客攻击
或是有大量的下载进程,如bt等点对点下载。最彻底的解决方案是找出源头,净化网络环境。另一种方案是根据
你机器的内存容量,临时加大连接状态跟踪表的容量,通过执行以下命令可完成:
# echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max
该值不会保存,下次开机后需从新设置。

问题:为什么X window的配置文件叫XF86config-4
答案:XF86config-4中的4代表XFree86第四个发行版的意思。

2005/03/06
在firefox的地址栏上打上about:config可列出所有的配置选项。

2005/03/01
问题:使用emacs自动备份的#debian.xml#拷贝成debian.xml后,用xsltproc处理不了debian.xml文件,报编码错,用gedit和
bluefish打开该文件显示乱码。
解决:#debian.xml#是emacs的自动存盘文件,格式和一般文本文件不同,多了一些特殊字符,所以不能用拷贝的方法恢复,应用
emacs提供的方法。打开原始的debian.xml文件,接着输入M-x recover file<Return> 来恢复您的自动储存文件,最后用yes确认。
这样就可正确恢复了。

2005/02/21
Mozilla浏览器可直接在地址栏上输入关键字利用Google进行搜索,设置方式也很简单,进入以下菜单路径:
编辑-->首选项-->浏览器-->因特网搜索,选择默认搜索引擎为google
现在,在Mozilla地址栏上打上关键字,按旁边的搜索就可以了。

IBM开发者园地中的剖析Linux启动过程的一篇文章
http://www-106.ibm.com/developerworks/library/pa-migrate2/?ca=dgr-lnxw01BootProcess

2005/02/17
在kde的Konqueror文件管理器中,通过配置Konqueror的文件关联可实现双击文件调用相应的软件打开的功能。

2005/02/16
LILO在运行时会给出一些提示信息,了解它的含义对我们正确配置lilo.conf或查找硬件错误是有帮助的。
当LILO装入它自己的时候,显示单词 “LILO”:每完成一个特定的过程显示一个字母。如果LILO在某个地方失败了,屏幕上就停留几个字母,
以指示错误发生的地方。注意,如果磁盘发生瞬间故障,可能会在第一个字母“L”后插入一些十六进制数字(磁盘错误码)。除非LILO停在那里
并不停地产生错误码流,否则并不说明有严重问题。
没有提示: LILO没有安装或者安装LILO的分区没有被激活。
L〈错误码〉 : LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序。两位数字的错误码指示问题的类型(参见“磁盘错误
码”),这种情况通常是在介质访问失败或硬盘参数错误。
LI: LILO第一部分正确但是第二部分执行时出错。这一般是硬盘参数有误或/boot/boot.b被移动后没有重新运行map安装程序。
LIL: LILO第二部分开始执行,但是不能从“map”文件中读取描述符表( descriptor table)。 这通常是因介质错误或磁盘参数有误引起的。
LIL?: LILO在错误的地方加载。原因与“LI”大致相同。
LIL-:描述符表(descriptor table)错误。典型原因是硬盘几何参数微妙的不匹配或/boot/boot.b被移动而没有运行map安装程序。
LILO: LILO执行正确。
1010101010: 分区情况已经改变却没有重新安装LILO,另外,超频也可能会出这种情况。

磁盘错误码
0x00:“内部错误”。 由LILO扇区读取子程序产生。可能是因为被破坏的文件,重建map文件试试看。另一个原因也许是,当使用“linear”参数时
去访问超出1024的柱面。
0x01:“非法命令”。这意味着LILO访问了BIOS不支持的硬盘。
0x02:“没找到地址标记”。通常是介质问题,多试几遍看看。
0x03:“写保护错”。 仅在写操作时出现。
0x04:“扇区未找到”。典型的原因是硬盘参数错误。
0x06:“激活顺序改变”。这应该是短暂的错误,再试一次。
0x07:“无效的初始化”。BIOS没有适当地初始化硬盘,热启动一次或许有帮助。
0x08:“DMA超出限度”。这不应当发生,重新启动。
0x09:“DMA试图越过64kB边界”。这不应当发生,建议忽略“compact”参数。
0x0C:“无效的介质”。这不应当发生,重新启动看看。
0x10:“CRC错误”。检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介质上。
0x11:“ECC纠正成功”。读错误发生然后被纠正,但是LILO并不知道这个情况,终止了启动过程。
0x20:“控制器错误”。一般不应发生。
0x40:“定位失败”。这可能是介质问题,重新启动试试。
0x80:“磁盘超时”。磁盘或驱动器没有准备好。介质坏了或磁盘没有转,也有可能是从软盘启动而没有关上软驱门。
0xBB:“BIOS错误”。一般不应发生,如果反复发生,可考虑去掉“compact”参数或添加删除“linear”参数。
如果在写操作过程中发生错误,则在错误码前有个前缀“w”。尽管写错误并不影响启动过程,但它们暗示了系统中存在某种错误,建议重新配置LILO成
只读格式(read-only)。

2005/02/06
查看系统中使用的文件句柄数的方法:
cat /proc/sys/fs/file-max
显示系统允许最大文件句柄数
cat /proc/sys/fs/file-nr
第一个数是系统已分配的句柄数
第二个是已使用的句柄数
第三个是系统允许打开的句柄数
如果第一个值等于第三个值就需要考虑是否需要增加系统打开的句柄数。一方面你可以echo 一
个比较大的值到 /proc/sys/fs/file-max,但是内核编译的时候决定了系统最大的文件数,
这个值超过内核编译时候设置的内核数就需要重新编译内核来支持。

Linux分区的优化配置方案
硬盘是影响系统性能的一个关键因素,在安装linux系统时,我们可作适当调整,使硬盘性能得以充分发挥。
根据硬盘的物理特性,我们知道越是靠磁盘外部的柱面,旋转越快,而且每次旋转时,磁盘读写头可以覆盖较
多的区域,也就意味着靠外部的柱面可以得到较好的性能。所以在分区时,我们应该考虑将访问频率高的,对
系统性能影响相对较大的分区置于磁盘的靠外部分。同时,为了减少磁盘碎片,应将内容经常改变的目录放在
单独的分区。从方便备份数据的角度考虑,因为很多备份工具对整个分区进行备份的效率要高,所以我们应将
Linux系统的几个主要的目录作为单独的文件系统,为它们各自分配一个区。根据以下原则,我们定出了以下
分区方案,从硬盘磁道中心开始依次是:
/(根分区)
/usr(用户程序区)
/tmp(临时分区)
/var(日志区)
/home(用户目录区)
swap(交换分区)
/boot(启动分区)
如果你的系统有多块硬盘,可以考虑使用多个交换分区。每个磁盘上划分一个交换分区。通过在/etc/fstab
文件中设置pri 选项,可使多个交换分区具有同样的优先级。Linux系统即可并行地使用它们。这样即可提高
交换分区的性能。如:
/dev/hda5               swap             swap    defaults,pri=5  0 0
/dev/hdc5               swap             swap    defaults,pri=5  0 0

2005/02/03
fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,
下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。
2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提
示的挂入点。
3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、
iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。
4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其
它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。
5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。
6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem
其必要的check为1之外,其它皆可视需要设定,内定值是0。

ramdisk是Linux中的一种有用技术,可利用内存制作一个文件系统,提高文件系统读写的速度。下面介绍制作ramdisk的方法
1、用% ls /dev/ram*列出系统上的ramdisk设备文件。
2、用% mke2fs /dev/ram0命令在ram0设备上创建一个文件系统。
3、用% mkdir /mnt/ramdisk命令创建一个叫ramdisk的挂接点。
4、用% mount /dev/ram0 /mnt/ramdisk安装ramdisk文件系统。
好了,现在就可像访问硬盘一样访问该ramdisk了,速度超快。
使用 % df -h 可以看到ramdisk的容量和使用情况。
ramdisk的大小可在系统启动文件lilo.conf里配置,把ramdisk_size=10000加到配置文件里重启计算机后
,你的ramdisk就有10M了。
如果系统的ramdisk是以模块的形式编译进内核的,则要修改/etc/conf.modules,把options rd rd_size=10000
加到配置文件里。

2005/02/02
在Linux下如何刻录光盘
使用 %cdrecord -v speed=2 dev=0,0,0 cd.iso
dev为设置名,用cdrecord -scanbus获得。
使用 % mkisofs -r -o cd.iso -m temp burn/ 可制作iso文件
linux系统只认scsi接口的刻录机,而我们多数是ide的。所以需做一下转换,否则linux检测不到刻录机的。
在lilo.conf里加上append="hdb=ide-scsi",hdb是主ide的从口。
或者修改/etc/modules.conf,加上以下两句:
probeall scsi_hostadapter ide-scsi
probeall usb-interface usb-uhci ehci-hcd

2005/02/01
Linux提供了三个级别的命令以启动和停止网络接口,进行以下操作前需确保网络配置正确。
最低级别的是ifconfig命令,它直接操作选定的网络端口:
% ifconfig eth0 down     #停止eth0这个网络端口
% ifconfig eth0 up       #重启eth0端口,网关需手动添加才能连接其它网段
% route add default gw xxx.xxx.xxx.xxx

第二级别是利用/sbin/ifup和/sbin/ifdown脚本启动和停止指定网络接口,该脚本能始初化DHCP服务和自动
化完成网络配置。

最高级别的是通过/etc/init.d/network stop|start|restart 脚本来做,它作用于所有的网络端口。

2005/01/31
在Linux下浏览.chm文件的方法是安装xchm软件,安装内容如下:
软件名称:xchm
作用:该工具可浏览.chm文件
安装软件列表:
xchm-0.9.6.tar.gz
wxGTK-2.4.2.tar.gz
chmlib-0.35.tgz
注意:默认安装的libwx_gtk2u-2.4.so和libchm.so库文件位于/usr/local/lib目录,需把这个路径加到
/etc/ld.so.conf中,并运行一次ldconfig重载配置文件。

2005/01/30
问题:如何在vim中实现字符串的查找替换功能
解决:使用:%s/stable/sarge/g 命令可在全局范围内把stable替换成sarge。

2005/01/28
在Debian系统中修改自启动的服务和运行级别状态使用rcconf工具或sysvconfig工具。

2005/01/07
在debian的GNOME桌面环境下配置fcitx输入法在系统开机时自动启动的方法:
1、把以下几项设置写到/etc/X11/Xsession.d/55gnome-session_gnomerc或用户主目录的~/.gnomerc文件里,~/.gnomerc文件如果没有
可以自已用% vi .gnomerc命令创建。
export XIM_PROGRAM=fcitx
export XIM=fcitx
export XMODIFIERS="@im=fcitx"
fcitx&
2、设置系统编码环境为GB2312,可在GDM登录窗口按左下角的LANGUAGE(语言)选项设置。
3、重启GDM即可。fcitx的配置文件在~/.fcitx目录下,你可根据自已的需求进行配置。


2005/01/05
在双cpu或超线程cpu的debian环境中,运行top后,如只看到一个cpu,可再按1(数字)显示多cpu状态。

问题:在debian中使用fcitx输入法时出错,运行fcitx命令后,按Ctrl+Space可以调出输出菜单,但按任意键后fcitx自动退出,报以下错误:
FCITX -- Get Signal No.: 11
FCITX -- Exit Signal No.: 11
解决方法:卸载程序,并删除~/.fcitx目录,重装程序。

2004/12/29
debian中locale的设置:
在Debian中,设置系统支持的locale方法为:
dpkg-reconfigure locales
可查看装载的编码方法:
locale -a
更改当前的locale:
export LANG=zh_CN.GB2312

Python的设置
python有一个locale包,可设置当前的locale参数。
import locale
locale.setlocale(locale.LC_ALL, 'zh_CN.GBK')

Zope的设置
zope的配置文件Zope.conf中,有一个locale的设置:
locale zh_CN.UTF8

在debian下安装java的链接:
http://wiki.linux.org.hk/index.php/How_to_install_Java_on_Debian
在debian下如何产生ssl证书
http://wiki.linux.org.hk/index.php/How_to_generate_an_SSL_cert

2004/12/22
在debian中,为了正常运行mtrg,需修改snmpd.conf中内容:
#       sec.name  source          community
com2sec paranoid  default         public
#com2sec readonly  default         public
#com2sec readwrite default         private
改成
#       sec.name  source          community
#com2sec paranoid  default         public
com2sec readonly  default         public
#com2sec readwrite default         private


2004/12/21
可通过配置/etc/apt/apt.conf文件来设置apt命令的默认行为,如:
APT::Default-Release "testing";      设置默认版本   
APT::Get::Show-Upgraded "true";      在运行apt-get upgrade时显示需升级的软件包
APT::Get::Purge "true";              默认会删除配置文件
APT::Get::Show-Versions "true";      显示版本
APT::Cache::NamesOnly "true";        显示
详情请参考man apt.conf

2004/12/21
经测试,在debian中正确安装phpldapamdin的顺序应该是apache2,php4,libapache2-mod-php4,php-ldap,phpldapadmin。

2004/12/21
问题:安装phpldapadmin后启动web页面出错,提示php不支持ldap。
解决:由于安装php,apache2和ldap的顺序较乱,所以php-ldap没有正确配置,重新运行以下命令配置php.ini文件
后重启apache2服务器即正常运行。
# dpkg-reconfigure php-ldap

2004/12/21
问题:配置zope2.7自启动
解决:安装zope2.7时,系统已自动生动自动启脚本,存放在/etc/init.d目录,并配置了自动启动,
可用rcconf命令查看。但由于我的实例是安装在/data/zope2.7目录下,所以需修改/etc/default/zope2.7
文件,把路径写到INSTANCE="/data/zope2.7"里即可。

2004/12/20
>>>pon dsl-provider   启动ADSL拔号,/etc/ppp/peers/dsl-provider是ADSL拔号配置文件。用工具生成,不过生成工具
在GNOME中用好象有问题,把出错信息也存入配置文件。在KDE中就没问题,???奇怪。
poff dsl-provider   可中断ADSL连接。
plog   可查看连接状态。

2004/12/19
>>>安装了个人防火墙后,vpn不正常,连接不通。应该是iptables设置问题。删除防火墙和iptables后恢复正常。

>>>在 Debian 中安装和使用 Oracle 10g

作为一个桌面确实没有必要安装 Oracle 10g,这篇文章写给对 Oracle 感兴趣的人:

/subsection{安装 Oracle 10g}

1、安装必要的软件

$ su
# apt-get install wajig
# apt-get install libc6-dev
# wajig install gcc make binutils libmotif3 lesstif2 rpm

2、安装准备

# exit
$ xhost + (让 root 能访问 X)

$ su
# cd /tmp
# gunzip ship.db.cpio.gz
# cpio -idmv < ship.db.cpio

# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle -m

# mkdir -p /u01/app/oracle
# mkdir -p /u02/oradata
# chown -R oracle:oinstall /u01 /u02
# chmod -R 775 /u01 /u02

# vi /etc/sysctl.conf
添加以下内容:
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

# sysctl -p (使对 sysctl.conf 的修改立即生效)

# vi /etc/security/limits.conf
添加以下内容:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

# vi /etc/pam.d/login
添加以下内容:
session required pam_limits.so

# vi /etc/profile
添加以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/basename /bin/basename

# echo "Red Hat Linux release 2.1 (drupal)" > /etc/redhat-release (伪装成 Redhat, 因为 Oracle 安装程序要检查 Linux 发型版)

# su oracle
$ vi ~/.bash_profile
添加以下内容:
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=test
export ORACLE_BASE ORACLE_SID
unset ORACLE_HOME
unset TNS_ADMIN

3、安装 Oracle 10g

$ cd /tmp/Disk1
$ LC_ALL=en_US ./runInstaller (修改 LC_ALL 是因为中文不能正常显示,有谁能告诉我怎样让中文安装界面显示正确吗?)
在提示运行 root.sh 前先:
# ln -s /etc /etc/rc.d

4、起动和停止 Oracle 服务

# vi /etc/oratab
内容为:
*:/u01/app/oracle/product/10.1.0/db_1:N
test:/u01/app/oracle/product/10.1.0/db_1:Y

# vi /etc/init.d/oracle
内容为:
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME="/u01/app/oracle/product/10.1.0/db_1"
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0

# chmod +x /etc/init.d/oracle
# ln -s /etc/init.d/oracle /etc/rc.d/rc2.d/S99oracle
# ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
# ln -s /etc/init.d/oracle /etc/rc.d/rc4.d/S99oracle
# ln -s /etc/init.d/oracle /etc/rc.d/rc0.d/K01oracle
# ln -s /etc/init.d/oracle /etc/rc.d/rc6.d/K01oracle

今后可以通过以下命令启动和停止 oracle 服务:
启动 oracle:wajig start oracle
停止 oracle:wajig stop oracle

2004/12/18
>>>编译内核失败,不能启动后的修复操作:
内核编译后bzImage的路径是arch/i386/boot/bzImage
编译成功后将bzImage和内核所在目录下的System.map复制到/boot目录下,bzImage应改为vmlinuz。对于重启无法进入系统的情况,可以
使用安装盘进入安装界面,然后用Alt+F2打开一个控制台,挂载原来的根分区到某一目录比如/mnt/debian 运行命令chroot /mnt/debian
你就可以像在普通系统中一样修改LILO配置,运行LILO命令修改完成后用exit命令退出。卸载相应的分区,否则再次启动时DEBIAN会要求硬盘检测

>>>升级到2.4.20内核的操作方法
make menuconfig
make dep
make bzImage
make modules
make modules_install
在make menuconfig的时候如果报错说ncurses没有,那就要先安装这个库.
注意,在基本系统里已经安装了libncurses,但是编译内核时还需要libncurses-dev这个库,需要把这个也装上。

如果需要framebuffer,那么在内核里选上framebuffer支持。

cp System.map /boot/System.map-2.4.20
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20

vi /etc/lilo.conf
把新内核加进去,
image=/boot/vmlinux.2.4.20

>>>debian内核编译的标准方法
# apt-get install debhelper modutils kernel-package libncurses5-dev
# apt-get install kernel-source-2.4.18 # 使用最新版本
# apt-get install fakeroot
# vi /etc/kernel-pkg.conf # 输入我的名字和email
$ cd /usr/src # 创建目录
$ tar --bzip2 -xvf kernel-source-2.4.18.tar.bz2
$ cd kernel-source-2.4.18 # 如果这是你的内核源码
$ cp /boot/config-2.4.18-386 .config # 将当前配置设定为默认配置
$ make menuconfig # 按自己的喜好来定制
$ make-kpkg clean # 必须执行这步(per: man make-kpkg)
$ fakeroot make-kpkg --append_to_version -486 --initrd /
--revision=rev.01 kernel_image /
modules_image # modules_image可以是pcmcia-cs*等。
$ cd ..
# dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装

make-kpkg kernel_image实际上执行了make oldconfig和make dep。如果没使用initrd就不要使用--initrd选项。

如果想加载pcmcia-cs模块或没有pcmcia,应该在make menuconfig后选“General setup -->”进入“PCMCIA/CardBus support -->”,
配置“<>PCMCIA/CardBus support”选项(例如,取消复选项)。

对于SMP机器,参照kernel-pkg.conf(5)的说明设置CONCURRENCY_LEVEL。


>>>debian内核编译的经典方法
从下列地址获得干净的源代码:

·Linux: http://www.kernel.org/
·pcmcia-cs: http://pcmcia-cs.sourceforge.net/

或使用Debian所附的等价的源代码:

# cd /usr/src
# tar xfvz linux-whatever.tar.gz
# rm -rf linux
# ln -s linux-whatever linux
# tar xfvz pcmcia-cs-whatever.tar.gz
# ln -s pcmcia-cs-whatever pcmcia
# cd linux
# make menuconfig
... 配置内核选项 ...
# make dep
# make bzImage
... 编辑lilo/grub ...
... 移动/usr/src/linux/arch/i386/boot/bzImage到boot ...
... /sbin/lilo or whatever you do for grub
# make modules; make modules_install
# cd ../pcmcia
# make config
# make all
# make install
... 添加需要的模块名称到/etc/modules
# shutdown -r now
... 启动到新内核 ...

2004/12/17
ps 是我们经常要用到的命令,下面列出ps命令信息的说明,方便查询。
    UID 进程属主的用户ID号。
    PID 进程ID号。
    PPID 父进程的ID号。
    C 进程最近使用CPU的估算。
    STIME 进程开始时间,以“小时:分:秒”的形式给出。
    TTY 该进程建立时所对应的终端,“?”表示该进程不占用终端。
    TIME 报告进程累计使用的CPU时间。注意,尽管觉得有些命令(如sh)已经运转了很长时间,
但是它们真正使用CPU的时间往往很短。所以,该字段的值往往是0:00。
    CMD 是command(命令)的缩写,往往表示进程所对应的命令名。
    USER 启动进程的用户。
    %CPU 运行该进程占用CPU的时间与该进程总的运行时间的比例。
    %MEM 该进程占用内存和总内存的比例。
    VSZ 虚拟内存的大小,以KB为单位。
    RSS 占用实际内存的大小,以KB为单位。
    STAT 表示进程的运行状态,包括以下几种代码:
    D 不可中断的睡眠;
    R 就绪(在可运行队列中);
    S 睡眠;
    T 被跟踪或停止;
    Z 终止(僵死)的进程。

    对于BSD格式,还包括以下代码:
    W 没有内存驻留页;
    < 高优先权的进程;
    N 低优先权的进程;
    L 有锁入内存的页面(用于实时任务或定制I/O任务);
    START 开始运行的时间。

2004/12/16
今天参照openldap网站的文档写了一个ldap的schema,感觉不是很难,只要理解了schema的层次结构和各种
对象属性,就可根据自已的需要编写自定义的schema。

2004/12/13
问题:把一编文章的编码从gb18030转换到utf-8
解决:使用iconv命令就可实现,如下:
$ iconv -f GB18030 -t utf-8 gb18030.xml >utf.xml
用法: iconv [选项...] [文件...]
Convert encoding of given files from one encoding to another.

输入/输出格式规范:
  -f, --from-code=NAME       原始文本编码
  -t, --to-code=NAME         输出编码

信息:
  -l, --list                 列举所有已知的字符集

输出控制:
  -c                         从输出中忽略无效的字符
  -o, --output=FILE          输出文件
  -s, --silent               suppress warnings
      --verbose              打印进度信息

  -?, --help                 给出该系统求助列表
      --usage                给出简要的用法信息
  -V, --version              打印程序版本号


问题:需设置网卡的双工模式
解决:使用mii-tool命令。
$ mii-tool       #不带参数可显示网卡的工作模式
$ mii-tool eth1 -F 10baseT-FD    #强制eth1为10M全双工模式
$ mii-tool --help            #查看详细帮助

2004/12/09
问题:需要用linux在console口登录CISCO 2950交换机
解决:在Linux也有很多超级终端工具,基于字符界面和基于X window的都有。我选择了minicom 2.1,安装步骤如下:
1、到网上下载解压后,按configure、make、make install步骤安装,很简单的。我把它安装到/usr/local/minicom目录。
2、安装完成后,就可进入/usr/local/minicom/bin目录,运行$ ./minicom。配置和使用前最好查询一下minicom的man页,学习一下
它的键盘操作命令。注意,如果在/usr/local/minocom/下没有etc目录,就要新建一个,用于保存配置文件。
3、进入minocom界面后,按Ctrl+A调出命令模式后,再按o命令,进入配置菜单。主要调整两样,一个是串口号,一个是波特率。
我的配置是:串口设置填/dev/ttyS0,波特率部份填9600 8N1。
4、配置后,选择“Save setup as...”把它存为cisco。用X命令退出minicom。
5、用串行线连接电脑串口与交换机的控制口(Console)后,用$ ./minicom cisco进入minicom即可。
注:可以把配置里的modem配置里的初始化字串删除,因为进入交换机后执行该初始化字串是没意义的。

2004/11/29
问题:主从DNS服务器的区域信息不能同步。
解决:由于更新主DNS服务器的区域信息文件后没有增加serial的值。增加该值后reload服务器配置信息就可以同步了。

2003年7月17日
问题:APACHE系统参数。
安装路径:/etc/httpd
手动启动命令---httpd或apachectl start/restart
配置文件:/etc/httpd/httpd.conf

问题:启动APACHE后本机能访问测试页面,其它机不能访问页面?
解决:防火墙设置不能通过WWW访问,取消设置后问题解决。防火墙软件是IPTABLES。
可以用LOKKIT配置。

问题:安装的服务如何自动启动或取消自动启动。
解决:通过以下程序可以设置。
ntsysv — 基于文本的程序。它允许你为每个运行级别配置引导时要启动的服务。对于不属
于 xinetd 的服务而言,改变不会立即生效。你不能使用这个程序来启动、停止、或重新启
动不属于 xinetd 的服务服务。

chkconfig — 一个允许你在不同运行级别启动和关闭服务的命令行工具。对于不属于 xinetd
的服务而言,改变不会立即生效。你不能使用这个工具程序来启动、停止、或重新启动不属
于 xinetd 的服务服务。

问题:windows可以访问linux上的共享目录,但不能建文档。
解决:linux上的共享目录没有设置好权限,通过chmod设置解决。
三个位置顺序是:属主,同组成员,其它用户。
数字表示的权限是:4—读  2—写  1—可执行。
特殊权限:4--SUID  2—SGID   1---STICKY BIT
chmod 777 file/diretory      改变目录访问权限(完全访问)

范例:
chmod a=rwx file

chmod 777 file
效果相同
chmod ug=rwx,o=x file

chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的权限

chmod -R 1777 /home/samba/exchange 
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能
自由写文件,但不能删除别人的文件这个要求

问题:在linux如何访问windows的文件。
解决:通过smbclient程序,具体用法如下:
1. smbclient -L hostname <-U username> 说明:列出指定主机的共享资源。 
2. smbclient server//共享名 <-U username> 说明:连接网络共享资源。其用法类似ftp。 
3. smbmount server//共享名 -c 'mount /mnt/smb' 说明:安装指定主机的共享名到本地
的目录 注意:分隔符为反斜杠。

问题:安装samba后不能共享目录。
解决:如下配置smb.conf参数解决。smb.conf里面的参数太多。如果要用好SAMBA服务
需花时间研究。
samba三种典型配置
pub - 不需要密码,且可读写及删除文件。   
  read-only - 不需要密码,但只可以读取文件。   
  user1 - 需要密码,可读写及删除文件。 
   
  步骤如下: 
   
  一、首先以root身分登录进入系统。 
   
  二、编辑/etc/smb.conf文件,将"unix password sync = no"这个一句改为
   "unix password sync = yes"。这样子的话,以后系统增加使用 
  者时,会自动将该使用者的密码也更新到/etc/smbpasswd内 (Samba的帐号密码文件)。 
   
  三、到/home目录下增加下列目录,并指定这些目录的权限:  
   
  /home/pub nobody:nobody 777    
  /home/read-only root:root 755    
  /home/user1 user1:user1 700 
   
  四、编辑/etc/smb.conf这个文件,修改: 
   
    security = share 
   
  五、编辑/etc/smb.conf这个文件,到文件最后面增加下面几句: 
   
    [public] 
    comment = Public Areas 
    path = /home/pub 
    browseable = yes 
    guest ok = yes 
    writable =yes 
   
    [read-only] 
    comment = Read-Only Areas 
    path = /home/read-only 
    browseable = yes 
    guest ok = yes 
   
    [user1] 
    comment = Password Required 
    path = /home/user1 
    browseable = yes 
    writable = yes 
   
   完成后存盘离开。 
   
  六、重行运行Samba: 
   
    /etc/rc.d/init.do/smb restart 

2003年7月22日
问题:samba不能share = user方式登录?
解决:没有正确配置samba用户和密码文件。正确配置方法如下:
1、建立Samba帐户文件,编辑帐户文件/etc/smbpasswd,删除不需要的帐户(不是必须)。 
# cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd 
# vi /etc/smbpasswd 
2、编辑smbusers文件,增加samba用户名。
3、利用smbpasswd命令建立帐户的口令,最好与/etc/passwd的帐户口令相同。 
# smbpasswd Samba用户名。没有修改前smbpasswd中用户密码用XXX表示,建立口令后
是一串密文。 
4、编辑/etc/smb.conf文件, 修改[global]段的security=user,encrypt passwords = yes。

2003年7月23日
问题:在字符界面下vi程序和一些启动信息乱码。
解决:修改/etc/sysconfig/下的i18n文件,LANG改成“en_US.UTF-8”,可显示英文,但不
知道在字符界面下能否显示中文提示?

问题:在WINDOWS登录不了LINUX的SAMBA服务?
解决:防火墙设置不对。用LOKKIT设置后解决。防火墙的设置很重要,以后需花时间研
究一下IPTABLES。

问题:在TEST共享文件夹下不能看文件,但能建文件。(可能是文件夹权限设置问题)
解决:文件夹设置了777的权限,但文件是后来拷贝过去的,没有设置777权限。重新设置
后问题解决。

2003年7月24日
问题:不能远程登录MYSQL数据库。出现错误提示:ERROR 2013: Lost connection to MySQL
server during query。
解决:在网上查过资料后知道是REDHAT 8 的BUG,在my.cnf配置文件的[mysqld]中加一
句skip-name-resolve,重启数据库,问题解决。但具体原因还有明白。对配置文件的参数不
了解,如果要使用MYSQL数据库要买有关书籍学习一下。

问题:用rpm包安装MYSQL,PHP后,PHP不能连接MYSQL,出现错误提示:“Call to undefined
function: mysql_connect() in......"?
解决:要安装php-mysql-4.2.2-8.0.5.i386.rpm,在安装光盘3上有。

问题:下载了mysql-standard-4.0.14-pc-linux-i686.tar.gz,解压后不能安装?
解决:由于下载的是二进制版,所以不用安装,只要按安装手册中的要求进行目录权限等的
配置就可以了。具体操作在手册上有。以原码方式发布的软件才需要通
过./configure,make,make install等步骤安装。

7月28日
经验:安装配置一种软件前最好先阅读一下操作手册,里面已把安装使用中的问题和安装方
法列了出来,可以减少我们摸索的时间。网上也有很多有用的资源,但由于系统性差,分散,
查起来比较费力。所以最好是先看手册,再查网上资料。

经验:
1、进行MYSQL源码编译时的操作步骤(源自操作手册)
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root  /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
2、进行MYSQL二进制版安装时的操作步骤(源自操作手册)
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root  .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
or
shell> bin/mysqld_safe --user=mysql &

问题:APACHE 2.0.47+MYSQL+PHP4.3.2整合。
解决:先安装MYSQL,安装方法如上。PHP手册提示,在企业应用中不要使用APACHE2.X
与PHP的组合, 可能是APACHE2.X与PHP间的集成应用还没有充分测试。可能存在BUG。
所以不建议使用,但由于只是用于学习,所以选择APACHE2.0.47+PHP4.3.2的组合。上网
查过资料,现时只提供DSO(动态共享对象)方式集成。安装方法是参照php4.3.2的手册。
安装说明(Apache 2 共享模块版本)
1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install
    现在您已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块
    和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:
    /usr/local/apache2/bin/apachectl start
    如果成功,您可以停止 Apache 服务器并继续安装 PHP:
    /usr/local/apache2/bin/apachectl stop.
9.  cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini
    编辑 php.ini 文件以修改 PHP 的选项。如果您想要把此文件放到另外的位置,您需要
    在步骤 10 添加 --with-config-file-path=/path 选项。
14. 编辑 httpd.conf 文件,确保其包含如下两行:
   LoadModule php4_module modules/libphp4.so
   AddType application/x-httpd-php .php
  您可以在这里选择各种扩展名。.php 是我们推荐的最简单的扩展名。
  LoadModule 命令的右边参数必须指向您系统中 PHP 模块的路径。如果您完全按照前面

  步骤配置,那么此路径就应该为 modules/libphp4.so。
15. 启动您的 Apache 服务器:
   /usr/local/apache2/bin/apachectl start
./configure --with-apache=/path/to/apache_source这个配置将生成 libmodphp4.a 库,
mod_php4.c 和一些相关的文件并且拷贝到 Apache 源程序目录中的 src/modules/php4 目
录下。然后用 --activate-module=src/modules/php4/libphp4.a 编译 Apache,Apache 编译系统
会生成 libphp4.a 并且将其静态地连接到 httpd 程序中。也就是我们说的静态编译方式。

7月30日
问题:使用PARTED工具分区时出错,造成系统文件系统出错,操作该工具时要小心。

8月19日
chmod 0750 /root &&
chmod 1777 /tmp /var/tmp
第一个命令确保不是所有的用户可以进入/root 目录(其他用户主目录有同样的访问权限)。
第二个修改是对$LFS目录下的所有tmp目录的访问权限设置为1777,以使所有用户可以写
入数据到/tmp或/var/tmp目录,但是不能删除其他用户创建的文件,不能删除其他用户的目
录是由sticky位,也就是1777的1来设定的)。
查看内核启动信息的方式是使用“dmesg”命令。 直接运行这个命令(不带参数)会将刚
才的启动信息调出来。 将它们定向到一个文件,使用“dmesg > temp”
8月18—22日
安装LFS
安装环境:WINDOWS 2003企业版服务器+VMWARE WORKSTATION 4.0+REDHAT 8.0
LFS分区文件系统:reiserFS
参考资料:http://lfs.linuxsir.com/htdocs/lfs/ 和本论坛的相关贴子
历时五天,在编译程序上开的时间最多。
出现的问题:
1、 chroot不成功,出错信息:not such file or directory。原因是有些程序不是静态链接。重
2、 新编译后成功chroot。
3、 编译动态PERL时出错,出错信息:找不到g++编译器。原因是我编译GCC时只是解了
4、 CORE包,没有解G++包。同时解压两个包,重新编译GCC,再编译PERL通过。
3、用GRUB启动LFS内核时出错,定在那里死机了,出错信息是说什么VF找不到之类,
原因是没把VMWARE的SCSI驱动加到内核(SCSI support->SCSI low-level
drivers->BusLogic SCSI support),把驱动加到内核重启系统正常。
BLFS BEGINNING.............

8月26日
/etc/skel目录
在LFS系统上面的新用户拥有一样的初始设置。 /etc/skel目录是被 /usr/sbin/useradd 使用
的。阅读man useradd可以得到更多信息开始需要建立一个/etc/skel 目录,最好使用root用
户。然后把你想要新用户拥有的配置文件拷贝到/etc/skel目录。比
如: .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc, 和 .vimrc。
useradd -m -s/bin/bash test 可以建立test用户,并在、/HOME目录下建立相应目录。
/usr/sbin/useradd使用了一系列缺省设置,位于 /etc/default/useradd(如果这个文件存在的话)。
如果这个文件不存在,它会使用其内部缺省设置,可以用/usr/sbin/useradd -D 来列处这些设
置。

在启动的时候vim会读取 /etc/vimrc 和 ~/.vimrc (也就是说, 全局设置的vimrc 和用户设
置)。
设置DNS解释
>cat /etc/resolv.conf
nameserver 192.168.3.2

9月17日
APACHE2.0中的<Directory>指令总是用于磁盘上的目录;<File>应用于单独的文件;
<Location>应用没有相应目录或者文件的请求。<Directory~>等同于<DirectoryMatch>。

浏览器可以告诉服务器它们所偏爱的语言,内容编码以及字符集。如果服务器拥有相同文档
的多个版本,那么它就应该使用浏览器的偏好,以确保发送正确的页面。选择发送哪个文件
的工作要由mod_negotiation来执行。

9月19日
--enable-modules=most|all|list        静态配置模块
--enable-mods=most|all|list           DSO配置模块

增加外部模块:
方法一:./configure –with-module=module_type:/path/to/external_module.c
方法二:需要模块作者建立configure.m4的文件。

符号链接会出现安全问题,配置时需小心,符号链接不能配置认证。

允许文件存在于DocumentRoot以外,用Alias,AliasMatch
Alias /builds /raid/autobuilds/current_tarballs

文件移动重定向
Redirect [status_code] requested_URL new_URL

让用户拥有自已的站点
UserDir disable        禁止所有用户的站点
UserDir disable [user list]  禁止列表上的用户拥有站点
UserDir enable [user list]  启用列表中用户的站点

UserDir public_html   请求~user就会查找用户主目录下的public_html目录,该目录名称可
变。

UserDir http://www.server.com/users重定向 http://www.server.com/users/a
UserDir http://www.server.com/*/users 重定向  http://www.server.com/a/users
UserDir http://www.server.com/~*/users 重定向  http://www.server.com/~a/users

9月22日
使系统对PING没有反应
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
查找所有SUID,SGID位有效的文件
find / -type f /( -perm -04000 –o –perm -02000 /) /-exec ls –lg {} /;

查找没有主人的文件
find / -nouser –o nogroup

2003年12月26日
问题:启用DHCPD,DNS,WINS后,客户端浏览共享目录出现登录慢,浏览慢现象。
解决:由于把hosts文件的主机名取消了。重新添加主机名后故障排除。

2004年02月02日
文件属性
chattr命令修改
lsattr命令列出文件属性

文件属性定义
A    不要更新atime文件,当在笔记本电脑或NFS上限制磁盘I/0流量时,很有用,除2.0
系列外,这一属性不被其它内核支持。
a    文件仅能以追加方式打开,只有root才能设置这个属性。
c    文件保存在磁盘时,内核将自动压缩该文件。
d    文件标记,使其不能被转储。
i     文件不能被修改,删除或重命名,不能创建任何指向它的链接,并不能写入任何数据。
s    删除文件时,相应的磁盘存储块清零。
S    修改文件时,对其写入进行同步。
u    删除文件时,保存其内容。

Ulimit命令   设置限制     可以把命令加到profile文件里,也可以在
/etc/security/limits.conf文件中定义限制。
命令参数
-a      显示所有限制
-c      core文件大小的上限
-d      进程数据段大小的上限
-f      shell所能创建的文件大小的上限
-m     驻留内存大小的上限
-s      堆栈大小的上限
-t      每秒可占用的CPU时间上限
-p     管道大小
-n     打开文件数的上限
-u     进程数的上限
-v     虚拟内存的上限

2004年2月3日
awk ‘{print $2}’  提取第二列数据
cut –d ‘:’ –f1     抽取第一个:号划定的域

samba用户级共享设置问题。
共享的目录权限要设置正确,

2004-3-12
samb共享
如果你没有目录的执行权限,就不能向这个目录拷贝文件夹。共享目录的掩码不能设置成
0660,要设成0770。
改变系统权限后,要重启SAMBA,权限才能生效。

2004-3-17
问题:使用scp拷贝大文件时会出现stalled(延迟),而且时间很长。
估计原因是两个主机硬盘速度相差太远所致。

2004-3-18
问题:SSH服务器不能用公钥认证方式登录。
原因:用户下的.ssh目录权限有问题,通过查询系统日志可看到出错提示。用ssh-keygen程
序自动建立.ssh目录后,登录成功。

使用 GnuPG
1、 加密
在生成密钥之后,我们就可以开始使用GPG来加密文件了。创建一个文本文件
test.file,输入一些字符,然后保存。
[root@tipy root]$ gpg -ea -r name test.file
其中name是你在上面用来生成密钥时输入的用户名,用这个用户名加密的文件
只能由这个用户名来解密。回车之后就会生成一个
test.file.asc的文件,这个就是加密之后的文件。-e 选项告诉GPG进行加密,
-a 选项告诉GPG加密成ASCII,这样适合邮件发送,而且还可以查看。如果不
是加密成ASCII形式,可以加密成二进制。-r 指定加密的用户。

2、解密
[root@tipy root]$ gpg -d test.file.asc >test.file
敲入回车以后,会要求你输入密码,只有输入上面生成密钥时的那个密码就行了,


15:35 2004-3-25
新安装软件的man文档设置。使用/etc/man.config配置文档。在该文档中添加MANPATH
/usr/local/samba/man

15:32 2004-3-31
问题:安装redhat as 3.0,windows xp双系统。MBR在是windows xp的引导块。linux的引
导块装在分区的超级块中。用windows xp的引导程序引导双系统。由于在安装grub时没有
强制硬盘用LBA模式。造成系统安装后不能启动。
解决办法:用安装引导盘引导电脑,执行如下操作:
#chroot /mnt/sysimages
#grub-install --force-lba /dev/hdx 
再用dd if=/dev/hdx bs=512 count=1 of=/mnt/boot.lin生成引导文件,再把该引导文件拷贝到
windows系统分区,引导成功。

10:14 2004-4-1
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这
个命令.
ldconfig命令行用法如下:
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c
FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
ldconfig可用的选项说明如下:
(1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有
它所创建的连接的名字.
(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫
描配置文件/etc/ld.so.conf所列的目录.
(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更
新文件的连接.
(4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.
(5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.
(6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件
存放已排好序的可共享的动态链接库的列表.
(7) -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项
时,系统默认的配置文件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打
开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加
动态链接库管理的灵活性.
(8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将
进入专家模式,需要手工设置连接.一般用户不用此项.
(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
(10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三
种:old(老格式),new(新格式)和compat(兼容格式,此为默认格式).
(11) -V : 此选项打印出ldconfig的版本信息,而后退出.
(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后
退出.

9:00 2004-4-6
在vimrc配置文档中设置 set nobackup,关闭vim的自动backup功能,使用文档存盘时不自
动生成“~”文档。

11:08 2004-4-30
domino for linux服务器配置方法。
按提示完成服务器安装后,要进行服务器配置,步骤如下:
1、先检查notes用户的环境变量,是否指向正确的lotus/bin和notesdata目录。
2、进入bin目录,执行./server -listen命令。这样服务器就起动了8585端口,用于服务器配
置。
3、要进行服务器配置,需要在 x windows 或windows下进行。如果你是在服务器端进行配
置的,那么你直接打server -remote命令就会启动一个java的配置程序进行配置。如果从远
程进行配置,就需要安装domino administrator client,并选择安装remote server setup程序。
这样就会安装serversetup.exe程序,最后在命令行输入serversetup.exe就可以了。
4、进行java界面后,所有的后续配置方法和windows的一样。
5、配置完成后,就可以用./server命令起动服务器了。

12:40 2004-7-8
配置syslogd作为中央日志主机
a. 在中央日志主机的/etc/sysconfig/syslog中修改如下:
SYSLOGD_OPTIONS="-m 0 -r"
-r (remote)表示接受来自远程主机的日志

b. 在其他机子上的/etc/syslog.conf中加入一行
*.* @<中央日志主机的主机名或IP地址>

c. 重启syslogd
killall -HUP syslogd

d.可通过配置logrotate.conf设置日志文件的个数,大小和轮换周期等参数。由于logrotate不是后台进
程,所以为了自动化,要在cron里设置。

22:30 2004-07-28
在客户端通过pptp client 软件连接vpn服务器的配置过程。
到以下网址http://pptpclient.sourceforge.net/。下载pptp client软件,如果你的ppp拔号程序太旧的话也要
升级。具体安装方法这里就不讲了,大家可参照说明文档,配置客户端有两种方法,一种是用图
形界面的自动配置过程 ,另一种是手动配置过程,以下介绍的是我的手动设置过程。自动配置过
程大家可参考网站上的说明。
1、在/etc/ppp目录下建立一个options.pptp文件,写入以下内容:lock noauth nobsdcomp nodeflate。

2、在/etc/ppp目录下建立一个chap-secrets文件,如果你配置了拔号程序,一般这个文件是已经有
了的,加入以下两行用以设置vpn连接的用户名和密码。
"username" "PPTP" "password" *
"PPTP" "username" "password" *
注意:该文件会被系统的拔号配置程序自动改写,所以请大家设置时小心该文件内容是否正确。

3、建立一个/etc/ppp/peers/connect 连接文档。内容如下:
pty "pptp vpnserver --nolaunchpppd"
name username
remotename PPTP
require-mppe-128     #如果不用MPPE支持,则不要这句。
file /etc/ppp/options.pptp
ipparam connect

4、好了,配置完成 ,可以开始连接VPN服务器了。在连接前首先要连通INTERNET。再执行
pon connect 语句进行连接。如果想显示连接时的调试信息可以执行以下命令。
pon connect debug dump logfd 2 nodetach
连接成功后可用ifconfig命令显示接口信息。

5、连接成功后就可与服务器通信了,但如果要有其它子网通信,就要增加路由信息,具体可参
考网站上的设置。例如要和192.168.1.0子网通信可这样写:
$ route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp1

6、停止命令用poff connect 。

注1: pon 和 poff命令可在ppp源码目录下的scripts目录中找到。
注2: 网卡的网关要设成0.0.0.0才可以连接到internet。

2004/08/20
问题:通过xhost打开权限后,远程x客户程序还是不能在本机上显示。
解决:本机的x window server没有监听远程tcp连接,设置方法是修改/etc/X11/xinit/xserverrc,
去掉X启动命令的-nolisten tcp选项。重启X Server就可以了。
$ xhost +x   允许所有x客户程序在本机显示。
$ xhost + 192.168.0.1    允许指定ip的电脑上的x客户程序在本机显示。
$ xhost -     不允许在本机显示。
$ kwrite -display 192.168.0.2:0&    把kwrite的输出显示到192.168.0.2的显示器上。

2004/08/31
在debian中安装grub的方法。
1 apt-get install grub
2 grub-install /dev/hda    hda为启动硬盘
3 update-grub
4 reboot
ok!

2004/09/28
配置python cgi运行环境的方法。
系统:apache2.0.50 for windows + activepython + windows xp
安装过程:
下载相关安装包,双击运行。apache和activepython安装顺序可随意。
配置:
其实不用配置什么,网上和官方文档都说要配置httpd.conf中的Addhandler参数。设置成:
Addhandler script-cgi .cgi .py
但我试过不设也能正常运行python写的程序。
测试:
很多人配置不成功其实是cgi程序写得不好,没有注意一些标点符号和换行符。
下面一段测试过和代码:
#!c:/python23/python.exe         这一句可按你实现安装的python路径设置。
print "Content-type: text/plain/n"     这里的/n一定要有,不然会出500错误
print "hello world"                    你不写/n也可以,但一定要和第二句代码间有一行空行。如下所示:
#!c:/python23/python.exe
print "Content-type: text/plain"

print "hello world"



在linux下的配置也很简单,软件安装也没什么特别的。到apache和python总站上下载相关软件安装完成后,就可开始配置。
配置:
httpd.conf也不用动。只要确保cgi-bin目录下的python脚本有执行的权限就可以了。
测试:
脚本编写也和上面说的一样。只是python程序的路径不同而已。
#!/usr/bin/python
print "Content-type: text/plain"

print "hello world" 
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值