Linux实践工程师学习笔记
zjh815153665
|
1#
zjh815153665 发表于 2008-06-30 22:03
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加载此镜像文件即可。 |