2012年5月30日星期三

RAID和LVM综合使用 转

由于 LVM 可以弹性调整 filesystem 的大小,但是缺点是可能没有加速与硬件备份(与快照不同)的功能。 而磁盘阵列则具有性能与备份的功能,但是无法提供类似 LVM 的优点。在此情境中,我们想利用『在 RAID 上面建置 LVM』的功能,以达到两者兼顾的能力。


目标:测试在 RAID 磁盘上面架构 LVM 系统;
需求:需要具有磁盘管理的能力,包括 RAID 与 LVM;


那要如何处理呢?如下的流程一个步骤一个步骤的实施看看吧:


1、复原系统时,你必项要:
 利用 umount 先卸除之前挂载的文件系统;
 修改 /etc/fstab 里面的数据,让开机不会自动挂载;


 利用 fdisk 将该分割槽初除。


最终你的系统应该会只剩下如下的模样:(/dev/sd{b,c,d,e,f}都是已经用mkds格式化为ext3)



  1. Disk /dev/sdb: 8589 MB, 8589934592 bytes  

  2. 255 heads, 63 sectors/track, 1044 cylinders  

  3. Units = cylinders of 16065 * 512 = 8225280 bytes  


  4. Disk /dev/sdb doesn't contain a valid partition table  


  5. Disk /dev/sdc: 8589 MB, 8589934592 bytes  

  6. 255 heads, 63 sectors/track, 1044 cylinders  

  7. Units = cylinders of 16065 * 512 = 8225280 bytes  


  8. Disk /dev/sdc doesn't contain a valid partition table  


  9. Disk /dev/sdd: 8589 MB, 8589934592 bytes  

  10. 255 heads, 63 sectors/track, 1044 cylinders  

  11. Units = cylinders of 16065 * 512 = 8225280 bytes  


  12. Disk /dev/sdd doesn't contain a valid partition table  


  13. Disk /dev/sde: 8589 MB, 8589934592 bytes  

  14. 255 heads, 63 sectors/track, 1044 cylinders  

  15. Units = cylinders of 16065 * 512 = 8225280 bytes  


  16. Disk /dev/sde doesn't contain a valid partition table  


  17. Disk /dev/sdf: 8589 MB, 8589934592 bytes  

  18. 255 heads, 63 sectors/track, 1044 cylinders  

  19. Units = cylinders of 16065 * 512 = 8225280 bytes  


  20. Disk /dev/sdf doesn't contain a valid partition table  


2、建立 RAID ,假设我们利用五个(/dev/sd{b,c,d,e,f}) 8GB 的分割槽建立 RAID-5 ,且具有一个 spare disk



  1. [root@www.linuxidc.com ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{b,c,d,e,f}  

  2. mdadm: /dev/sdb appears to contain an ext2fs file system  

  3.     size=8388608K  mtime=Thu Jan  1 08:00:00 1970  

  4. mdadm: /dev/sdc appears to contain an ext2fs file system  

  5.     size=8388608K  mtime=Thu Jan  1 08:00:00 1970  

  6. mdadm: /dev/sdd appears to contain an ext2fs file system  

  7.     size=8388608K  mtime=Thu Jan  1 08:00:00 1970  

  8. mdadm: /dev/sde appears to contain an ext2fs file system  

  9.     size=8388608K  mtime=Thu Jan  1 08:00:00 1970  

  10. mdadm: /dev/sdf appears to contain an ext2fs file system  

  11.     size=8388608K  mtime=Thu Jan  1 08:00:00 1970  

  12. Continue creating array? y  

  13. mdadm: array /dev/md0 started.  


3、开始处理 LVM ,现在我们假设所有的参数都使用默认值,包括 PE ,然后 VG 名为 raidvg ,LV 名为 raidlv ,底下为基本的流程:



  1. [root@www.linuxidc.com ~]# pvcreate /dev/md0   

  2.   Physical volume "/dev/md0" successfully created  

  3. [root@www.linuxidc.com ~]# vgcreate raidvg /dev/md0   

  4.   /dev/cdrom: open failed: 只读文件系统  

  5.   Attempt to close device '/dev/cdrom' which is not open.  

  6.   /dev/cdrom: open failed: 只读文件系统  

  7.   Attempt to close device '/dev/cdrom' which is not open.  

  8.   Volume group "raidvg" successfully created  

  9. [root@www.linuxidc.com ~]# lvcreate -l 6143 -n raidlv raidvg  

  10.   Logical volume "raidlv" created  

  11. [root@www.linuxidc.com ~]# lvdisplay  

  12.   --- Logical volume ---  

  13.   LV Name                /dev/raidvg/raidlv  

  14.   VG Name                raidvg  

  15.   LV UUID                rBySS0-JxZ6-ANYe-Vp8G-xlUd-Rz1x-G6NjnT  

  16.   LV Write Access        read/write  

  17.   LV Status              available  

  18.   # open                 0 

  19.   LV Size                24.00 GB  

  20.   Current LE             6143  

  21.   Segments               1  

  22.   Allocation             inherit  

  23.   Read ahead sectors     auto  

  24.   - currently set to     768  

  25.   Block device           253:0  


4、挂载



  1. [root@www.linuxidc.com ~]# mkdir /mnt/raidlvm  

  2. [root@www.linuxidc.com ~]# mkfs -t ext3 /dev/raidvg/raidlv   

  3. mke2fs 1.39 (29-May-2006)  

  4. Filesystem label=  

  5. OS type: Linux  

  6. Block size=4096 (log=2)  

  7. Fragment size=4096 (log=2)  

  8. 3145728 inodes, 6290432 blocks  

  9. 314521 blocks (5.00%) reserved for the super user  

  10. First data block=0  

  11. Maximum filesystem blocks=0  

  12. 192 block groups  

  13. 32768 blocks per group, 32768 fragments per group  

  14. 16384 inodes per group  

  15. Superblock backups stored on blocks:   

  16.         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,   

  17.         4096000  


  18. Writing inode tables: done                              

  19. Creating journal (32768 blocks): done  

  20. Writing superblocks and filesystem accounting information: done  


  21. This filesystem will be automatically checked every 21 mounts or  

  22. 180 days, whichever comes first.  Use tune2fs -c or -i to override.  

  23. [root@www.linuxidc.com ~]# mount /dev/raidvg/raidlv /mnt/raidlvm/  


5、开机自动挂载



  1. [root@www.linuxidc.com raidlvm]# mdadm --detail /dev/md0 | grep UUID  

  2.            UUID : 99de722a:bfd56556:7b3978e1:3bf3f4f9  

  3. [root@www.linuxidc.com raidlvm]# cat /etc/mdadm.conf   

  4. ARRAY /dev/md0 UUID=99de722a:bfd56556:7b3978e1:3bf3f4f9  

  5. [root@www.linuxidc.com raidlvm]# cat /etc/fstab | grep /mnt/raidlvm  

  6. /dev/raidvg/raidlv          /mnt/raidlvm            ext3    defaults        1 2  


6、检查



  1. [root@www.linuxidc.com raidlvm]# mdadm --detail /dev/md0   

  2. /dev/md0:  

  3.         Version : 0.90  

  4.   Creation Time : Fri Feb 17 22:26:44 2012  

  5.      Raid Level : raid5  

  6.      Array Size : 25165632 (24.00 GiB 25.77 GB)  

  7.   Used Dev Size : 8388544 (8.00 GiB 8.59 GB)  

  8.    Raid Devices : 4  

  9.   Total Devices : 5  

  10. Preferred Minor : 0  

  11.     Persistence : Superblock is persistent  


  12.     Update Time : Fri Feb 17 22:39:11 2012  

  13.           State : clean  

  14.  Active Devices : 4  

  15. Working Devices : 5  

  16.  Failed Devices : 0  

  17.   Spare Devices : 1  


  18.          Layout : left-symmetric  

  19.      Chunk Size : 64K  


  20.            UUID : 99de722a:bfd56556:7b3978e1:3bf3f4f9  

  21.          Events : 0.2  


  22.     Number   Major   Minor   RaidDevice State  

  23.        0       8       16        0      active sync   /dev/sdb  

  24.        1       8       32        1      active sync   /dev/sdc  

  25.        2       8       48        2      active sync   /dev/sdd  

  26.        3       8       64        3      active sync   /dev/sde  


  27.        4       8       80        -      spare   /dev/sdf  

  28. [root@www.linuxidc.com raidlvm]# cat /proc/mdstat  

  29. Personalities : [raid6] [raid5] [raid4]   

  30. md0 : active raid5 sde[3] sdf[4](S) sdd[2] sdc[1] sdb[0]  

  31.       25165632 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]  


  32. unused devices: <none>  

  33. [root@www.linuxidc.com raidlvm]# pvscan  

  34.   /dev/cdrom: open failed: 只读文件系统  

  35.   Attempt to close device '/dev/cdrom' which is not open.  

  36.   PV /dev/md0   VG raidvg   lvm2 [24.00 GB / 0    free]  

  37.   Total: 1 [24.00 GB] / in use: 1 [24.00 GB] / in no VG: 0 [0   ]  

  38. [root@www.linuxidc.com raidlvm]# pvdisplay  

  39.   --- Physical volume ---  

  40.   PV Name               /dev/md0  

  41.   VG Name               raidvg  

  42.   PV Size               24.00 GB / not usable 3.81 MB  

  43.   Allocatable           yes (but full)  

  44.   PE Size (KByte)       4096  

  45.   Total PE              6143  

  46.   Free PE               0  

  47.   Allocated PE          6143  

  48.   PV UUID               KgwVH9-HwTG-q4it-z0Ps-ACac-Si1y-8RxTkx  


  49. [root@www.linuxidc.com raidlvm]# vgscan  

  50.   Reading all physical volumes.  This may take a while...  

  51.   /dev/cdrom: open failed: 只读文件系统  

  52.   Attempt to close device '/dev/cdrom' which is not open.  

  53.   Found volume group "raidvg" using metadata type lvm2  

  54. [root@www.linuxidc.com raidlvm]# vgdisplay  

  55.   --- Volume group ---  

  56.   VG Name               raidvg  

  57.   System ID               

  58.   Format                lvm2  

  59.   Metadata Areas        1  

  60.   Metadata Sequence No  2  

  61.   VG Access             read/write  

  62.   VG Status             resizable  

  63.   MAX LV                0  

  64.   Cur LV                1  

  65.   Open LV               1  

  66.   Max PV                0  

  67.   Cur PV                1  

  68.   Act PV                1  

  69.   VG Size               24.00 GB  

  70.   PE Size               4.00 MB  

  71.   Total PE              6143  

  72.   Alloc PE / Size       6143 / 24.00 GB  

  73.   Free  PE / Size       0 / 0     

  74.   VG UUID               zlM0TJ-fjR0-b2kO-rCpO-D6L9-zw0m-W3SVzp  


  75. [root@www.linuxidc.com raidlvm]# lvscan  

  76.   ACTIVE            '/dev/raidvg/raidlv' [24.00 GB] inherit  

  77. [root@www.linuxidc.com raidlvm]# lvdisplay  

  78.   --- Logical volume ---  

  79.   LV Name                /dev/raidvg/raidlv  

  80.   VG Name                raidvg  

  81.   LV UUID                rBySS0-JxZ6-ANYe-Vp8G-xlUd-Rz1x-G6NjnT  

  82.   LV Write Access        read/write  

  83.   LV Status              available  

  84.   # open                 1 

  85.   LV Size                24.00 GB  

  86.   Current LE             6143  

  87.   Segments               1  

  88.   Allocation             inherit  

  89.   Read ahead sectors     auto  

  90.   - currently set to     768  

  91.   Block device           253:0  

  92. [root@www.linuxidc.com ~]# df  

  93. 文件系统               1K-块        已用     可用 已用% 挂载点  

  94. /dev/sda3              5991232   2662984   3019000  47% /  

  95. /dev/sda1               101086     11373     84494  12% /boot  

  96. tmpfs                   517548         0    517548   0% /dev/shm  

  97. /dev/mapper/raidvg-raidlv  

  98.                       24766844    176204  23332556   1% /mnt/raidlvm  

  99. [root@www.linuxidc.com ~]# cd /mnt/raidlvm/  

  100. [root@www.linuxidc.com raidlvm]# ll  

  101. 总计 20  

  102. drwx------ 2 root root 16384 02-17 22:37 lost+found  

  103. -rw-r--r-- 1 root root     6 02-17 22:38 tt  

  104. [root@www.linuxidc.com raidlvm]# cat tt   

  105. aaaaa  

