工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表分类:linux

让普通用户删除其目录下的APACHE用户产生的文件

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

linux下重新挂载文件系统

mount -t ext3 -o remount,rw <mount point>

一个locale的问题

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

linux下的swap

具体例子:
———————————————————————————————————
#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

如何安装Linux-NTFS


  安装和你的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

有了这个模块就方便了,不用重新编译内核了,哈哈,爽呀

linux下i386,i486,i586,i686的区别

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的包。

个进程能够打开最大文件句柄数

在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提出的办法比较合理)

Red Hat将推出RHEL5管理使用知识手册

Tammy Fox已经厌倦了Red Hat Inc.公司的众多头衔,包括技术作家,文档团队的领导人,Red Hat杂志的创始编辑。她已经专门从事Linux写作长达7年的时间了。换句话说,她了解Red Hat Linux。

  Fox的最新工作,就是Red Hat企业版 Linux 5管理的发布,预计可在本月拿到,这是一本针对高级Linux系统管理员的大部头知识手册。在出版之前,Fox接受了 SearchEnterpriseLinux.com的采访,提供了一些关于最新版本的Linux社区的领先的商业发布,Red Hat Enterprise Linux 5 (RHEL 5),的内幕.

  一般来说,要顺利升级到RHEL 5的话,你可以分享的最好的实践方案或者技巧是什么呢?

  Tammy Fox:基本上,使用安装程序来升级你系统中任何现有的RPM包。如果新版本的包包含了一些让你现有的配置失效的变更,那么一些包就会尝试移植你现有的数据,但是这不是必需的。

  最好的实践方案就是让你的数据在一个专用的存储系统中,在更新安装的时候,不要更改格式。根据你的企业的规模,它可以是SAN,数据集群,或者仅仅是你系统中几个专用的硬盘。备份你现有的数据和配置文件,然后执行更新安装文件。重新挨个存储你的配置文件,测试每个程序。确保密切关注软件版本是否从原先的RHEL变更到了RHEL 5。最后,重新连接你的数据存储解决方案,并且如果必要的话,再执行一个额外的测试。

  当然,在产品系统中实现这些计划之前,所有这些步骤都应该是在一个测试系统中进行。

  从管理员的角度来看,RHEL 4的部署和RHEL 5的部署有什么关键的区别吗?

  Fox:他们能注意到的最直接的变化就是安装代码的引入。在安装过程中,必须输入安装代码。这些代码是由Red Hat生成的。根据你购买的服务,他们会解开不同的RHEL 5组件,例如虚拟化和高可用性。RHEL 5还使用了新的RPM GPG关键字。如果升级的话,你还会需要在升级包之前安装新的关键字。

  接下来一个显著的改变就是一些软件的管理和维护移动到了YUM。在先前版本的RHEL中,up2date命令可以用于从Red Hat网络中下载并安装软件更新。它已经被YUM命令替代,所有的up2date图形化程序都已经被使用YUM的图形化程序所替代。如果你在RHN网站上安排了包的升级和安装,那么你就可能不会注意到这个差别。

  管理员还必须考虑到是否使用RHEL5中的虚拟化特性。(编辑提示:由于商标问题,Red Hat目前作为虚拟化引用的是基于Xen的管理程序技术。)如果你的硬件支持,并且你的系统有足够的资源供主系统和虚拟机分享的话,虚拟化可以帮助你减少需要维护的实际机器的数量。如果你提供的是服务,或者允许你的客户通过shell访问到他们的网站,那么虚拟化是有好处的。

  管理员应该通读警告中的完整列表,以便了解有关RHEL 5的问题。例如,和Windows Vista的双启动需要额外的GRUB步骤来启动Windows Vista。

SELinux在RHEL 5下已经变得更容易使用了吗?

  Fox:就像所有正在开发中的开源技术一样, SELinux都会随着Red Hat 企业级 Linux 和Fedora的每一次发布而有所长进。当然,有的IT经理仍然不愿意使用SELinux,但是RHEL 5的版本已经明显得到了改善。

  通过引入SELinux管理工具(SELinux Management Tool)和SELinux问题解决器(SELinux Troubleshooter),要判断是哪一个服务和程序被SELinux所保护就容易得多了。另外在不需要写下你的策略的前提下定制策略也变得更加简单。SELinux布尔可以用来实现这一点,通过SELinux管理工具,你可以打开或者关闭这个功能。

  当由于SELinux的原因导致服务失败的时候,SELinux Troubleshooter就会向管理员发出警报。它还可以提供关于如何解决问题的建议,同时不会妨碍SELinux对服务的保护。

  当从Xen转换到RHEL 5的时候,发生的变化会导致Red Hat Linux的管理员的工作方式发生变化吗?

  Fox:由于RHEL 5中引入了虚拟化,管理员们现在必须要考虑一下是否继续为每个操作系统实例使用单个的物理的服务器,或者是虚拟机的性能是否可以满足。当然,提供专用的网络服务器的网络主机公司可以从虚拟化中得到好处,因为每个客户端都有它们自己的IP地址和寄宿操作系统了。主机系统中的虚拟机不能访问主机上其他虚拟机上的数据,所以客户端数据是隔离的,那么一个实际的服务器上就可以提供多个客户端了。

  IT经理们应该知道,虚拟化也具有硬件的需求。现在,RHEL 5上的虚拟机只支持x86 和x86_64的系统。这是为Itanium2提供的,但是只是作为技术预演而已。除了专属于每个虚拟机的足够的处理器、内存和磁盘空间这些明显的需求之外,处理器还要有物理地址扩展支持。要充分使用虚拟化——寄宿的操作系统不一定要意识到虚拟机层的存在——处理器必须是64位的,并且必须由硬件虚拟机层。

  eWEEK 上有一篇关于RHEL5 的评论说,Xen支持是个“半成品”——你是怎么看这个问题的?

   Fox:在SELinux 上,你可以看到对虚拟化的支持随着时间不断增强。基本的功能已经在那里了。你可以创建一个虚拟机,在虚拟机上安装一个寄宿操作系统,然后连接到寄宿操作系统上,如果它是一个运行在单独硬件上的操作系统的话。虚拟机有自己的IP地址,不可以访问宿主系统中的数据,等。

  还有一些部分具有改善的巨大空间,就像任何第一次引入的软件一样。因为它是开源的,所以提供这些类型的新技术是非常重要的,这样他们就可以被大多数人所用,其他的开发人员和公司也可以支持它。一些问题是已知的,例如虚拟机管理器无法启动列在RHEL 5发布通知中的虚拟机。然而,这个特殊的问题要特殊分析,是在通过首先使用命令行来启动虚拟机的情况下发生的。这个问题将会在我的书中进行讨论。