Linux实践工程师学习笔记

Linux实践工程师学习笔记[转]来源:http://linux.chinaunix.net/bbs/thread-979058-1-1.html
Linux实践工程师学习笔记一:用户环境
用户环境
#locale    显示系统语言环境       语言环境参数保存在/etc/sysconfig/i禁用词语文件里
LANG最主要
#locale –a       查看系统对语言的支持情况
#LANG=zh_CN.GB2312       使系统支持以中文形式显示
kudzu      用来检测硬件
services kudzu start       重新检测硬件,让系统自动识别新硬件
硬件信息保存在/etc/sysconfig/hwconf文件
由kudzu产生
修改系统服务启动脚本
chkconfig kudzu –list     检查某个服务状态(包括各个级别0~6的状态)
setup       配置系统服务,一个综合配置工具
chkconfig –list | more   检查系统所有服务的状态
所有服务通过init启动
有些是通过xinetd服务启动的,如rsync
启动rsync
chkconfig rsync on
当执行service xinetd restart时,其实是执行/etc/init.d/xinetd这个脚本
而这个脚本会去检查自己的配置目录/etc/xinetd.d
/etc/rc0.d~/etc/rc6.d     里面的文件连接到../init.d/具体的服务,如/etc/init.d/kudzu
S开头为启动,K为不启动
/etc/rc0.d~/etc/rc6.d ---àrc.d/rc0.d~rc6.d
设置系统服务ntsysv命令(同setup)
如何关闭selinux
/usr/sbin/setenforce 0    关闭
/usr/sbin/setenforce 1    开启
或在/etc/selinux/config中改
SELINUXTYPE=permissive        关闭,disabled也可以
Linux下使用U盘
#ls /dev   确认设备已识别
#mount -o iocharset=gb2312 /dev/sda1
more后ctrl+F向下翻页(或空格)ctrl+b(上滚)
ls -a        显示隐藏文件(以.开头的文件)
文件权限rws        s表示执行这个程序的使用者,临时拥有和所有者一样的权力身份来执行该程序
cp -r 源  目的      -r参数表示连子目录一起拷贝
rm -i            确认删除
       -r            删除子目录
       -f            强制删除
du    磁盘或目录使用了多少空间
df    磁盘或目录剩余可用空间
cat >file1        等价你输入文字,输完后ctrl+C或ctrl+D结束
>>符号表示在文件尾附加,>符号表示创建新文件
less 可上下滚动文件内容
which     在$PATH设置的目录查找文件
Linux实践工程师学习笔记二:系统管理常用命令