2012年5月27日星期日

不早睡就早死 看着办吧

神马都是浮云,钱啦,事业啦,有什么重要的?


现在身体那么差了,还不爱护自己的身体?


那总得为爸妈,为女儿多想想。


我好好的活着,对于他们来说才是最重要的。


我是他们最重要的,他们也是我最重要的。所以,玩什么游戏?玩什么微博?做什么网站?


TMD别找借口了,早点睡吧!!!


为了我最重要的父母,女儿,把身体养好,好好活着。

2012年5月24日星期四

linux网卡的配置与激活

#system-config-network   //进入图形界面配置


#vi /etc/sysconfig/network-scripts/ifcfg-eth0   //或者直接编写配置文件


DEVICE=etho    //第一个网卡是eth0,第二个网卡是eth1


BOOTPROTO=static    //静态IP


HWADDR=00:0C:29:02:7A:E6   //网卡物理地址


ONBOOT=yes    //启动激活


NETMASK=255.255.255.0


IPADDR=192.168.1.123


GATEWAY=192.168.1.1


TYPE=Ethernet


USERCTL=no


IPV6INIT=no


PEERDNS=yes


配置完成后需要关闭一下网卡再激活:


#ifdown eth0


#ifup eth0


配置完成功启动提示如下:


Active connection state: activated


Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1

2012年5月15日星期二

RHCT考试要点之四 磁盘管理 fdisk,raid,quota,lvm

磁盘分区fdisk


#df  查找文件名


如结果中看到/dev/hdc2,那设备名是/dev/hdc,而不用加上数字,因为分区是针对“整个硬盘设备”,而不是对某个分区,所以执行 “fdisk /dev/hdc1”会发生错误。


#fdisk /dev/hdc


Command(m for help):n    (n 新增一个分区,m帮助,p显示分区表,w保存操作,q不保存退了,d删除分区,t设置分区的系统id,系统ID=8e,表示该分区为“linux LVM”,系统ID为82,表示该分区为 swap分区。)


Partition number(1-4):4 分区号


Last cylinder or +size or +sizeM +sizeK(1-512,default512):+512M  输入分区大小


Command(m for help) :p  查看


Command(m for help):w 保存


#partprobe   内核重新加载分区表


#mkfs –t ext3 /dev/hdc4   然后格式化


挂载新硬盘


1,用fdisk分区,格式化


2,建立一个空目录,如:/mnt/newdisk


3. 挂载新的硬盘到新目录:mount /dev/sda1 /mnt/newdisk


4.修改/etc/fstab使分区自动挂载 加入下列语句


/dev/sda1                                   /mnt/newdisk    ext3       default            1                          2
磁盘设备文件名或该设备的label     挂载点         文件系统    文件系统参数   能不能使用dump  是否以fsck检查扇区


 


逻辑卷管理LVM(Logical Volume Manager)


LVM就是将几个物理的分区或(磁盘)通过软件组合成为一块看来起来独立的大磁盘(VG,volume group),然后再将大磁盘发为可使用分区(LV,logical volume),最后挂载就能使用了。


PE(physical extend),物理扩展块,LVM的VG最多能含65534个PE,每个PE默认为4M,因此默认的LVM VG最大可以达到256G。所以调整PE大小会影响到VG的大小。


PV(physical volume)物理卷


1、增加新的硬盘,分区,格式化,设新的分区为/dev/sdb2,  /home目录的分区为:/dev/sda7  (现在是要通过LVM扩展home目录的容量)


2、备份/home 的内容


3、#umount /home


4、#vgscan 查询目前系统没有有VG存在


5、#pvcreate /dev/sda7 /dev/sdb2  将这两个分区设立为PV


6、#vgcreate vgtest /dev/sda7 /dev/sdb2   将两个PV合并成一个VG,VG名为vgtest


7、#lvcreate vgtest –L 2000M –n lvtest      用VG建立一个LV,指定大小为2000M,名字为lvtest


8、#mkfs –t ext3 /dev/vgtest/lvtest 格式化lvtest分区


9、#mount /dev/vgtest/lvtest /home  将lvtest分区 挂到/home目录


10、#vi /etc/fstab 删除和home相关的行,并增加如下行


/dev/vgtest/lvtest  /home ext3 default 0 0


11、reboot


磁盘阵列RAID


磁盘阵列可以有效的提高数据的读写速度和数据的可靠性。


raid0:性能最佳,具有最快的读写的速度,但不提供数据冗余。


raid1:完整备份


raid5:性能和备份的均衡考虑,到少需要3块硬盘,一块做spare disk(预备磁盘),raid5的总容量是n-1块磁盘的容量,raid5默认仅能支持一块磁盘的损坏情况,当多于一块时,数据就损毁了。?


spare disk是当磁盘阵列的磁盘损坏时,就要将坏磁盘拔除,换一个新的,顺利启动磁盘阵列后,磁盘阵列就会主动重建(rebuild)原来坏掉的那块磁盘数据到新磁盘,然后你的磁盘阵列上的数据就恢复了。为了让系统可以实时地在磁盘坏掉时主动重建,就需一个spare disk.如果磁盘支持热插拔就完美了。


raid准备工作,先把要用的磁盘分区、格式化


#fdisk /dev/hda


Command (m for help):n


First cylinder(2053-5005,default 2053)(第一个柱面号,使用默认就可以): 直接回车


usering default value 2053


Last cyliner or +size or +sizeM or sizeK (2053-5005,default 5005):+1000M (最后一个柱面号,或+sizeM,即你要分多少空间大小。)


………………


command (m for help):w 保存


#partprobe  重建内核分区表


#mdadm –create --auto=yes /dev/md0 --level=5 \ < –raid-devices=4 –spare-devices=1 /ev/hda{6,7,8,9,10}


使用hda6,7,8,9,10五个分区创建raid,其中一个做spare disk.


#mdadm –detail /dev/md0 (磁盘阵列的构建需要一些时间,所以最好等待数分钟后再使用此命令查看磁盘阵列情况,否则可能看到某些磁盘正在”spare rebuilding”之类的字样。


# cat /proc/mdstat


Personalities:[raid6][raid5][raid4]


md0:active radi5 hda9[3] hda10[4](S) hda8[2] hda6[0]           
//此行指出,md0为raid5,且使用了hda9,hda8,had7,had6四块磁盘,hda10[4](S) 大写S 表示此设备为spare disk,


2963520blocks level 5,64k chunk,algorithm 2 [4/4]   [uuuu] 


//此行指出,磁盘阵列有2963520个block,使用raid5,写入磁盘的小区块(chunk)大小为64K,使用algorithm 2的磁盘阵列算法。[uuuu]表示4个active设备


#mkfs –t ext3 /dev/md0


#mkdir /mnt/raid


#mount /dev/md0 /mnt/raid


#df
……
/dev/md0 2916920 69952 6998792 3% /mnt/raid


新版本的系统会自行启动RAID并动挂载,不过根据鸟哥的建议,还是修改下配置文件比较好。
或者#mdadm -Ds >> /etc/mdadm.conf   生成mdadm.conf配置文件。


以下是鸟哥的修改:
#mdadm –detail /dev/md0 | grep –i uuid (查询md0的注册码UUID)
#vi /etc/mdadm.conf


ARRAY /dev/md0 UUID=…..
#vi /etc/fstab
/dev/md0 /mnt/raid ext3 defaults 1 2
#umont /dev/md0; mount –a
#df /mnt/raid


 


磁盘配额Quota


quota限制普通用户和组的空间和文件数,quota对root不起作用。


quota针对整个分区或者说文件系统(FileSystem),而不能针对某个目录。


容量限制和文件数量限制(block和inode)


分为软限制和硬限制,hard限制比soft限制要高。


会有一定的 grace time(宽限时间)


#vi addacount.sh  添加帐号脚本


以下是脚本内容不包括括号
(
#!/bin/bash
groupadd myquotagrp


for username in myquota1 myquota2 myquota3 myquota4 myquota5


do


     useradd –g myquotagrp $username


     echo “password” | passwd –-stdin $username


done
)


#sh addacount.sh 运行脚本,添加帐号成功


Quota step1:文件系统支持


#df –h /home   //查看需要进行quota的是不是一个独立的分区,或者说独立的filesystem


#mount | grep home  //查看是否是quota支持的文件系统 ext2,ext3


#rpm –qa |grep quota  //查看有没有安装quota软件


#vi /etc/fstab   //修改fstab文件,让/home所在的分区启用quota,


LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2


#umount /home


#mount –a


#mount | grep home


/dev/hda3 on /home type ext3(rw,usrquota,grpquota)


Quota step2:新建Quota配置文件


#quotacheck –avug


…..


#quotacheck:Can’t find filesystem to check of filesystem not mounted with
#quota option. //即当前没有任何文件系统启动了quota支持。


#ll –d /home/a*
-rw------ 1 root root 8192 mar 6 11:58 /home/aquota.group
-rw------ 1 root root 9216 mar 6 11:58 /home/aquota.user
//home 目录下,这两个文件就是quota的重要信息了。


Quota step3:Quota启用、关闭与限制设置
#quotaon –auvg    //启用quota
/dev/hda3 [/home]:group quotas turned on
/dev/hda3 [/home]:user quotas turned on


#quotaoff –a       //关闭quota
#quotaoff –ug /home (/home 还是/dev/hda3)?


#edquota –u myquota1


Filesystem       blocks     soft   hard   inodes   soft   hard


/dev/hda3         80          0      0          10       0        0


blocks和inodes 系统自己计算,不用修改,


前面的soft,hard是容量的软硬限制,后面的soft,hard是文件数量的软硬限制。


#edquota –p myquota1 –u myquota2   //将myquota1 的设置复制给myquota2


#edquota –g myquotagrp   //修改组的quota限制


#edquota –t  修改grace time (宽限时间)

2012年5月14日星期一

WordPress安装源文件说明文档

文中介绍了文件的作用和其它相关内容。所列文件都位于WordPress源目录下。


WordPress根目录(Root)


index.php


WordPress核心索引文件,即博客输出文件。


license.txt


WordPress GPL许可证文件。


my-hacks.php


定义了博客输出之前处理的追加程序。默认安装中并没有这个文件,但如果存在,它就会被管理页面引用。


readme.html


WordPress安装导言。


wp-atom.php


输出Atom信息聚合内容。


wp-blog-header.php


根据博客参数定义博客页面显示内容。


wp-cron.php


wp-comments-post.php


接收评论,并把其添加到数据库。


wp-commentsrss2.php


用来生成日志评论的RSS2信息聚合内容。


wp-config-sample.php


把WordPress连接到MySQL数据库的示例配置文件。


wp-config.php


这是真正把WordPress连接到MySQL数据库的配置文件。默认安装中虽不包括它,但由于WordPress运行需要这一文件,因此,用户需要编辑这个文件以更改相关设置。


wp-feed.php


