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
-i
-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加载此镜像文件即可。