Submitted by admin on 2008, January 5, 3:11 PM
Submitted by admin on 2007, October 18, 10:31 AM
1、在/etc/fstab中加上对应分区的POSIX ACL支持:
LABEL=/home /home ext3 defaults,usrquota,grpquota,acl 1 2
2、执行命令:
setfacl -m default:u:user1:rwx /home/user1/www/upload
Submitted by admin on 2007, October 18, 10:31 AM
mount -t ext3 -o remount,rw <mount point>
Submitted by admin on 2007, September 14, 10:05 AM
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "zh_US"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
这是编译器的内码不支持zh_US的缘故,您在编译前,先
export LC_ALL=en_US
export LANG=en_US
Submitted by admin on 2007, August 22, 9:39 AM
具体例子:
———————————————————————————————————
#dd if=/dev/zero ōf=swapfile bs=1024 count=8192
#mkswap swapfile 8192
#sync
#swapon swapfile
——————————————————————————————————
解释:
dd if=/dev/zero ōf=/swap bs=1024 count=131070
/swap为文件名 count 为文件大小
mkswap命令建立swap分区
mkswap 在一个设备上或者在一个文件里创建一个linux交换区。
请一定小心使用mkswap , 因为它不检查文件或分区是否被其他东西使用。 你可能用mkswap 很容易地覆盖了重要文件和分区! 幸好,你只需在你安装系统时使用mkswap ,后可以跟文件大小,是单位是块。
mkswap /swap
swapon /swap
启用/swap 作为虚拟内存
swapoff /swap
//关闭swap作为虚拟内存
rm /swap //删除文件
对换空间如果列入/etc/fstab ,就可自动使用。
/dev/hda8 none swap sw 0 0
/swapfile none swap sw 0 0
附:
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd 的主要选项:
指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m
if=file
输入文件名,缺省为标准输入。
of=file
输出文件名,缺省为标准输出。
ibs=bytes
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks
从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks
从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
count=blocks
仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
c[,conversion...]
用指定的参数转换文件。
转换参数:
ascii 转换 EBCDIC 为 ASCII。
ebcdic 转换 ASCII 为 EBCDIC。
ibm 转换 ASCII 为 alternate EBCDIC.
block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
unblock
使每一行的长度都为 cbs ,不足部分用空格填充。
lcase 把大写字符转换为小写字符。
ucase 把小写字符转换为大写字符。
swab 交换输入的每对字节。 Unlike the
Unix dd, this works when an odd number of
bytes are read. If the input file contains
an odd number of bytes, the last byte is
simply copied (since there is nothing to
swap it with).
noerror
出错时不停止。
notrunc
不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
由于 dd 命令允许二进制方式读写,所以特别适合在原始物理设备上进行输入/输出。例如可以用下面的命令为软盘建立镜像文件:
dd if=/dev/fd0 ōf=disk.img bs=1440k
有趣的是,这个镜像文件能被 HD-Copy ,Winimage 等工具软件读出。再如把第一个硬盘的前 512 个字节存为一个文件:
dd if=/dev/hda ōf=disk.mbr bs=512 count=1
Submitted by admin on 2007, August 18, 11:53 AM
安装和你的Linux版本和内核相对应的版本,这一点非常重要,否则将无法使用。
通过“whichrpm”script 快速知道你的Linux版本和内核:
# chmod 700 whichrpm
# ./whichrpm
接下来,我们再查看我们使用的是什么Release
# cat /etc/redhat-release
查看内核版本
# uname -r
查看你使用的CPU类型
# rpm -q --queryformat "%{ARCH}\n" kernel
现在你可以根据你得到的相应的参数,去http://www.linux-ntfs.org上下载相对应的版本了。
# rpm -ivh kernel-module-ntfs-2.6.15-1.2054_FC5-2.1.26-0.rr.10.0.i686.rpm
安装必须不报错!
安装内核模块 # /sbin/modprobe ntfs
显示内核日志 # dmesg | grep NTFS
NTFS driver v1.1.22 [Flags: R/O MODULE]
检查内核是否支持ntfs # cat /proc/filesystems
至此,所有安装工作完成了,下面只要mount NTFS分区了,怎么做不用多说了吧,顺便说一下,如果你装错了版本,想Uninstall,请输入以下命令:
# rpm -qa | grep -i ntfs
kernel-module-ntfs-2.6.15-1.2054_FC5-2.1.26-0.rr.10.0 (你的可能和这个不一样)
# rpm -e kernel-module-ntfs-2.6.15-1.2054_FC5-2.1.26-0.rr.10.0
译自:http://www.linux-ntfs.org
whichrpm脚本 http://data.linux-ntfs.org/rpm/whichrpm
有了这个模块就方便了,不用重新编译内核了,哈哈,爽呀
Submitted by admin on 2007, August 18, 10:19 AM
i386,i486,i586分别是针对80386,80486,80586编译的包,i686就比较广泛了,从p2开始x86处理器就进入了p6构架的时代,一直到现在都是p6架构。新架构的cpu向下兼容为旧架构编译的软件包.
i386.rpm与i686.rpm有什么区别?
x86体系结构虽然指令都一样,但是不同时代的具体实现,在编译优化上还是有自己的特点,而且后一代往往会多出一些指令,所以编译RPM时,可以针对不同的体系结构作不同的编译选项优化。
一般而言, 所有x86处理器都能执行386的指令集
80486处理器当然需要 486 的优化
Pentium 就是 586
PentiumPro (P6) 之后的统称为686, 包含了PentiumPro, PentiumII, PentiumIII和P4
出于效率考虑,在编译核心和glibc这样的软件包的时候,都是为不同体系结构编译不同的包,安装的时候选择适合自己机器的,以便得到最好的效率。
目前而言,只要有686的包,那就不必考虑386的包。
Submitted by admin on 2007, August 15, 12:39 PM
在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more 131 24204 57 24244 57 24231 56 24264
其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。ps -aef|grep 24204 mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原来是mysql进程打开最多文件句柄数量。但是他目前只打开了131个文件句柄数量,远远底于系统默认值1024。
但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后。(findsun提出的办法比较合理)