根据请求定义feed类型并其返回feed请求文件。


wp-links-opml.php


生成OPML格式的链接(通过WordPress管理菜单添加)列表。


wp-login.php


定义注册用户的登陆页面。


wp-mail.php


用来获取通过邮件提交的博文。这个文件的URL通常被添加到cron任务中,这样cron就会定期检索文件并接收邮件日志。


wp-pass.php


审核受密码保护文章的密码并显示被保护文章。


wp-rdf.php


生成RDF信息聚合内容。


wp-register.php


允许新用户通过联机表单注册用户名。


wp-rss.php


生成RSS信息聚合内容。


wp-rss2.php


生成RSS2信息聚合内容。


wp-settings.php


运行执行前的例行程序,包括检查安装是否正确,使用辅助函数,应用用户插件,初始化执行计时器等等。


wp-trackback.php


处理trackback请求。


wp.php


显示博客日志的简单模板。并没有什么神奇之处,但包括了部分index.php内容。


xmlrpc.php


处理xmlrpc请求。用户无需通过内置的网络管理界面就可发布文章。


wp-admin


wp-admin/admin.php


管理文件的核心文件。用来连接数据库,整合动态菜单数据,显示非核心控制页面等。


wp-admin/admin-db.php


wp-admin/admin-footer.php


定义所有管理控制台的页脚。


wp-admin/admin-functions.php


定义了管理控制台使用的多种函数。


wp-admin/admin-header.php


定义了管理控制台的上半部分内容,包括菜单逻辑 (menu logic)的 menu-header.php文件。


wp-admin/bookmarklet.php


使用书签功能时,定义弹出页面。撰写日志时使用默认的edit-form.php文件。


wp-admin/categories.php


定义管理页面的类别管理。参考:Manage - Categories


wp-admin/cat-js.php


wp-admin/edit.php


定义管理页面的日志管理。参考: Manage - Posts


wp-admin/edit-comments.php


定义管理页面的评论管理。参考: Manage - Comments


wp-admin/edit-form-advanced.php


定义管理页面的日志高级编辑形式管理,包括post.php。参考: Write - Write Post - Advanced


wp-admin/edit-form.php


定义管理页面的日志简单编辑形式管理,包括post.php。参考: Write - Write Post


wp-admin/edit-form-comment.php


编辑特定日志评论。


wp-admin/edit-form-ajax-cat.php


wp-admin/edit-link-form.php


wp-admin/edit-page-form.php


定义管理模块页面的页面编辑,包括post.php和page-new.php。参考:Write - Write Page


wp-admin/edit-pages.php


定义管理模块页面的页面管理。参考: Manage - Pages


wp-admin/execute-pings.php


wp-admin/import.php


wp-admin/index.php


默认管理页面。根据用户请求显示相应的页面。


wp-admin/inline-uploading.php


wp-admin/install-helper.php


定义数据库维护函数,包括popular-in-plugins maybe_create_table() 和maybe_add_column()。


wp-admin/install.php


安装WordPress。


wp-admin/link-add.php


链接添加。参考: Links - Add Link


wp-admin/link-categories.php


链接分类管理。参考:Links - Link Categories


wp-admin/link-import.php


导入链接。参考:Links - Import Links


wp-admin/link-manager.php


链接管理。参考: Links - Manage Links


wp-admin/link-parse-opml.php


导入链接时,用来解析OPML文件。


wp-admin/list-manipulation.js


wp-admin/list-manipulation.php


wp-admin/menu-header.php


用于在管理界面显示菜单。


wp-admin/menu.php


定义了默认管理菜单结构。


wp-admin/moderation.php


定义了评论审核函数。


wp-admin/options.php


升级后,用来更改所有设置。


wp-admin/options-discussion.php


管理评论和trackback相关选项。参考: Options - Discussion


wp-admin/options-general.php


管理基本配置选项。参考: Options - General


wp-admin/options-head.php


wp-admin/options-misc.php


设置文件上传,链接跟踪,自定义"hacks"等相关选项。参考:Options - Miscellaneous


wp-admin/options-permalink.php


管理永久链接选项。参考: Options - Permalinks


wp-admin/options-reading.php


设置如何把网站信息发送到读者浏览器或其它应用程序。参考: Options - Reading


wp-admin/options-writing.php


管理日志撰写界面。参考:Options - Writing


wp-admin/page-new.php


创建新页面。


wp-admin/plugin-editor.php


编辑插件文件。


wp-admin/plugins.php


管理插件。


wp-admin/post.php


创建新日志。


wp-admin/profile-update.php


wp-admin/profile.php


管理个人资料或配置。


wp-admin/setup-config.php


安装时,用来创建wp-config.php文件。


wp-admin/sidebar.php


wp-admin/templates.php


编辑服务器可写文件。


wp-admin/theme-editor.php


编辑特定主题中的文件。


wp-admin/themes.php


管理主题。


wp-admin/update-links.php


wp-admin/upgrade-functions.php


定义了版本升级函数。


wp-admin/upgrade-schema.php


定义了升级中使用的默认表格结构和选项。


wp-admin/upgrade.php


版本升级。


wp-admin/user-edit.php


编辑用户。


wp-admin/users.php


管理用户。


wp-admin/wp-admin.css


定义了管理控制台的默认样式表。


wp-admin/xfn.js


wp-admin/images


此目录包含了WordPress管理面板上使用的所有图像。


wp-admin/images/box-bg.gif


wp-admin/images/boxbg-left.gif


wp-admin/images/boxbg-right.gif


wp-admin/images/box-butt.gif


wp-admin/images/box-butt-left.gif


wp-admin/images/box-butt-right.gif


wp-admin/images/box-head.gif


wp-admin/images/box-head-left.gif


wp-admin/images/browse-happy.gif


wp-admin/images/fade-butt.png


wp-admin/images/notice.gif


wp-admin/images/toggle.gif


wp-admin/images/wordpres-logo.png


wp-admin/import


wp-admin/import/b2.php


用来从b2导入日志。 查看: Importing Content - b2


wp-admin/import/blogger.php


用来从blogger导入日志。 查看: Importing Content - Blogger


wp-admin/import/dotclear.php


wp-admin/import/greymatter.php


用来从Greymatter导入日志。 查看: Importing Content - Greymatter


wp-admin/import/livejournal.php


用来从LiveJournal导入日志。查看:Importing Content - LiveJournal


wp-admin/import/mt.php


用来从Movable Type导入日志。查看:Importing Content - Movable Type


wp-admin/import/rss.php


用来通过RSS导入日志。查看: Importing Content - RSS


wp-admin/import/textpattern.php


用来从TextPattern导入日志。 查看:Importing Content - TextPattern


wp-content


WordPress并不更新这个目录。


/wp-content/ 目录由用户本人来提供内容。除非要把默认主题升级到最新版本,否则,升级过程中也应避开这部分内容。


WordPress主题和插件都存储在这个目录下。


wp-content/plugins


WordPress的所有插件都存放在这个目录下。WordPress的默认插件是为插件开发者所作的示例插件,即Hello Dolly插件,它会随机显示"Hello Dolly."这首歌的歌词。当前版本也包括了反垃圾评论插件。


wp-content/plugins/hello.php


wp-content/plugins/akismet.php


wp-content/themes


WordPress所有的主题数据都存放在这个目录下各自的文件夹中,如example.com/wp-content/themes/themedirectory/。


wp-content/themes/themedir


WordPress主题的相关文件都存放在它们各自的目录下,即wp-content/themes/themedir目录。下面我们以WordPress默认主题文件为例,默认主题在/wp-content/themes/default/下包括的文件有:


wp-content/themes/themedir/comments.php


用来管理如何显示评论。


wp-content/themes/themedir/footer.php


用来管理页面的页脚。


wp-content/themes/themedir/header.php


用来管理每个页面的页头。


wp-content/themes/themedir/index.php


用来管理首页的日志显示布局。


wp-content/themes/themedir/search.php


用来显示搜索表单。


wp-content/themes/themedir/sidebar.php


用来管理侧边栏。


wp-content/themes/themedir/style.css


WordPress主要的CSS文件。


wp-content/themes/themedir/images


一些WordPress主题在它们的主题文件夹的子目录下还存放了图像。如,默认主题使用的图像就存放在了 wp-content/themes/default/images/下。


wp-includes


wp-includes/cache.php


wp-includes/capabilities.php


wp-includes/class-IXR.php


Incutio XML-RPC库。包括了 XML RPC支持函数。由http://scripts.incutio.com/xmlrpc/提供支持。


wp-includes/classes.php


包括了基本的类,如核心文章提取机制WP_Query和改写管理WP_Rewrite。


wp-includes/class-pop3.php


包括了支持使用POP邮箱的类。可供wp-mail.php 使用。


wp-includes/class-snoopy.php


Snoopy是一个PHP类,用来模仿Web浏览器的功能,它能自动完成检索网页和发送表单的任务。


wp-includes/comment-functions.php


wp-includes/default-filters.php


wp-includes/feed-functions.php


wp-includes/functions-compat.php


即新版本PHP中用来支持老版本PHP的函数文件。


wp-includes/functions-formatting.php


用于清理XHTML和用特定字符集正确格式化文本。


wp-includes/functions-post.php


定义了在数据库中管理日志,查询用户权限,提取和撰写评论等函数。


wp-includes/functions.php


包含许多重要的支持函数,它是WordPress中最大的文件,函数数量几乎是第二大文件的两倍。


wp-includes/gettext.php


PHP-gettext GPL 翻译库组成部分。


wp-includes/kses.php


用来渲染和过滤日志或评论中的HTML。


wp-includes/links.php


用来管理和使用WordPress的链接功能。


wp-includes/locale.php


用来替代默认的星期和月份值。


wp-includes/pluggable-functions.php


wp-includes/registration-functions.php


wp-includes/rss-functions.php


wp-includes/streams.php


定义了包装文件流和字符流的类。


wp-includes/template-functions-author.php


包含了与日志作者或评论人相关的主题函数。


wp-includes/template-functions-category.php


包含了与类别相关的主题函数。


wp-includes/template-functions-comment.php


包含了与评论相关的主题函数。


wp-includes/template-functions-general.php


包含了常规主题函数。


wp-includes/template-functions-links.php


包含了与链接相关的主题函数。


wp-includes/template-functions-post.php


包含了与日志相关的主题函数。


wp-includes/template-functions.php


包含了以上所有"template-"文件。


wp-includes/template-loader.php


wp-includes/vars.php


用来设置杂项变量。


wp-includes/version.php


用来设置当前使用的WordPress版本。


wp-includes/wp-db.php


包含了用来连接MySQL数据库的函数。


wp-includes/wp-l10n.php


提供支持多语言版本的函数。


wp-includes/images


wp-includes/images/smilies


激活表情符号后,用户使用的表情符号就是由这个文件定义的。查看Using Smilies获取更多信息。


wp-includes/js


wp-includes/js/quicktags.js


用户编辑日志或页面时所使用的标签工具栏,就是由此文件定义的。


wp-includes/js/tinymce


此目录包括了撰写日志面板使用的富文本编辑器。


wp-includes/languages


查看: WordPress Localization

RHCT考试要点之三:设置正确的权限 chmod,setfacl,suid,sgid,sticky

chmod 改变文件、文件夹的使用权限 Change the permissions mode of a file.


u:拥有者


g:所属组


o:其他人


a:所有人(u+g+o)


r:读权限


w:写权限


x:执行权限


文件权限配置行为如下


+:添加权限   -:减少权限 =:赋予权限


例:


chmod a-x test.txt


chmod u+rw


chmod g-wx


chmod o-x


chmod 666 test.txt


setfacl 设定某个文件或目录的ACL (Access control list)