1.       useradd redhat
2.       passwd redhat
3.       su –
4.       exit
5.       df –h 分区情况
6.       du –sh  /*      统计文件或目录使用空间的大小
7.       fdisk –l  /dev/sda
8.       netconfig         配置网络参数
9.       ifconfig           显示网络配置信息
10.   service network restart
11.   route –n          查看路由信息(默认路由)
12.   ping –b 192.168.0.255    扫描整个网段(检查活动主机)
13.   ifconfig eth0 10.0.0.254 netmask 255.255.255.0   修改IP地址
14.   ifconfig eth0显示指定网卡参数
15.   修改IP信息后会删除默认路由,需手工添加
route add default gw 192.168.0.1
16.   ifconfig route 修改过的参数不会保存,重启后会消失
要用service network restart命令把参数保存到文件ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
可以vi直接修改该文件,然后service network restart 重新启用网络服务
17.   redhat-config-network-tui是redhat独有的配置工具,当用这个命令配置网络参数后,会写入到/etc/sysconfig/networking/profiles/目录里,并且比network-scripts/ifcfg-eth0优先,所以用过这个工具配置就不要再使用netconfig,或者先将profiles目录清空
Linux实践工程师学习笔记三:文件系统维护

ext2/ext3通过数据块储存文件
格式化文件系统:
mkfs.ext3 –b 4096 –i 8192 –m 5 /dev/sdb4
-b       数据块大小
-i inode节点表示的字节数(或数据块大小)
-m 5       为管理员保留的磁盘管理空间5%   
ls –lh /mnt/u
du –sh /mnt/u
df –lh
#tune2fs –l /dev/sdb1          打印文件系统属性
#df
tune2fs 调整ext2/ext3文件系统特性的工具
-l 查看文件系统信息
-m      保留块百分比
-c <count>   设置强制自检的挂载次数
-i <n day>   设置强制自检的间隔时间
-j           ext2转成ext3

tune2fs –c -1 /dev/sdb1    不管挂载多小次都不自检
tune2fs –c -1 –i 0 /dev/sdb1   让分区永远不自检
#mkfs.ext2 /dev/sdb4   格式化成ext2
#tune2fs –j /dev/sdb4   转换为ext3
#df –T              查看分区信息
判断间ext2还是ext3:
tune2fs –l /dev/sdb1 | grep features
看Filesystem features: has_journal
是否有has_journal,有则是ext3文件系统

grep –i “name”   不区分大小写
df –T 分区类型
fsck       检查文件系统数据完整性的工具
用法一、fsck –t ext2 /dev/sdb1
   二、fsck.ext3 /dev/sdb1
#more /etc/fstab
如发现挂载选项有1或2,那么应该进行自检了
#fsck.ext3 –y /dev/sdb1          自动修复错误
Linux实践工程师学习笔记四:管理磁盘文件系统

mount 设备名 挂载点
mount /dev/fd0 /mnt/floppy
光驱(IDE) /dev/cdrom    (/dev/hdx)
光驱(SCSI)/dev/scdN     (N=0,1…)
硬盘(IDE) /dev/hdX      (X=a,b,c…)
硬盘(SCSI)/dev/sdX      (X=a,b,c…)
U盘        /dev/sdX      (X=a,b,c…)
弹出光盘#eject
收回#eject –t
因为USB设备内置USB-SCSI转换接口,所以被认为是SCSI硬盘
#mkdir /mnt/u
#mount /dev/sda1 /mnt/u
默认内核已支持SCSI和USB接口
#modprobe usb-storage          检查usb-storage模块是否已加载,否则无法自动识别USB设备
#mount –t vfat /dev/hda2 /mnt/c
#mount –t ntfs /dev/hda3 /mnt/d 需重新编译内核才能支持NTFS
#mount –t iso9660 /dev/cdrom /mnt/cdrom
#mount –t vfat –o iocharset=gb2312 /dev/sdb1 /mnt/u
常用字符编码有gb2312和utf8
#mount /dev/sdb2 /mmt/d –o iocharset=utf8,ro,uid=redhat,umask=0077  
Linux下使用U盘
#ls /dev          确认设备已识别
#mount -o iocharset=gb2312 /dev/sda1
more后ctrl+F向下翻页(或空格)ctrl+b(上滚)
ls -a             显示隐藏文件(以.开头的文件)
文件权限rws        s表示执行这个程序的使用者,临时拥有和所有者一样的权力身份来执行该程序
cp -r 源  目的     -r参数表示连子目录一起拷贝
rm -i             确认删除
   -r             删除子目录
   -f             强制删除
du                磁盘或目录使用了多少空间
df                磁盘或目录剩余可用空间
cat >file1        等价你输入文字,输完后ctrl+C或ctrl+D结束
>>符号表示在文件尾附加,>符号表示创建新文件
less  可上下滚动文件内容
which     在$PATH设置的目录查找文件
Linux实践工程师学习笔记四:管理磁盘文件系统

mount 设备名 挂载点
mount /dev/fd0 /mnt/floppy
光驱(IDE) /dev/cdrom    (/dev/hdx)
光驱(SCSI)/dev/scdN     (N=0,1…)
硬盘(IDE) /dev/hdX      (X=a,b,c…)
硬盘(SCSI)/dev/sdX      (X=a,b,c…)
U盘        /dev/sdX      (X=a,b,c…)
弹出光盘#eject
收回#eject –t
因为USB设备内置USB-SCSI转换接口,所以被认为是SCSI硬盘
#mkdir /mnt/u
#mount /dev/sda1 /mnt/u
默认内核已支持SCSI和USB接口
#modprobe usb-storage          检查usb-storage模块是否已加载,否则无法自动识别USB设备
#mount –t vfat /dev/hda2 /mnt/c
#mount –t ntfs /dev/hda3 /mnt/d 需重新编译内核才能支持NTFS
#mount –t iso9660 /dev/cdrom /mnt/cdrom
#mount –t vfat –o iocharset=gb2312 /dev/sdb1 /mnt/u
常用字符编码有gb2312和utf8
#mount /dev/sdb2 /mmt/d –o iocharset=utf8,ro,uid=redhat,umask=0077  
Linux下使用U盘
#ls /dev          确认设备已识别
#mount -o iocharset=gb2312 /dev/sda1
more后ctrl+F向下翻页(或空格)ctrl+b(上滚)
ls -a             显示隐藏文件(以.开头的文件)
文件权限rws        s表示执行这个程序的使用者,临时拥有和所有者一样的权力身份来执行该程序
cp -r 源  目的     -r参数表示连子目录一起拷贝
rm -i             确认删除
   -r             删除子目录
   -f             强制删除
du                磁盘或目录使用了多少空间
df                磁盘或目录剩余可用空间
cat >file1        等价你输入文字,输完后ctrl+C或ctrl+D结束
>>符号表示在文件尾附加,>符号表示创建新文件
less  可上下滚动文件内容
which     在$PATH设置的目录查找文件

1.需要samba作为文件服务器,为所有用户创建账号和目录,用户默认都 在服务器上有一个home目录,只有认证通过才能看到。
2.需为市场部和技术部创建不同的组sales和tech,并且分配目录,把所有市场部员工加入sales组,技术部员工加入tech组,通过samba共享sales和tect
3.建立用户账号时,不分配shell
案例实施:
1.为所有用户创建账号和目录,不分配shell,假设市场部有tom,jack,技术部有red,blue,总经理ceo,财务finance
2.建组sales和tech,把所有市场部员工加入sales组,技术部员工加入tect组
3.创建两个目录/home/sales和/home/tech,并修改两个目录的权限,分别属于sales组和tect组
4.通过samba共享/home/sales和/home/tect
5.测试
如有错误,检查
/etc/samba/smbpasswd         确定账户
/etc/samba/smbusers            查看映射文件
tail /var/log/samba/redhat.log        查看/var/log/samba/目录下的日志
具体操作:
#vi /etc/samba/smb.conf              安全级别为user
#groupadd sales
#groupadd tech
#useradd –g sales –s /bin/false tom
#useradd –g sales –s /bin/false jack
#smbpasswd –a tom
#smbpasswd –a jack
#for user in red blue                批量添加用户red,blue
>do
>    useradd –g tech –s /bin/false  $user
>     smbpasswd –a $user
>     done
#useradd ceo
#useradd finance
#smbpasswd –a ceo
#smbpasswd –a finance
#mkdir /home/sales /home/tech
#chgrp sales   /home/sales
#chgrp tech    /home/tech
#chmod 770 /home/sales
#chmod 770 /home/tech
#chmod g+s /home/sales              防止权限发生混乱
#chmod g+s /home/tech
#vi /etc/samba/smb.conf
[sales]
       path = /home/sales
       comment = sales
       public = no
       valid users = @sales
       write list = @sales
       create mask = 0770            其实效果就是0760,因为samba服务器会自动把可执行权限拿掉
       directory mask = 0770
[tech]
       path = /home/tech
       comment = tech
       public = no
       valid users = @tech
       write list = @tech
       create mask = 0770
       directory mask = 0770
linux测试
1.smbclient –L 192.168.0.22 –U tom%tom
2.mount.cifs //192.168.0.22/ceo –o username=ceo%ceo
windows客户机映射网络驱动器,再设定“我的文档”位置,就可随时随地将文件保存在samba服务器
Linux实践工程师学习笔记七:Raid

安全的动态磁盘策略
linux内核可以模拟RAID控制器,用来管理硬盘,但只支持级别0,1,4,5
RAID0 又称striping
把连续的数据访问分散到多个磁盘上来提高存储性能,速度最快,但最危险。
RAID1 又称Mirror或Mirroring
最大限度的保证用户数据的可用性和可修复性,用户数据100%自动复制到另外一个硬盘上,速度稍慢,因为要同时写多个硬盘。
RAID5    最少需三个硬盘
不对存储的数据时行备份,而把数据和对应的奇偶校验信息分别存储在不同的磁盘上,当一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID0+1       也称RAID10
结合RAID0和RAID1的优点,很多公司在应用
Linux中的软件RAID
1.默认内核已支持软件RAID控制器
2.需安装raidtools工具来创建管理RAID设备,raidtools包含有RAID创建管理工具和默认的示范性配置文件,安装完后编辑/etc/raidtab这配置文件,它可以从raidtools中的示范配置文件里(在/usr/share/doc/raid-~/目录下)复制。最后用以下命令创建RAID设备:
#mkraid /dev/md0
#mkraid -f /dev/md0
#mkraid -R /dev/md0
  后两个命令是强制创建,覆盖以前建的超级块。
  但Fedora Core5不使用这个,而用mdadm工具。
3.软件RAID设备文件名:/dev/mdN        (N=0,1,2…)
4.软件RAID设备可以当分区看待,需格式化后挂载
#mkfs.ext3     /dev/md1
#mount /dev/md1 /opt
5.停止RAID设备
#umount /opt
#raidstop /dev/md0
  要永久删除RAID设备,还需删除raidtab文件,否则重启后RAID仍起作用。
6.显示RAID设备信息
#lsraid -A -a /dev/md1
7.RAID1故障模拟
  假设sdb1与sdc1两个磁盘做RAID1,sdb1磁盘坏了,加入新一块磁盘sdd1。
#raidsetfaulty /dev/md1 /dev/sdb1
#raidhotadd /dev/md1 /dev/sdd1         
#more /proc/mdstat                     查看磁盘修复过程
#raidhotremove /dev/sdb1
  最后还要修改raidtab文件。
使用mdadm来创建和管理RAID
RAID0
       添加硬盘
       RAID设备的成员是硬盘分区,需先对硬盘分区,分区不能在同一物理硬盘上
       #fdisk /dev/sdb
       n创建主分区,t分区类型fd,w写保存
       #fdisk /dev/sdc
       #mdadm –Cv /dev/md0 –l0 –n2 /dev/sdb1 /dev/sdc1
              -C,--create             创建一个新的阵列
              -v,verbose             显示细节
              /dev/md0               阵列设备的名称
              -l,--level=              阵列级别,如0,1,4,5,6
              -n,--raid-devices=   阵列活动数目
              /dev/sd[bc]1          阵列包含的设备列表
       #more /proc/mdstat              查看阵列状态
       #mkfs.ext3 /dev/md0     创建文件系统
       #mount /dev/md0 /mnt/raid
       让系统自动挂载,修改/etc/fstab,添加
       /dev/md0       /mnt/raid        ext3 defaults 0 0
RAID5 故障模拟
       前面已创建了一个RAID5设备md0
       #mdadm –Cv /dev/md0 –l5 –n3 –x1 –c128 /dev/sd[b,c,d,e]1
       1.将/dev/sdb1标记为已损坏的设备
       #mdadm /dev/md0 –f  /dev/sdb1
       这时阵列开始重构和恢复数据
       2.移除损坏的设备
       #mdadm /dev/md0 –r /dev/sdb1
       3.将新设备添加到阵列
       注意,一:对硬盘正确分区,二:添加设备名要与被移除的一致,如sdb1
       #mdadm /dev/md0 –a /dev/sdb1
      
生成配置文件/etc/mdadm.conf
格式如下:
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 ARRAY /dev/md10 level=raid10 num-devices=4 UUID=12334343dkfj
其中UUID信息通过#mdadm –D /dev/md10得到
#mdadm –Ds 扫描该文件信息
常用阵列维护命令
1.启用阵列
       #mdadm –As /dev/md0
       -A    启用已存在的阵列
       -s    以/etc/mdadm.conf为依据
       没有创建mdadm.conf文件,则采用如下方法启用
       #mdadm –A /dev/md0 /dev/sd[bc]1
2.停止阵列
       #mdadm –S /dev/md0
3.显示阵列详细信息
       #mdadm –D /dev/md0
Linux实践工程师学习笔记八:Lvm逻辑卷管理器

PV (physical volume)物理卷
VG (Volume Group)卷组
LV (Logical Volume)逻辑卷
1.fdisk /dev/sdb
       分区sdb1,sdb2,sdb3
       分区类型8e(Linux LVM)
       如果系统在使用sdb,需要重启,以便系统重新读取sdb的分区表信息
2.#pvcreate /dev/sdb[1-3]                  初始化物理卷
3.#vgscan                                  扫描物理卷,创建卷组数据库,第一次创建lvm必须运行此命令
4.#vgcreate vg0 /dev/sdb1 /dev/sdb2        用sdb1,sdb2创建卷组vg0
  #vgdisplay vg0                           查看卷组vg0的信息
5.#lvcreate –n data –L 10M vg0           从vg0中创建一个新的名为data,大小10M的逻辑卷
6.#mkfs.ext3 /dev/vg0/data                 格式化
7.#mount /dev/vg0/data /mnt
  #lvdisplay /dev/vg0/data                 查看逻辑卷data的分区情况
  #lvcreate –n test –l 5 vg0             创建逻辑卷用-l指定块数,默认块大小4MB,即分配逻辑卷20MB大小,这个默认的物理扩展块的大小可以通过命令vgdispaly vg0查看PE SIZE的值而知道。
创建完逻辑卷一定要mkfs.ext3格式化才能使用
  #lvscan                                  扫描逻辑卷,看它们的活动情况
#umount /mnt
#lvextend –L +20M /dev/vg0/data           扩大逻辑卷20M,要先umount分区,再扩大
#e2fsck –f /dev/vg0/data                  强行检查data逻辑卷
#resize2fs /dev/vg0/data                   重新定义分区大小
以上三步要按顺序进行,用以下一条命令可以达到上面三条命令相同的效果:
#e2fsadm –L +20M /dev/vg0/data
#pvscan                                    查看系统目前的物理卷情况
#vgextend vg0 /dev/sdb3                    扩大卷组vg0,将分区sdb3加入卷组
#pvmove /dev/sdb1                          移除物理卷
#vgreduce vg0 /dev/sdb1                    从卷组中删除sdb1
pvmove将数据移走,但sdb1还在vg0内,还是属于卷组分区,vgreduce将sdb1从vg0中删除
创建卷组时,默认的PE大小4MB,允许的LV最大256G
#vgcreate –s 8M vg1 /dev/sdb1
-s    指定PE块大小
通过改变PE块大小,从而改变卷组允许支持的逻辑卷最大容量
技巧:
#clear      清屏
#df –lh    显示系统现在的分区挂载情况
建立快照(备份数据)
#lvcreate –s –L 52M –n snap /dev/vg0/data
-s    表示快照
-L    快照大小要大于或等于被创建的逻辑卷data
-n    快照名称
快照不用格式化即可使用
删除逻辑卷步骤
1.umount所有LV
2.lvremove /dev/vg0/data      (通过lvscan查看)如有快照,先移除快照再移除逻辑卷。
3.#vgchange -an /dev/vg0      休眠vg以便删除,vgchange -ay /dev/vg0此命令可以激活vg。
4.#vgremove vg0
使用过程中,如有错误,可查看系统日志
#tail /var/log/message
如果要使根分区使用LVM设备,需先创建好LVM设备,再用lvmcreate-initrd命令在boot分区创建支持lvm功能的虚拟磁盘镜像文件,最后修改grub.conf加载此镜像文件即可。