getfacl 取得某个文件或目录的ACL


在setfacl前,首先要检查文件系统是否支持setfacl,还需要编辑/etc/fstab文件,对需要setfacl的分区激活acl功能。


如: /dev/hda1  /home   ext3  default,acl   0  2


给用户fxd设置acl功能: setfacl –m u:fxd:rw /project/test


删除用户、组或其他人的所有权限,用-x ,不需要指定权限(r,w,x)


如删除UID为500的用户所有权限:setfacl –x u:500 /project/test


 


umask –S 查看默认创建文件的权限


如:umask=0022 第一位是特殊权限位 (即setuid 或 setgid 或sticky,setuid=4,setgid=2,sticky=1) ,后三位为用户权限位(掩码值)。那创建的文件权限为 666-022=644。(新建文件默认没有x权限,所以用666-022)。


SUID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属主身份来执行。
SGID对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属组身份来执行。
STICKY:粘滞位,通常对目录而言。通常对于全局可写目录(other也可写)来说,让该目录具有sticky后,删除只对属于自己的文件有效(但是仍能编辑修改别人的文件,除了root的)。不能根据安全上下文获取对别人的文件的写权限。


授予setuid: chmod u+s 或 chmod 4755            同理:chmod u-s       或 chmod 755


授予setgid: chmod g+s  或 chmod 2755            同理:chmod g-s       或 chmod 755


授予sticky:  chmod o+t   或chmod 1777            同理:chmod o-t      或  chmod 777


特殊权限位很危险,如给vi特殊位,那么会以root身体 编辑任何文件!!!


特殊权限位为 sticky=1,如果一个目录权限为777,且具有粘着位sticky,那么每个用户都可以创建文件,但只能删除自己所有的文件。


对于一个全局可写目录,加上sticky位以后,普通用户将只能删除自己的文件,而不能删除其他用户的文件。



  1. [root@localhost tmp]# su - user1 

  2. [user1@localhost ~]$ id 

  3. uid=512(user1) gid=512(user1) groups=504(mygrp),512(user1)context=root:system_r:unconfined_t:SystemLow-SystemHigh 

  4. [user1@localhost ~]$ cd /tmp/share/ 

  5. -bash: cd: /tmp/share/: Permission denied 

  6. [user1@localhost ~]$ ll -d /tmp/share 

  7. drwxrwSr-t 5 root mygrp 4096 Dec 30 16:09 /tmp/share 

  8. [user1@localhost ~]$  

  9. # 如上例,如果没有原位没有置X权限,即使同组的用户也无法进入目录,

  10. # 再设置SGID位也不起作用

  11.  

2012年5月11日星期五

红帽RHEL6认证最新教材下载

红帽RHEL6认证最新教材(RH254 / RH255 第三册)中文PDF版下载地址
http://dl.dbank.com/c0kooxe7zq
http://dl.dbank.com/c0v4nd76ah
http://dl.dbank.com/c0bhdg0363
http://dl.dbank.com/c0bh54je5h
http://dl.dbank.com/c0994ncgpi


RHEL6最新教材电子版下载(第一册 RH124)中文版PDF 下载地址
http://dl.dbank.com/c0bevgubnx
http://dl.dbank.com/c0x04vabb8
http://dl.dbank.com/c0yzm5ar9l


红帽RHEL6认证最新教材(RH134 / RH135 第二册)中文PDF版下载地址
http://dl.dbank.com/c0qw5m1cy1
http://dl.dbank.com/c0d4rp1rv0
http://dl.dbank.com/c00rm8zwbm
http://dl.dbank.com/c0vqxbby7m

RHCT考试要点之二 添加用户、组

添加用户:useradd


添加组:groupadd


为新用户添加密码:passwd username


删除一个用户 userdel –r username (参数r是删除用户的同时删除邮件和家目录)


修改用户信息:usermod


usermod –a –G root user1 //将user1添加到root组中


groupdel group //删除组group


gpasswd groupname //为组设定密码


常用选项 –a  //将用户加入组


例:gpasswd –a fxd testgroup


/etc/passwd   passwd文件分析


root:x:0:0:root:/root:/bin/bash


第一列(root):用户名


第二列(x):密码 (存放在/etc/shadow中)


第三列(0):UID  //用户ID


第四列(0):GID //组ID


第五列(root): 备注/描述


第六列(/root):用户家目录


第七列(/bin/bash):登录环境


 


/etc/shadow shadow文件分析


root:$1$UFqDfgGdsfwQsdfgQIdghPdfdf:14979:0:99999:7:::


第一列(root):用户名


第二列($1$UFqDfgGdsfwQsdfgQIdghPdfdf):密码 md5加码 (grub-md5-crypt)


第三列(14979):上一次修改密码的时间(从1970年1月1日开始计算机,可以用$(($date+%s)/86400))来计算机)


第四列(0):不限制密码修改次数 //0为不限制


第五列(99999);多少天内必须修改密码 //99999为不限制


第六列(7):密码过期前多少天提醒用户修改密码


第七列():密码过期后的宽限时间


第八列():实际过期天数


第九列():保留项


 


/etc/group  group文件分析


root:x:0:root


第一列:组名


第二列:组密码 // (/etc/gshadow)


第三列:GID  //组ID


第四列(root):组成员


 


/etc/gshadow 文件分析


root: : :root


第一列:组名


第二列:组密码


第三列:组管理员


第四列:组成员

给grub加密 以免任何人进入level 1

Step1.#grub-md5-crypt
 输入要加密的密码
Step2.复制这32位的md5加密后的密码到 /boot/grub/grub.conf 中 
在启动选项中找到TITLE行 在TITLE行上加入一行:password --md5 密文


应做好grub.conf文件的备份工作,打印出来,或者记在笔记本上,这样比较安全吧?

RHCT 考试要点 之一 单用户模式下修改root密码

闲来没得事,手动输入,增强记忆……………………


1、特权模式 修改密码


登陆前修改root密码


    step1:开机在出现grub画面,按e


    step2:用上下键选中第二项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键开始编辑


    step3:加上空格1“ 1”或者空格single“ single”(指定运行级别为1,即单用户模式),如下:


              kenrel /boot/dev/vmlinuz-2.4.18-14 single root=LABEL=/ single


    step4:回车,按b键进行入系统


    step5:输入password root 回车  (注:RHEL6必须先使用命令setenforce 0,关闭SELINUX,才能执行此操作,RHEL考试必须打开SELINUX,破解密码进入后要setenforce 1)


    step6:输入新密码


    step7:reboot (重启)即可。


GRUB命令:


e 编辑


c 进行grub命令行方式


d 删除当前行


ESC 返回grub启动菜单界面,且取消修改

2012年5月10日星期四

RHCE 考试要点 自学比对用

目     录


第一章 基本要求... 2


第一节 基础知识... 2


第二节 文件系统的层次结构... 2


第三节 基本命令工具... 3


第四节 基本安全... 5


第五节 系统管理... 5


第六节 基础硬件知识... 6


第七节 硬件兼容性... 6


第八节 配置外围设备... 6


第二章 磁盘管理... 7


第一节 磁盘分区... 7


第二节 扩展磁盘空间... 7


第三节 逻辑卷管理(lvm)... 8


第四节 磁盘阵列... 8


第五节 增加交换分区... 9


第六节 增加交换文件... 9


第七节 读取windows的文件... 9


第三章 基本配置和管理... 10


第一节 用户管理... 10


第二节 基本用户环境... 10


第三节 文件系统管理及自动挂接... 10


第四节 RPM的使用简介... 11


第五节 关于rpm 源码包... 11


第六节 基本网络配置... 11


第七节 基本启动过程... 12


第八节 虚拟控制台... 13


第九节 其他配置工具... 13


第四章  内核、用户管理和任务自动化... 14


第一节  shell配置文件... 14


第二节  实现磁盘配额... 14


第三节  内核基础知识... 15


第四节  升级内核... 16


第五节  任务自动化... 17


第五章 linux网络服务... 18


第一节  samba网络共享服务... 18


第二节 web服务及虚拟服务器(apache) 19


第三节 实现squid代理服务器... 20


第四节 Ftp服务... 20


第五节 邮件服务器... 20


第六节 DNS服务器... 21


 


第一章 基本要求


第一节 基础知识 


linux和unix都是通过一系列的文本文件来进行管理。Linux系统管理员通常不使用图形编辑器来管理这些配置文件。各种流行的编辑器的格式例如:word、startoffice等等,linux都无法识别。Linux常用的文本编辑器有这么几种:vi、pico、joe、emacs。尽管emacs可能是linux世界最流行的编辑器,但是系统管理员仍然必须懂得vi的基本使用。Emacs更加灵活更加流行,vi可以帮助你恢复系统。如果你要使用紧急引导盘来恢复一个重要的文件,vi是唯一可用的编辑器。


实际上,RHEL 3 使用增强版本的vi,即vim.它增加了颜色来对重要的文件进行区分。所有的vi 命令都是在vim编辑器,你可以通过在vim编辑其中使用:nohl命令来去掉颜色,这并不会对你管理系统带来任何影响。


Vi的基本用法:vi filename


基本命令:i 插入


o 插入新行


:w保存


:q退出


:wq!保存并强制退出


:q!不保存强行退出


练习1:使用vi来增加新用户


1、#vi /etc/passwd,使用命令yy拷贝当前行,使用命令p复制出一新行,然后修改。改变用户名,用户id用户组id,以及home目录。更改完成后使用命令:wq!保存退出。


2、更改新用户的密码:passwd username


3、建立用户的主目录:mkdir /home/username 



第二节 文件系统的层次结构 


linux中的任何事情都可以归结为一个文件。分区和文件系统设备节点关联,例如:/dev/hda1。硬件组件对应于节点文件如:/dev/modem。检测到的设备在/proc目录中存档。FHS是用来组织linux和unix文件的方法。


基本文件系统层次结构:


/ 根目录,linux的最高级目录


/bin 基本的命令行工具,不应该单独挂接。


/boot 引导目录,包含linux的启动文件,其中有linux内核。默认大小


为100M


/dev 所有软硬件设备的驱动,不要将此目录单独挂接在一个分区上


/etc 存放大多数的基本配置文件


/home 存放大多数用户的主目录


/lib 内核程序库以及各种命令行工具。不要将此目录挂接在单独的分区上


/mnt 可移动设备的挂接点,包括软盘,光驱等


/opt 存放应用程序,如wordperfect、openoffice套件等


/proc 当前运行的和内核相关的进程,包括IRQ ports,I/O地址,DMA通道


/root root用户的主目录


/sbin 系统管理命令,不要单独挂接


/tmp 临时文件夹


/usr 对所有用户可用的小程序,包括一些系统管理命令和功能


/var 可变的数据包括日志文件,打印池


文件系统的格式及检验


用来对不同的文件系统进行管理的工具有如下几种:fdisk、mkfs、fsck


fdisk:该命令功能强大,但使用该命令,你必须知道你需要对那个硬盘进行更改,即必须指定对应的设备。如果你要管理第一个scsi硬盘输入如下命令:fdisk /dev/sda


fdisk命令:a 指定引导分区


l 列出已知分区的类型


n 增加新的分区


q不保存退出


t 改变分区的文件系统


mkfs:格式化一个linux文件系统,使用mkfs命令,例如:


mkfs –t ext3 /dev/hda1


fsck:磁盘检查命令,类似于windows 2000的chkdsk,使用该命令之前应将所要检查的磁盘卸载,例如要检查挂接在/var目录下的hda7分区:#umount /var


#fsck –t ext3 /dev/hda7


#mount /dev/hda7 /var


练习:创建新的lvm分区


1、 增加一个新的硬盘


2、 创建了一个新的分区,使用fdisk工具将该分区设为lvm文件系统。


3、 备份/home目录


4、 使用vgscan命令,扫描lvm文件系统,为其他的lvm命令创建数据库


5、 使用pvcresate /dev/partition创建卷


6、 使用vgcreate groupname /dev/partition1 /dev/partition2命令创建卷组


7、 使用lvcreate –L –xyM –n volname groupname groupname创建逻辑卷,xy是卷的大小。


8、 最后使用mkfs命令来格式化逻辑卷


9、 将逻辑卷挂接在/home目录下,修改/etc/fstab使得系统自动挂载/home目录 



第三节 基本命令工具 


作为unix的变体,linux用不同的代码实现了和unix相同的功能。这两种系统都是基于命令行的,使用命令来对系统进行维护


基本文件操作


每一个用户都会有一个主目录,~表示用户的主目录。


路径:分为绝对路径和相对路径,以/目录开始的路径表示绝对路径,相对于当前目录的路径是相对路径。


显示当前所处目录:pwd命令显示尼当前相对于根目录的路径。


进入其他目录:cd 使用命令cd可以进入其他的目录,例如:cd /boot


显示目录中的文件和子目录:ls


查找:find,例如查找文件qq find / -name qq


显示文件内容:cat filename、less filename、more filename


head:显示文件的前n行


tail: 显示文件的后n行


cp:拷贝文件


mv:移动文件


ln:创建符号链接文件


sort:排序命令,例如:sort /etc/passwd


grep and egrep:查找文件,例如:grep ‘zhao’ /etc/passwd


wc:对文本文件进行统计,得出其中的字符数、行数等信息


sed:用于替换文件中指定的字符,例如:使用linux替换windows


sed ‘s/windows/linux’ filename > newfile 替换第一个符合的项


sed ‘s/windows/linux’ filename >newfile 替换所有符合的项


awk:数据库管理命令,可以读出指定的列从某行,例:找出含有zhao 的行


awk ‘/zhao/ {print $1}’ /etc/passwd


ps:显示当前的进程


who and w:显示当前登陆的用户,可以看到谁登陆在那个终端上,登陆的时间运行的进程


通配符:*可以匹配任意字符


?可以匹配任意单字符


[] 例:ls abc[123],若文件存在则显示abc1、abc2、abc3


shells


shell是一种用户界面,你可以通过shell使用各种各样的命令来和计


算机进行交互,通过正确的权限,你可以把命令方在脚本文


件中在指定的时间运行,甚至是在深夜。Linux执行命令的


顺序,取决于你对每个命令的输入于输出的安排。


在各种shell中命令的运行方式很大程度上取决于该命令的参数和选项。部分变量对于各种shell是通用的。


linux默认的shell是bash,在用户中流行的其它很多shell也是可用的,如:c shell、k shell


添加path到自己的路径:


#PATH=$PATH:/sbin


#export PATH


查看自己当前的path:


#echo $PATH


查看文本文件的内容:


#cat filename


重定向把一个文件的输出作为另外一个的输入,例:


#database < datafiles 将文件datafiles作为程序database的输入


输出重定向:


#cat /etc/passwd >filenam把输出结果重定向到文件filename


#cat /etc/group >>filename 将输出的内容追加到filename


查看启动信息:


#dmesg | less :分平显示启动日志


重定向错误信息:


#redhat-config-network 2>error 如果运行正常则无输出,若有错误则将错误信息重定向到文件error


 
第四节 基本安全 


linux的安全性是基于文件的权限管理。默认的权限通过umask变量来进行设定。Suid和sgid权限赋予每一个指定的文件。对权限和属主进行更改分别使用命令:chmod chown chgrp


umask:


用于设置默认的文件权限,例:umask=123,则默认的权限为777-123=654,但实际上不论umask的最后一位是什么,默认的权限最后一位一定是0,即不具有可执行权限。


Suid and sgid:


为了防止赋予每一个用户完全的权限导致的潜在的威胁,可以设置suid和sgid来减小风险,详情件后续章节


shadow passwords


查看/etc/passwd文件的时候,你会发现有这么一列:x.旧版本的linux在这个位置将密码加密。由于/etc/passwd对所有的用户都是可以访问的,所以就会有黑客将这个文件拷贝之后进行破解以次得到该计算机的密码。这个问题导致了shadow passwords suite的出现。


Shadow password suite


Shadow password suite为密码提供了更进一步的保护,它把加密后的密码存放在shadow文件中(/etc/shadow、/etc/gshadow)。此文件只有root用户可以读取。


Shadow password command


Pwconv: 将/etc/passwd转化为/etc/shadow


Pwunconv:将/etc/shadow转化为/etc/passwd


Grpconv:将/etc/group转化为/etc/gshadow


Grpunconv:将/etc/gshadow转化为/etc/group


 



第五节 系统管理 


大多数管理任务需要root或者超级用户权限。你应该已经对一部分基本的linux系统管理命令和文件非常熟悉。标准用户文件存储在/etc/skel文件中。守护进程在后台运行并且执行各种不同的服务。Cron是一种特殊的守护进程,它可以在指定的场合运行指定的脚本文件。对于午夜执行的备份任务,这项功能非常有用。


总体来说,作为系统管理员可以执行普通用户的任何任务。仅仅当需要的时候才使用超级用户是一个很好的主意。好的系统管理员再任务完成以后会返回普通用户的身份。管理员的错误可能会给系统带来很大的伤害。


Su :superuser命令,su –c 只对一个特定的命令设定根用户权限。


Su – root:切换到根用户


Sudo:该命令允许/etc/sudoers种的用户运行管理员的命令


/etc/skel:对个体用户可用的配置文件存在于/etc/skel/目录中


tar czvf home.tar.gz /home 备份/home目录为home.tar.gz


tar xzvf home.tar.gz /home 将home.tar.gz 解压缩


gzip hello.jpg 压缩hello.jpg文件


gunzip hello.jpg.zip 解压缩hello.jpg.zip


 



第六节 基础硬件知识 


redhat虽然可以应用于各种硬件平台,诸如:alpha、itanium、s/390,但RHCE和RHCT考试是基于intel32位架构的计算机的。Pc机的架构决定了它所使用的组件和它可以使用的设备。所有的软件都是为特定架构的计算机写出来的。但并不是所有基于intel的软件都可以运行在linux的机器上。因此我们有必要了解基本的intel计算机的架构。


IRQ Settings


Irq是由外围设备发送给处理器要求处理时间的信号。连接到计算机的每一个设备都需要一个irq端口。正常情况下,每一个设备需要一个专用的irq。Intel架构的计算机只有十六个irq(0-15),现在这些irq端口号常常会显得不够用。通过共享端口号可以支持更多的设备。2000年以后生产的计算机大多都支持该功能。可以共享irq的主要是Pci、usb接口的设备。


DMA:


Dma设备之间可以直接通信而不经过cpu,但是dma设备仍然需要irq端口号,以共有八个标准dma通道(0-7),其中dma4属于保留号码,不能用于任何设备。


内存需求


对于as3.0最少需要256m内存,实际上我的内存少于256运行的也还算正常,只是慢了点。系统所需的最大内存是你同时运行所有程序所需要的内存容量,这难于计算,所以你应该尽量购买大一点的内存,这样可以让你的系统运行的更好。As3.0支持的最大内存是64g。如果你的内存大于16g,你需要安装hugemenm内核,详情容后介绍。


关于硬盘:


在你的计算机将linux载如系统之前,bios一定要能够认出包含引导文件的主分区。这样硬盘上的linux才能启动,你应该知道下面这些关于硬盘的知识。


标准intel架构支持4个ide硬盘


最多支持31一个不通的scsi硬盘


linux可以安装在前两个硬盘上,否则你就需要一张启动软盘来引导系统了


尽管你可以使用usb硬盘或1394硬盘但是你不应该将系统安装在这两种设备上,因为既不能从这两种硬盘引导,也不能使用软盘来引导着两种硬盘上的系统。



第七节 硬件兼容性 


鉴于大多数人使用的硬件都可以被linux支持,此节就此略过



第八节 配置外围设备 


没有什么值得看的内容一并略过


 



第二章 磁盘管理 
第一节 磁盘分区 


磁盘使用之前必须进行格式化成某种格式才能够使用,linux支持多种文件系统。每一个硬盘最多可以划分为16个分区。


磁盘分区:推荐使用fdisk。举例说明:


#fdisk /dev/hda hda指第一块ide硬盘,scsi硬盘为sda或sdb等


command(m for help): n增加磁盘分区


command action


e extended


p primary partition (1-4)


p 增加主分区


Partition number (1-4):1


First cylinder (1-512, default 1):


Using default value 1


Last cylinder or +size or +sizeM +sizeK(1-512,default512):+200M


Command (m for help):p 查看当前磁盘信息


Device Boot Start End Blocks Id System


/dev/sdb1 1 192 196592 83 Linux


Command (m for help):w 保存退出


Mount:显示当前挂接的目录


Df:查看磁盘信息


Du: 查看文件夹的空间使用效率


磁盘格式化:mkfs ,例:格式化/dev/sda1: mkfs –t ext3 /dev/sda1


 



第二节 扩展磁盘空间 


现有的磁盘的空间可能会随着时间的增长而变得越来越不够用。在这种情况下就需要增加新的磁盘来对原先的硬盘进行扩展。方法如下:


1、 将新的硬盘接好,进入系统后使用fdisk进行分区,然后格式化。


2、 建立一个空目录,例如:mkdir /mnt/newdisk.


3、 挂接新的硬盘到新建的空目录:mount /dev/sda1 /mnt/newdisk


4、 修改/etc/fstab使该分区自动挂载


 



第三节 逻辑卷管理(lvm) 


磁盘上的某一个目录存储的文件增长迅速空间日渐不够使用


这时候你可以使用lvm来解决这个问题。实现方法如下:假设要增加/home目录的空间。


1、 增加新的硬盘,分区、格式化,假定要增加的新的分区为/dev/sdb2,/home目录的分区为:/dev/sda7


2、 备份/home文件夹的内容


3、 #umount home


4、 #vgscan 进行扫描并创建相关的文件


5、 #pvcreate /dev/sda7 /dev/sdb2 创建物理卷


6、 #vgcreate vgtest /dev/sda7 /dev/sdb2 创建卷组


7、 #lvcreate vgtest –L 2000M –nlvtest


8、 #mkfs –t ext3 /dev/vgtest/lvtest


9、 #mount /dev/vgtest/lvtest /home


10、 #vi /etc/fstab,删除和home 相关的行,并增加如下行:/dev/vgtest/lvtest /home ext3 defaults 0 0


11、 #reboot


 



第四节 磁盘阵列 


磁盘阵列可以有效的提高数据的读写速度和数据的可靠性。具体分类如下:raid 0、raid 1、raid 2、raid 3、raid 4、raid5其中常用的是:raid 0、raid 1、raid 5,简介如下:


raid 0:使用两块硬盘,数据分别存放在两块硬盘上,读写速度较快,但不提供数据冗余。


Raid 1: 也称为磁盘镜像,在两块硬盘上同时存储完全相同的


数据,写入速度一般,但读取速度增加一倍。任意 一块硬盘损坏不会对数据造成损害。


Raid 5: 也称为带奇偶校验的磁盘条带化,最少需要3块硬


盘,最多支持32块硬盘,可用磁盘数量为n –1块硬


盘。读取速度和写入速度都有一定程度的提高。为


最常用的阵列形式。


实现方法:假定添加了四块硬盘到计算机,分别为/dev/sdb、


/dev/sdc、/dev/sdd、/dev/sde,实现步骤如下:


1、 分别进行分区格式化


2、 更改分区类型:fdisk /dev/sdb1


t


fd


p


w


对每一块硬盘进行如上操作,把分区类型


改为raid


3、 创建/etc/raitab


#vi /etc/raidtab如下内容:


 


 


QUOTE:


raiddev /dev/md0


raid-level 1


nr-raid-disks 2


nr-spare-disks 0


persistent-superblock 1


chunk-size 4


device /dev/sdb1


raid-disk 0


device dev/sdc1


raid-disk 1


 


保存退出。


#mkdir /dev/md0 创建阵列md0


#mkfs -t ext3 /dev/md0 对阵列进行格式化


 



第五节 增加交换分区 


#mkswap /dev/sdb1 创建交换分区


#swapon /dev/sdb1 开启新增的交换分区


#cat /proc/swaps 查看当前的交换分区


 



第六节 增加交换文件


QUOTE:


#dd if=/dev/zero of=/swapfile bs=1024 count=8192


#mkswap /swapfile


#swapon /swapfile


 


交换文件最多8个,每个最大容量为16M


 



第七节 读取windows的文件 


#mkdir /mnt/windows 建立一个空目录


#mount –t vfat /dev/hda4 /mnt/windows 挂接windows


的fat分区


#mount –t ntfs /dev/hda5 /mnt/windows 挂接ntfs分区,linux内和默认不支持ntfs分区,要让linux识别ntfs分区必须要重 新编译内核加入对ntfs的支持。


 


 



第三章 基本配置和管理 
第一节 用户管理 


1、增加用户:方法1:#useradd username –p password


例:增加用户kk,密码kk #useradd kk –p kk


方法2:直接修改/etc/passwd文件,然后手工创


建相应的用户主目录


2、修改用户:#usermod –l newusername –c “comment” –d /home/newusername oldusername


例:把test 用户名改为test2,主目录改为:/home/test2


usermod –l test2 /home/test2 test(test2目录要手工建)


-p:修改密码


-e:设定账号过期时间


-s: 设定shell


-p: 设定密码


3、 改密码:passwd username


4、 删除用户:userdel username


5、 限定可以执行:su 命令的用户:普通的用户如果知道root


的密码,就可以通过su命令取得根用户的权限。黑客也有可能通过暴力破解的办法,获得超级权限,因此有必要对可以执行su命令的用户进行限制。具体方法如下:


#vi /etc/pam.d/su,修改其中一行:


#auth required /lib/security/$ISA/pam_wheel.so use_uid


将行首#去掉,这样就只有wheel组中的用户可以使用su命令了。然后将选定的用户加入到wheel用户组即可。


 



第二节 基本用户环境 


当我们使用userdd命令或redhat-config-users工具来创建一个新的用户的时候,会自动生成用户的主目录和一些默认的文件设定一些配置,即所谓的用户环境。这些默认的配置和文件存储在/etc/skel文件夹中。默认文件有以下这些:.bash_logout、.bash_profile、.bashrc、.kde、.zshrc,不同的版本的linux默认文件可能也会有一些差别


 



第三节 文件系统管理及自动挂接 


1、 挂接软盘:mount –t vfat /dev/fd0 /mnt/floppy


或者:mount /mnt/floppy 或者:mount /dev/fd0


2、系统启动时自动挂在软盘:修改/etc/fstab 增加如下一行:


/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0


3、卸载软盘:umount /mnt/floppy


卸载光驱:umount /mnt/cdrom


 



第四节 RPM的使用简介 


所谓rpm是指redhat package manager即红帽软件包管理器,是有redhat公司创建的一种软件发行发式,rpm格式发行的软件易于安装,相比其他的发行方式有很大的优越性。在此简介其基本用法。


1、rpm –i penguin-3.4.5.-26.i386rp安装以rpm形式发行的软件


2、rpm –U penguin-3.4.5-26.i386.rpm 升级软件包


3、rpm –e penguin-3.4.5.26 删除软件


4、http://download.fedora.redhat.co ... -1.494.2.2.i686.rpm 安装远程rpm包


5、rpm –import /usr/share/rhn/RPM_GPG_KEY 导入gpg公钥


6、 rpm –checksig /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm导入公钥以后对文件的完整性进行验证


7、 rpm –verify –p /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm进行md5校验和的验证


8、 rpm --redhatprovides /etc/group查找某个文件对应的rpm包


9、 rpm –q samba 查询samba是否安装,以及版本


10、 rpm –qf /etc/passwd 查询/etc/passwd属于哪个软件包


 


 



第五节 关于rpm 源码包 


1、 通过rpm 源码包创建和定制rpm


rpm –ivh rpm-build-4.2.3-10.i386.rpm:安装rpmbuild工具


rpm –ivh modutils-2.4.21-22.src.rpm:安装源码包


这时在/usr/src/redhat/SPECS文件夹内可以看到modutils.spec,/usr/src/redhat/SOURCES文件夹内可以看到以下的文件:modutils-2.4.21.tar.gz、modutils-2.4.21.tar.gz


cd /usr/src/redhat/SPECS/ 进入该文件夹


rpmbuild –ba modutils.spec 重新编译建立rpm包,运行结束后,


cd /usr/src/redhat/RPMS可以看到如下文件:modutils-2.4.21.i386.rpm modutils-debuginfo-2.4.21-22.i386.rpm


至此rpm包成功建立,使用rpmbuild命令的时候,使用参数-bb也同样可以生成rpm包


 



第六节 基本网络配置 


大多数情况下,在系统的安装过程中,网络的相关设置就已经设好了,但是如果你碰到了问题,你可能就会需要诊断网络的故障,特别是排除网络故障的时候,就更需要了解网络配置的知识。


1、和网络相关的配置文件大多数都存储在/etc/sysconfig文件夹里。/etc/syscofig/network是比较重要的一个,其设置简介如下:


networking:可以设置为yes或者no 以此来决定电脑是否联网。


Nisdomain: 如果你使用nis网络,你应该在这个文件中指定nis域的名字


Hostname:设定计算机的名字


Gateway:设定网关的ip地址


Gatewaydev:设定网络设备,例如eth0,如果你只有一个网卡那么你应该看不到这个选项。


2、/etc/syscofnig/network-scripts/ 命令即配置文件介绍


ifconfig-eth0:和第一块网卡有关的设置,如ip地址、子网掩码、网络地址、网关等等。最后一位的0代表第一块网卡,如有第二块网卡,就会有ifconfig-eth1文件,依此类推。


Ifconfig-lo:配置lookback 设备的相关信息,内容与ifconfig-eth0类似


Network-functions:包含其他的网络脚本所使用的激活网卡、禁止网卡等功能


Ifup-* and ifdown-*:用于激活或者禁止相关的协议


Ifup eth0:激活eth0


Ifdown eth0:禁止eth0


Ifconfig:主要的网络配置命令


2、 ifconfig 用法介绍


ifconfig:显示当前的网络配置


ifconfig eth0 192.168.0.1 netmask 255.255.255.0 设置ip地


址和子网掩码。该命令只在当前生效


ifconfig eth0 down:禁用网卡eth0


ifconfig eth0 up:激活网卡eth0


3、netstat –r:显示当前的路由表


 



第七节 基本启动过程 


理解系统的启动及关闭过程将对你的系统管理工作带来极大的益处。Redhat使用的启动过程称之为:System V init。一旦内核被装载,它启动一个程序:init,由init来启动其余所有的相关程序。我们将对linux如何将自己引导为一个可用的系统有一个大致的了解。Redhat提供两个工具来管理随系统启动服务:redhat-config-services(图形化工具)、chkconfig(命令行工具)。首先我们要了解redhat runlevels。


1、runlevel 0 :关闭系统


2、runlevel 1: 单用户模式,用于对系统进行维护


3、runlevel 2: 多用户模式,但不能使用网络


4、runlevel 3: 多用户模式,具有网络功能


5、runlevel 4: 未使用


6、runlevel 5: 重新启动


系统启动过程:计算机通电以后由bios会检查你的系统寻找引导装载程序(grub、lilo)。然后再由引导装载程序寻找linux内核。这样就开始安装你配置好的服务。内核总是通过调用init来启动。Init进程立刻运行/etc/rc.d/rc.sysinit,由其执行一系列的任务,例如网络配置、键盘映射、分区挂接等等。Init进程通过查看/etc/inittab来决定将系统引导至哪个运行级别。/etc/inittab中有类似这样的一行:id:5:initdefault:其中数字5代表系统的默认级别为runlevel 5,通过简单的更改这里的数字即可改变系统启动时自动运行的级别。


/etc/rc.d/目录中包含如下子目录:


init.d、rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d


除init.d之外的每一个目录都对应一个运行级别,其中包含该运行级别启动和关闭的服务,标有k的服务是该运行级别默认关闭的服务,标有s的服务为该运行级别默认启动的服务。


/etc/rc.d/init.d目录包含所有服务的启动脚本,手工启动一个服务即可在该目录下执行,例:/etc/rc.d/init.d/smb stop



第八节 虚拟控制台


linux作为多用户操作系统,你可以使用相同的身份同时等录到不同的终端。使用ALT+功能键在不同的终端窗口之间进行切换。例:切换到终端2:ALT+F2。在图形界面下切换使用:ctrl+alt+功能键


虚拟控制台在/etc/inittab文件中配置,可以看到有如下行:


 


 


QUOTE:


1:2345:respawn:/sbin/mingetty tty1


2:2345:respawn:/sbin/mingetty tty2


3:2345:respawn:/sbin/mingetty tty3


4:2345:respawn:/sbin/mingetty tty4


5:2345:respawn:/sbin/mingetty tty5


6:2345:respawn:/sbin/mingetty tty6


 


根据官方的说法,最多只有6个终端,实际试验的结果是在这里修改配置文件添加终端数量以后,重新启动。终端的数量增加了,但是可用的仍然只有6个


 


 


QUOTE:



第九节 其他配置工具


1、 clock:显示当前的系统时间设置


2、 redhat-config-date:图形化的时间配置工具


3、 redhat-config-keyboard:图形化的键盘配置工具


4、 redhat-config-mouse:图形化的鼠标配置工具


5、 redhat-config-services:图形化的服务配置工具,决定哪些


服务随系统启动


6、 chkconfig:确定某服务默认在哪个级别运行


7、 redhat-config-network:图形化的网络配置工具


 


 


 



第四章  内核、用户管理和任务自动化
第一节 shell配置文件


         1、所有的shell配置文件都保存在/etc目录中,包括:bashrc、profile以及/etc/profile目录中的脚本文件。简介如下:


            /etc/bashrc:设定别名和一些其它的功能,你可以使用文本编辑器来查看该文件,该文件设定了umask的数值该参数决定了新创建的文件的默认权限,另外还设定了命令行下的提示符。


           /etc/profile:用于设定系统环境,设定PATH、USER、


LOGINNAME、MAIL、HOSTNAME、HISTSIZE以及INPUTRC变量。以及最后运行/etc/profile.d目录中的脚本文件。


            /etc/profile.d:一个包含若干用于bash shell脚本文件的目录,这些脚本文件由/etc/profile启动运行。



第二节 实现磁盘配额


1、        查看当前的内核是否支持磁盘配额:


#grep CONFIG_QUOTA  /boot/config-2.4.21-4.EL


如果输出的内容如下则内核支持磁盘配额:


CONFIG_QUOTA=y


如果你看到的输出如下,则你需要自行编译内核:


CONFIG_QUOTA=n


2、        查看相关软件包是否已安装:


rpm –q quota


3、        举例说明磁盘配额的实现方法:


#useradd  linux          增加用户linux


#passwd  linux           修改用户linux的密码


#mkdir /www/linux        建立新文件夹


#chown  linux.linux  /www/linux  更改文件夹的属主


#vi /etc/fstab              增加如下行:


/dev/hda7  /www  ext3   defaults,usrquota  0 0


#mkfs –t ext3  /dev/sdb1   格式化分区


#quotacheck  -cu /www    生成aquota.user 文件


#quotacheck  -vu /www    生成相关的信息


#repquota    –au         显示所有的磁盘配额信息


#edquota     -u  linux    对用户linux设置配额


#edquota     -t           设置宽限期


#edquotaon   /www    开启/www目录上的磁盘配额



第三节 内核基础知识


          内核是整个操作系统的核心部分。它管理硬件之间的通讯,决定哪个进程运行,提供每一个进程运行所需的相对隔离的虚拟的地址空间。内核由引导程序(grub、lilo)装入系统。内核负责将驱动程序,模块装入系统。自行编译内核以后可以带来以下方面的好处:


         极大的提高核心服务的运行速度


         提供用户服指定的服务的内核直接支持


         对适当的服务以模块化的形式动态支持


         通过减少不必要的服务可以降低内核的内存需求


         配置支持高端硬件,例如大于4G的内存,硬盘阵列,对称式多cpu


编译内核的建议: 只有在需要的时候才编译内核,直接编译进内核的


东西越少系统运行越快。如果你不需要声卡,你可以从内核移除对声卡的支持。通过移除你不需要的设备,你可以做到减小内核,在不改变设备的情况下提高系统运行的速度。为其它的硬件留下更多的可用资源。


总体而言将各种硬件的设备的驱动作为模块动态的加载和卸载是一个


较好的办法。模块是内核的扩展,虽然没有直接编译进内核,但是可以


随需要加载和卸载。


内核概念:


对于系统管理员而言,对系统的内核应该有一定的了解,这样才能更好的编译内核。


单内核与模块化内核


      单内核:所有的设备模块直接编译进内核


      模块化内核:许多设备已模块的形式单独加载


单内核与设备的通讯速度快,模块化内核与硬件通信要通过模块


列表,不行的是单内核过于庞大。大内核减少了可用的内存。有


些系统甚至不能启动这样大的内核。Linux过去使用单内核,linux


一度在装载模块化内核的时候由于某些硬件而产生问题。使用单


内核则系统安装完成之后所有的驱动程序就已经装好了。模块化


内核有极大的灵活性。你可以将几乎所有的驱动程序作为模块编


译,这样在必要的时候这些模块就会被载入系统。模块化使得内


核十分的小,这就减少了启动所需要的时间提高了系统整体性能。


如果linux装载模块的时候产生问题,你可以使用modprobe或者


insmod命令来手动装载模块。


升级内核:升级内合并不像看起来的那么难。你应该总是保留久的内核,以免由于新内核的错误而导致系统无法引导。对grub或者lilo而言新的内核就是一个新的操作系统。如果使用rpm包安装了新的内核,引导程序也自动被升级。如果你犯了一个比较大的错误,导致无法引导,你可以在重新启动后选择使用旧的内核。你应该保存内核配置文件这样你就可以轻松的将其拷贝到新的内核继续使用。详情后续部分将详细介绍。


/boot目录:  linux的内核存储在这个目录里。新的内核也必须存放于这个目录,才能够使用。该目录的莫人大小时100M,足够存储当前的内核以及升级内核的时候的附加内核。


/proc 目录:这个目录基于一个虚拟的文件系统。换句话说她不包含任何存储在硬盘上的文件,但它是查看计算机的一个窗口。如果你要查看当前的内存信息使用该命令:cat /proc/meminfo


Ip forwarding:查看当前状态:cat /proc/sys/net/ipv4/ip_forward,若输出为


1,则该功能已开启,若为0,则未开启。


             开启ip forward:echo 1 >;>; /proc/sys/net/ipv4/ip_forward


阻止ping of death攻击:#echo 1 >;>; /proc/sys/net/ipv4/tcp_syncookies


理解内核模块:


当你编译内核的时候,你可以将所有的需要的驱动程序编译成进内核,成为一个单内核。但是这样的内核太大了,并且需要很长的时间加载。大多数的系统管理员使用内核模块。内核模块并不直接编译进内核,而是根据需要动态的进行加载和卸载。如果和内核模块相关的硬件除了问题,你可以使用kudzu。这是一个自动检测和配置工具,一般在系统启动的时候自动运行,当然了你也可以手工运行这个工具来排除故障。Kmod是模块加载控制器,负责内核模块的加载和卸载。指定特别的选祥和参数可以修改/etc/modules.conf文件。大多数的硬件都可以自动检测到,对于未识别到的硬件可以执行:depmod –a


手工加载模块使用:modprobe例:#modprobe pcnet32


查看当前加载的模块:#cat /proc/modules或者#lsmod


卸载模块:rmmod –r pcnet32



第四节 升级内核


1、关于内核版本 内核版本号的形式一般都是这样的:x.x.x例如:2.4.21


  第一个数字表示主版本号,第二个数字表示辅助版本号,第三个号码代表patch的号码。主版本号的变更往往意味着很大的改变,可能会有很多程序不能够在新的内核上使用。辅助版本号有两个含义:第一主版本内核的第x个版本,第二x若为奇数则表示该版本为正在开发中的版本,不适合生产使用,若为偶数则表示该版本为稳定的可靠版本,可以用于生产。最后一个号码代表patch即补丁的版本号。


2、升级内核 新的内核往往会包含着新的技术,意味着系统可以支持更多的设备,也意味着更好的稳定性和更快的性能。所以系统管理员可能会需要对内核进行升级。升级内核主要有两种方式:


1、        rpm包升级方式  从网上下载已经编译好的rpm内核软件


包,然后进行安装,例:rpm –ivh  kernel-2.4.21-8.i386.rpm


2、        使用内核的源码包编译安装。这部分较为复杂,在后续章


节进行详细论述,此处略过。


        3、内核补丁为了使你的系统运行的更加的稳定、高效,你可能经常要给你的系统打补丁,例如从2.4.20到2.4.21。内核补丁可以很容易的从网上下载到。安装也很容易,例:


            #zcat pathch-2.4.22.gz | patch –p0


3、        制作引导盘


#mkbootdisk  “当前内核的版本号”


例:mkbootdisk 2.4.20


#dd if=/mnt/cdrom/images/bootnet.img  of=/dev/fd0


从光盘创建安装引导盘


        4、 内核资源


                  linux的优点之一是你可以格局你的需要对内核自


由进行裁减编译,使之符合自己的需要。要编译内核就要先了解linux的源代码。一旦安装了源码包,你就会在/usr/src目录中看到如下子目录:debug、redhat、linux-2.4、linux-2.4.21-4.EL。linux-2.4是linux-2.4.21-4.EL的符号链接文件。安装内核源码包使用如下命令


#mount  /mnt/cdrom


#rpm –Uvh /mnt/cdrom/RedHat/RPMS/kernel-source-*


或者你可以下载linux tar file,即以tar.gz的形式发行的源码包。


4、        重新编译内核


           将下载好的内核解压缩到:/usr/src/目录下


#cd /usr/src/   进入该目录


#ln linux-2.4.26 linux-2.4    创建该目录的符号链接文件


#cd linux-2.4   进入内核目录


修改Makefile文件,找到包含EXTAVERSION的行将其改为EXTRAVERSION=qun


  #make mrproper   确保源文件的一致性


#make xconfig  选择需要编译进内核的功能


#make dep       解决依赖性


#make bzImage   生成内核


#make modules   编译内核模块


#cp        usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.26qun


#make modules_install   安装内核模块


#mkinitrd /boot/initrd-2.4.26qun.img 2.4.26qun 生成启动镜像文件


# cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.26qun


#vi /etc/grub.conf # 在最后部分添加如下行:


title Red Hat Linux (2.4.26qun)


kernel /vmlinuz-2.4.26qun ro root=LABEL=/


initrd /initrd-2.4.26qun.img


:wq!


#reboot 重新启动后就可以看到刚刚安装好的内核了。


#对于2.6的内核而言,步骤就简单了很多只需要这几个命令:


  make xconfig、make、make install



第五节 任务自动化


        linux下实现任务自动化的工具主要有两个:cron、at,


cron的守护进程是crond,在默认的情况下,它每分钟都检查一系列的目录,如果有设定的程序就会在指定的时间内将其启动。用户的cron设置位于:/var/spool/cron目录,计算机的调度任务位于:/etc/crontab和/etc/cron.d目录。只用当需要运行程序的时候,cron守护进程才会启动。


        Cron的配置方法如下:


Crontab –u  username  -e,例:


Crontab –u root –e    对用户root进行设置


设置的具体格式如下:


minute, hour, day of month, month, day of week, command


*        *          *           *        *          command


例:crontab -u root -e


    30  23   *     *    *     *    reboot


设定每晚23:30重新启动计算机


查看cron设置:crontab -l例:crontab -l -u zhao查看用户zhao的设置


crontab 参数介绍:


-e:编辑设置


-u:指定用户


-r:删除设置


-u:列出当前设置


使用at实现任务自动化:类似于cron,at也可以实现任务自动在指定的时间执行,不同之处在于cron任务是多次循环反复执行的,而at任务是一次性的,执行一次之后就不再生效了。设定at任务的方法如下:


#at  now + 1 hour


at>; reboot


at>;ctrl+D       设定一个小时之后重新引导系统


查看at任务:atq 例:#atq


1        2004-11-01 00:53  a  root


2        2004-11-01 01:53  a  root


          除任务:atrm 例:删除第一个任务:#atrm 1


增强cron、at安全性:


          可以通过这两个文件来对用户进行权限的控制:/etc/cron.allow、/etc/cron.deny。如果这两个文件不存在,那么所有的用户都可以使用cront、at。如果有/etc/cron.allow文件,则该文件不包含的用户将不能使用cron,如果没有/etc/cron.allow文件,则只有/etc/cron.deny文件所包含的用户不能访问cron.



第五章 linux网络服务
第一节 samba网络共享服务


共享文件是网络的一项重要服务,在linux中实现类似的功能主要有两种办法:samba文件共享,NFS文件共享,本节主要讲解samba的网络共享服务。使用samba服务可以实现linux和unix以及windows之间的网络文件共享。并且使用samba服务,linux还可以作为windows的服务器,主要有如下几种:


win9x的工作组成员、


nt/2000/xp/2003的域成员、


成员服务器甚至是域主服务器。


共享用户的主目录。


作为wins服务器


作为主浏览器


提供集中式的身份验证


配置本地目录作为共享文件系统


支持microsoft访问控制列表


1、        samba有两个守护进程:smbd、nmbd位于/usr/sbin


2、        启动和关闭samba服务:#service smb start、


                                  #service smb stop


3、        使之随系统一同启动:  #chkconfig –level 35 smb on


4、samba共享文件实例:


目标:共享本机上的/home/zhao,使用户zhao,可以通过网络读写,用户fang可以读不可以写。


实现步骤:


1、#vi /etc/samba/smb.conf   编辑[global],增加如下行:


               netbios name = kodadigital   设置计算机的共享名


               workgroup = koda                设置计算机的工作组


               valid users = zhao      设置可以访问这台计算机的用户


2、增加如下行:


                [zhao]                                共享文件夹的名字


                comment =  welcome    对该共享文件夹的注释


                path = "/home/zhao"       共享文件夹的路径


                admin users  = root    管理员用户,实际上并没有权限


                valid users  = root,zhao,fang 对该共享文件夹有访问权限的用户


                write list = root,zhao 对该共享文件夹有写权限的用户


3、将默认的[homes] 配置文件及其选项全部用#注释掉


4、#/etc/rc.d/init.d/smb restart


说明:通过网络访问的时候首先要通过global中设定的valid用户的身份验证,然后根据访问的文件夹的不同,


还要通过各共享文件夹定义的valid用户身份验证。



第二节 web服务及虚拟服务器(apache)


在linux中web服务主要依靠apache来实现。Apache是当今世界上应用最为广泛,最为可靠的web服务器。Linux的各种发行版都自带有发行形时最新版的apache。后续的部分将以一个实例来讲解如何配置apache服务器。


1、        如何安装软件大家应该都已经很熟了,就不讲了。


2、        #service httpd status  查看当前是否已运行web服务


3、        #service httpd start   启动web服务


4、        #使用浏览器在地址栏输http://127.0.0.1,应该可以  


看到apache的测试页面,如果看不到测试页面使用该命令:iptables –F 关掉防火墙


             5、  #配置apache服务器


步骤:1、安装完成后,/etc/rc.d/init.d/httpd start, 关闭防火墙,启动浏览器即可看到默认的页面,编辑/var/www/html/index.html,重新启动httpd服务,使生效。


2、实现用户的个人主页


#vi /etc/httpd/conf/httpd.conf  删除UserDir  disable, 去掉 UserDir public_html  之前的#号,/etc/rc.d/init.d/httpd restart,重新启动web服务,在浏览器地址栏输入192.168.0.4/~zhao/,来验证。目标:实现基本的web服务,用户web和基于名称、ip地址的虚拟主机服务


 


3、基于名字的虚拟主机:vi /etc/hosts,增加如下行:192.168.0.4   www.zhao.com   zhao


                        vi /etc/httpd/conf/httpd.conf     将最后的部分改为如下:


<VIrtualHost www.zhao.com>;


                       ServerAdmin webmaster@zhao.com


                       DocumentRoot  /var/www/zhao


                       ServerName     www.zhao.com


<Directory /var/www/zhao>;


</Directory>;


</VirtualHost>;


*实现基于名字的虚拟主机需要实现配置dns服务器


     /etc/rc.d/init.d/network restart


     /etc/rc.d/init.d/httpd restart


打开浏览器在地址栏输入www.zhao.com


4、基于ip地址的虚拟主机:


   ifconfig eth0:0 192.168.0.5 netmask 255.255.255.0


 


                vi /etc/httpd/conf/httpd.conf,增加以下部分:


<VirtualHost 192.168.0.5>;


     ServerAdmin webmaster@zhao.com


     DocumentRoot /var/www/hit


</VirtualHost>;


/etc/rc.d/init.d/httpd restart


打开浏览器在地址栏输入:192.168.0.5



第三节 实现squid代理服务器 


对于大多数企业而言代理服务器是必不可少的。在windows世界有各种软件来实现代理服务器的功能,如:sygate、wingate、isa等等,在linux领域中这个功能由squid来实现。Squid是一款功能强大的代理服务器软件,培植较为简洁,效率非常的高。本节以一个世纪的例子来讲解如何一步步的配置squid代理服务器。


1、#vi /etc/squid.conf  编辑squid配置文件,增加如下行:


http_port 8080    将代理端口设为8080,如不进行设置则默认的代理端口为:3128


cache_men 16  MB  设置代理服务器的高速缓存大小


cache_dir  ufs  /spool/squid 100 16  256        设置代理服务器的交换空间,/spool/squid表示高速缓存的位置,100表示空间为100M,16代表16个目录,256代表共有256个二级目录


cache_access_log  /var/log/squid/access.log 缓存访问日志


cache_log         /var/log/squid/cache.log  缓存日志


cache_store_log   /var/log/squid/store.log  缓存存储日志


acl InternetAllow src 10.10.10.0    建立新的访问控制列表


http_access allow InternetAllow   建立新的规则允许InternetAllow列表中的主机使用代理服务器


2、#wq!          保存退出


3、#squid –z    进行初始化


4、#service squid start 启动squid 代理服务


5、        squid设置完成,现在就可以使用了。



第四节 Ftp服务


   ftp是互联网上很普遍的服务,再redhat中自带的ftp软件是vsftp,该软件的特点是易于使用,安全性极好。以下一个实际的例子来讲解如何实现vsftp服务器的全过程。


a)        安装vsftp软件:把第二张光盘放到光驱,挂接后进入/mnt/cdrom/RedHat/RPMS目录,使用命令:rpm –ivh vsftd-1.2.0-4.i386.rpm


b)        #service vsftpd start             启动服务


c)        常用配置命令:cd、get、mget、put、mput



第五节 邮件服务器


邮件服务是互联网上的一项基本服务,绝大多数经常上网的网民都有自己的电子信箱,用于商业的电子信箱也日益普遍,多数公司都会使用电子邮件与客户进行通信、交流。很多的时候公司内部也会有内部的电子邮件服务器,在公司内部提供电子邮件服务。在linux/unix平台之上最常用电子邮件系统为:sendmail。该系统功能强大,运行稳定,广泛的运行于世界各地,是internet上最为流行的电子邮件系统。但是sendmail有一个缺点就是难于配置,培植文件非常难以读懂。本节的其余部分一个以实际的例子来对sendmail的配置文件进行修改,希望大家严格按照本文的步骤来进行操作,以确保能够顺利的启动邮件服务:


a)        安装sendmail和bind


b)        配置DNS服务器:


1、#vi /etc/named.conf,添加新的域:test.com


    zone "test.com" IN {


    type master;


    file "test.com.dns";


    allow-update { none; };


     };


2、touch /var/named/test.com.dns建立相应的域的配置文件:


   $TTL 1d 默认的生存周期


   @ 1d IN SOA ns.test.com. root.test.com. (


                1 起始序列号


                2d 刷新频率


                1h 重试频率


                1w 失效时间


                1h) 最短TTL


  @ 1d IN NS ns.test.com. 设置域名服务器地址


     1d    IN MX 10 mail.test.com. 设置邮件服务器地址


     www  IN A 192.168.0.10 设置域名和ip地址的对应关系


     ns     IN A 192.168.0.10


     mail   IN A 192.168.0.10


3、保存退出,service named restart 将dns指向自己


4、测试:host -l test.com


c)        修改sendmail的配置文件:


1、#vi /etc/mail/,修改如下行:


o DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA


将其中的127.0.0.1更改为sendmail服务器的地址192.168.0.1,然后保存。


2、#vi /etc/mail/access,增加如下行:


test.com   RELAY


192.168.0  RELAY


执行命令,使之生效:


makemap –r hash /etc/mail/access.db < /etc/mail/access


         3、# vi /etc/mail/local-host-names,添加允许中继的主机


mail.test.com。保存退出


d)        重新启动sendmail服务:#service sendmail restart,现在你就可以使用这个sendmail服务起来收发邮件啦


 



第六节 DNS服务器


随着网络的发展,在公司内部建立自己的邮件服务器显得越来越重要,越来越多的服务要依赖于dns服务。Linux自带的邮件服务器是:bind 9。以下部分以新增tes.com域名为例讲解配置dns的过程。


1、        安装


2、        #vi /etc/named.conf     #修改改配置文件,增加test.com的配置信息


zone  “tes.com” IN {  #新域的名字


type master;    #该服务器的类型


file “tes.com.dns”;   #该域的配置文件


allow-update {none;};   #是否允许动态更新


};


3、#touch /var/named/test.com.dns  #建立test.com域的配置文件


4、# vi /var/named/test.com.dns    #修改配置文件,增加以下内容


     $TTL  1d


     @     1d  IN   SOA  ns.tes.com. root.test.com (


                           1


                            1d


                            2d


                            3d


                            1h )


       @  1d  IN NS  ns.test.com.      增加域名服务器纪录


          1d   IN MX 10 mail.test.com. 增加邮件服务器纪录


        www  1d IN A 192.168.0.1       增加主机纪录


        ns   1d IN A 192.168.0.1       增机主机纪录


        mail 1d  IN A 192.168.0.1      增机主机纪录


5、保存退出


6、以上部分为正向的域名解析部分,下边是反向解析的配置办法


7、# vi /etc/named.conf  #增加如下行


     zone “0.168.192.in-addr.arpa” {


         type master;


         file “0.168.192.in-addr.arpa.dns”;


         allow-update{none;};


     };


8、#touch /var/named/0.168.192.in-addr.arpa.dns # 创建配置文件


9、# vi /var/named/0.168.192.in-addr.arpa.dns#修改配置文件,增加如下内容


    $TTl 1d  0.168.192.in-addr.arpa IN SOA ns.test.com.(


               1107274122


                        10800


                        3600


                        604800


                        38400)


   0.168.192.in-addr.arpa.        IN        NS        ns.test.com.


   1.0.168.192.in-addr.arpa. IN        PTR          ns.test.com. 增加机指针纪录


1.0.168.192.in-addr.arpa.        IN        PTR          mail.test.com. 增加机指针纪录


10、# service named restart    #启动域名服务器


    # host –l test.com        #测试域名服务器正向解析


    # host  -l 0.168.192.in-addr.arpa #测试域名服务器的逆向解析

2012年5月7日星期一

CSS随便记一点

height  高


width   宽


border  边框


margin 外补白   margin值是要累加的?正负也会抵消?


padding 内补白


margin和padding的四个方向值 依次是:上 右 下 左


如果只给了三个值,则是左右相同,如果只给了两个,则是上下相同,左右相同;


. 是类选择符  类控制全部同类元素


# 是ID选择符  ID控制单个元素


color: red;


color: FF00FF;


color: rgb(128,128,128);


color: rgb(20%,20%,20%);


color: inherit;


inherit 指继承爷值;


background-color:red;


border-width:thin(medium/thick);


border-width:10px(10pt,1.5em);


border-top(right/left/bottom)-width:15px;


border-color:red(百分比/十六进制等同上);


border-style:none(不存在边框,不占空间);


border-style:hidden(存在,但看不见);


border-style:dotted(dashed/solid/double/outset/inset);


margin-top(left,right,bottom):30px; 默认margin为0px;


background-image:url(http://……jpg);


background-image:none;


background-image:inherit;继承父值;


background-repeat:norepeat; 默认为重复;


background-repeat:repeat-x;横向重复;


background-repeat:repeat-y;纵向重复;


background-repeat:inherit; 继承父值;


background-attachment:fixed; 固定在网页位置,网页下滑,图片还是在那里。


background-attachment:scroll; 图片和网页一起滑动;


background-postion:10px 10px; (x轴,y轴)


background-postion:10% 10% ;(bottom/top/center/left/right 这些可组合,例如 bottom right 右下)


font-family:verdana;


font-style:oblique(italic/normal) oblique和italic都是斜体,一般用italic


font-weight:normal(bold/bolder/lighter/100-900);


font-size:12px;(pt/medium/smaller/normal/larger/50%); px,pt,medium是绝对值,后面4个是相对值;


line-height; ????(待查)


font-variant  使用方法待查,可将小写字母变成大写,便字体大小不变。例如将Fxd变成FXD 。


text-indent:10px;段落首行缩进;


padding-left:10px; 相当于整段缩进;


text-indent:-10px; 向左?向右?缩进


text-aligin:left(right/center/justify); justify是两端对齐


text-decoration:none(underline/overline/line-through); 依次是,无/下划线/上划线/删除线;


text-transform:none(capitalize/uppercase/lowercase); 依次是,无/首字母大写/全部大写/全部小写


a:link 未访问


a:visited 已访问


a:active  点击与释放时


a:hover 经过/悬停时


border-right:1px solid #99# (右边框,实体,颜色是#99#;) 只有右边框一条坚线,常用来作分隔符;


CSS规则:


1、离对像最近的说了算


2、谁具体谁说了算 (比如类和ID,ID更具体,所以ID说了算。)


3、嵌入标签的最大。