Linux运维笔记--第二部
第2部-重要目录结构详解
1.回顾Linux目录结构知识
/dev/ 设备目录
/etc/ 系统配置及服务配置文件,启动命令的目录
/proc 显示内核及进程信息的虚拟文件系统
/tmp 临时文件目录,公共厕所,客厅
/home 普通用户家目录,大臣的家
/root 超级管理员的家目录,皇宫
/var 变化的目录,一般是日志文件,cache的目录
/usr 用户程序,及数据、帮助文件、二进制命令等的目录
/bin和/sbin和/usr/sbin 用户命令的目录
2.重要基础命令回顾
省略……
3.Linux网卡重要文件详细说明及配置实战
必须要掌握的Linux目录路径知识
/etc/sysconfig/network-scripts/ifcfg-eth0 配置网络地址及GW等
/etc/init.d/network restart 重启网卡生效(影响所有网卡)
ifdown eth0&&ifup eth0 只针对eth0网卡
通过setupà”network configuration” 修改网卡配置文件就是在改这个文件
4. Linux服务器客户端dns重要配置文件及实战详解
/etc/resolv.conf 设置Linux本地的客户端DNS的配置文件,可以实现域名和IP的互相解析(网卡配置优先此配置文件)
Setupà“network configuration”à“DNS configuration”==/etc/resolv.conf配置
上述设置实际上是修改/etc/resolv.conf这个文件
负责域名和IP互相解析的服务就是DNS(domain name system)
不要在网卡配置文件里配置DNS,而是在/etc/resolv.conf里配。
小结:
- 客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)
- 客户端DNS也可以在/etc/resolv.conf里设置
- 网卡里的设置DNS优先于/etc/resolv.conf
建议:工作环境中在网卡配置文件中进行设置
5. Linux服务器主机名解析重要文件
# hostname /etc/hosts 查看主机名
# vi /etc/hosts 配置主机文件名
#tail -l /etc/hosts 查看IP地址和主机名
在互联网中可通过访问主机名或域名去访问IP,在hosts文件中配置号IP对应的主机名即可。
例:可把任一个IP(192.168.100.11)与www.baidu.com解析在一起,访问百度则去了IP对应的网站。
总结:/etc/hosts : 局域网、主机名和IP解析,相当于局域网的DNS工具。
6. host文件的企业应用及修改主机名文件详解 (***)
⑴ host文件在企业里的作用
a. 开发、产品、测试等人员,用于通过正式的域名测试产品。
b.服务器之间的调用可以用域名(内部的DNS),方便迁移。
⑵ /etc/sysconfig/network 可修改机器名及网卡启动,网关等配置
a. vi /etc/sysconfig/network network也可配置网管,是主机名的配置文件,更改后永久生效。
b. hostname 主机名 同时修改在运行中的服务器,用此命令更改后,当前生效。
c. cat /etc/sysconfig/network 查看network文件内容。
7. fstab文件字段详解-原理精讲-实战反刍原理知识 (*****)
#df -h 磁盘挂载分区信息
fstab作用: 设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区。
man fstab 查看fstab文件帮助信息。
例:
要被挂载的设备(磁盘分区) | 挂载点(要挂载到哪个目录) | 文件类型 | 挂载选项(只读、可写) | 是否备份(0不备份;1备份) | 文件系统有问题,是否检查(0不检查;1检查) |
tmpfs | /dev/shm | tmpfs | defaults | 0 | 0 |
devpts | /dev/pts | devpts | gid=5,mode=620 | 0 | 0 |
sysfs | /sys | sysfs | defaults | 0 | 0 |
proc | /proc | proc | defaults | 0 | 0 |
例:
# mount -t ext4 -o loop,noatime,noexec /dev/sdb/ /mnt
# mount -t ext4 -o noexec /dev/sda /mnt 手动挂载
先格式化:mkfs. ext4 /dev/sdb/
查看挂载分区: df -h
卸载挂载分区:umount /mnt
/dev/sdb /mnt ext4 loop,noatime,noexec 0 0
测试手动挂载:
1. 创建了一个虚拟的块设备。
dd if=/dev/zero of=/dev/sdb/ bs=4906 count=100
2. 格式化
mkfs. ext4 /dev/sdb
3. 挂载
mount -t ext4 -o loop,noatime,noexec /dev/sdb/ /mnt
8. 实践fstab挂载磁盘机开机自动挂载实践
fsck -A磁盘检查(不要检查好磁盘,可能坏掉),卸载状态检查。
9. fstab 文件损坏或者配错无法启动系统故障解决
第一列挂载的设备,可以是设备或UUID,或磁盘标签。
fstab出问题修复:
1. 开机提示,输入密码,修复。
2. 救援模式:rescure rescue
如果/etc/fstab 为只读状态,用mount -o rw,remount / 修改后再编写
10. rc.local 文件详解及与fstab区别详解
让一个程序开机启动
1. chkconfig (/etc.int.d/sshd)
2. 把程序放入 /etc/rc.local (如果没有特别要求,选择rc.local启动)
mount挂载和fstab的区别:
NFS网络文件系统挂载时,网卡还没起,就已经加载fstab了,网络文件系统只能用rc.local 启动,不适合fstab .
11. inittab重要文件讲解及Linux开机启动过程介绍
/etc/inittab作用:设定系统启动时init进程把系统设置成什么样的runlevel运行级别及加载相关级别对应启动文件设置。
cat /etc/inittab 查看运行级别
12. 其他重要目录知识详解及实战演示作用
/etc/init.d (yum/rpm安装的软件服务都在该目录下)
/etv/profile (定义变量,包括系统的和自定义的)
/etc/profile.d (该目录放程序和脚本,重启后便执行)
/etc/motd (该目录存放启动执行的字符串)
13. etc目录下的重要文件及目录详解
cat /etc/redhat-release 查看Linux版本号
/etc/group 设定用户的组名与相关信息
/etc/passwd 账号信息文件
/etc/shadow 密码信息文件
/etc/sudoers 可以执行使用sudo命令的配置文件
/etc/securetty 设定哪些终端可以让root登陆
/etc/login.defs 所有用户登陆时的缺省配置
/etc/modprobe.conf 内核模块额外参数设定
* /etc/syslog.conf 日志设置文件 限Centos 5.x
* /etc/rsyslog.conf 日志设置文件 限Centos 6.x
* /usr/local 这个目录一般是用来存放用户自编译安装软件的存储目录。通过源码包安装的软件,如果没有特别指定安装目录,便安装在这个目录中。
相当于windows中c:\program files文件夹。
/usr/src 内核源码存放目录,比如下面有内核源码目录,比如:Linux-2.xxx.xx目录等。
1. rpm -ivh 包名.rpm
2. yum install 包名 (yum update 包名 更新软件包)
14. var目录下重要文件及目录详解
/var 日志文件
/var/log 各种系统日志存放地
* /var/log/messages 系统信息默认日志文件,非常重要。按周自动轮循。
/var/log/secure 安全日志,SSH连接日志
/var/spool/cron/root 定时任务crond配置文件。
/pro 下的重要路径知识
* /pro 虚拟目录,是内存的映射,内核和进程的虚拟文件系统的信息
* /pro/version 内核版本
* /pro/sys/kernel 系统内核功能
* /pro/cpuinfo 关于处理器的信息。如类型、厂家、型号和性能等。
* /pro/meminfo 系统内存信息,free -m
/proc/devices 当前运行内核所配置的所有设备清单
/proc/dma 当前正在使用的DMA通道
* /proc/filesystems 当前运行内核所配置的文件系统
/pro/interrupts 正在使用的中断,和曾经有多少个中断。
/proc/ioports 当前正在使用的I/O端口
* /pro/loadavg 系统负载平均值信息
** 有关目录结构的总结: http://yangrong.blog.51cto.com/6945369/1288072
15. 一大波命令超细讲解前运维思想
1. 学会总结是学好运维的重要前提。
2. 通过案例或例子来总结一个技术点或者命令。
3. 画一张逻辑图,形象的卡通记忆这个知识技术点。
4. 通过管道过滤数据时,最好先输出结果,然后回退再使用管道看看结果过滤。
学习博客资源:
1. 亿图(专业原理图)基本技巧分享:http://v.youku.com/v.show/id_XOTEZOTKZMjMz.html
2. 2015 年学习方法分享:(密码:oldboy) http://v.youku.com/v_show/id_XOTEwNTYyMjQw.html
3. 学会使用搜索引擎查找内容: http://www.tudou.com/programs/view/clnRk05L5hk/
16. ls及正则表达式深入实战案例讲解
考题: 如何过滤出已知当前目录下 raymond 中的所有一级目录(提示:不包含raymond目录下面目录子目录及隐藏目录,即只能是一级目录)
答案:a. ls -l | grep "^d" (^表示以xxx开头,^raymond,以raymond开头)
b. ls -lf | grep /
c. ls -lf | grep "1$" (1$以"1"结尾的)
ls -lF (F给不同的文件类型加标识号,例*,/,@,=)
17. ls-grep-find组合命令解决企业问题实战
以16节考题为例的 tfind方法:
1. find / -maxdepth | -type d 2. find /raymond -maxdepth 1 -type d ! -name "raymond"
18. tree命令重要实战及超级重要运维思想讲解
以16节考题为例的 tfind方法: tree -L 1 -d
运维思想:当一个命令的输出,含有我们需要的内容的时候,我们要想到这个命令可能会有对应的参数直接显示,我们需要的内容。
awk,sed的过滤
1. ls -lF | awk '/^d/'
2. ls -lF | sed -n '/^d/p'
19. cd命令案例及重要字符知识实践
(cd - 切换到更改前的上一目录)(cd . 当前目录 )(cd .. 上级目录)(cd ~ 返回家目录)
(ls -p 给目录加斜线;-r reverse反转排序;-他按修改时间排序) (ls,grep) --color = auto 给输出的不同类型文件加不同颜色。
20. find命令超级重要企业级案例应用详解
企业面试题:已知apache服务的访问日志按天记录在服务器本地目录/opt/logs下,由于磁盘空间现在要求只能保留最近7天。访问日志!请问如何解决?请给出解决办法或配置
或处理。 提示:可以从apache服务配置上着手,也可以从生成出来的日志上着手。
find /oldboy/test -type f -name "access *.log" -mtime +7 | xargs rm -f (-exec rm -f { } \ ;)
find -ctime 按文件修改时间查找 -atime 按文件访问时间查找
21. tail 命令的企业级最常见重要应用讲解
tail -f /var/log/message 跟踪一个文件结尾的变化
tailf /var/log/message
tail -F /var/log/message
22. 打印行号的8种命令方法头脑风暴及实践
例:打印配置文件nginx.conf内容的行号及内容,该如何做?
1. cat -n oldboy.txt
2. nl oldboy.txt
3. grep -n "." nginx.conf grep -n “abc” oldboy.txt 把匹配abc字符串的行号打印出来。
4. less -N nginx.conf
5. awk '{print NR, $0}' message NR表示行号,$0表示整行内容
6. sed '=' /etc/rsyslog.conf
23. chkconfig 命令核心案例及核心原理
反复看视频
24. chkconfig 命令学生理解误区
chkconfig 管理脚本的要求
1. 执行/etc/init.d/oldboy restart 格式正常服务
2. 脚本里开头增加如下:
#chkconfig: 35 56 24
#description:oldboy linux test
特别注意:
/etc/init.d/oldboy start 让程序当前运行
chkconfig是管理是否开机自启动
两者没有什么关系 (反复看视频)
25. 运行级别-中文乱码-Linux优化方案汇总
Linux系统运行级别一般为0-6,下面为每个级别的含义:
0 :关机模式
1 :单用户模式(绿色)
2 : 无NFS的多用户模式(NFS网络文件系统)
3 :文本模式(完整的多用户模式)
4 : 未使用的
5 : 图形模式
6 : 重启模式
提示:绿色为重要的需要有限记住的。查看当前运行级别的命令为:
#runlevel
中文乱码解决: # ./etc/sysconfig/i/8n #echo $LANG 显示的字符集和secureCRT软件设置要一致即可。
如何优化Linux系统?共13条。 博客优化:http://oldboy.blog.51cto.com/2561410/988726
26. tar命令核心应用案例及多重要参数详解
案例:/etc/目录为Linux系统的默认的配置文件及服务启动命令的目录
a. 请用tar打包/etc整个目录(打包及压缩)
b. 请用tar打包/etc整个目录(打包及压缩。但需要排除/etc/services文件)
c. 请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)
a. 解答:# tar zcvf etc.tar.gz /etc
打包总结:尽量切换到打包目录的上级目录,然后用相对路径打包。 tar zcvf [路径随意] / 匡 [相对路径] 一堆苹果
b. # tar zcvf etc.tar.gz --exclude = /etc/services /etc
c. # tar xf a.tar.gz -C /tmp/ (解压到指定目录 -C) (不加-C,默认解压到当前目录)
27. tar命令打包格式及组合find应用原理及误区详解
# tar jcvf test.tar.bz ./test (bz打包命令)
#tar jxvf test.tar.bz
还有 gzip/unzip zip
案例:打包oldboy目录下所有文件
1. # find /oldboy/ -type f | xargs tar zcvf oldboy.tar.gz
2. # tar zcvf /root/oldboy.tar.gz ' find /oldboy -type f '
28. cut命令及参数企业级案例讲解及awk对比实战
案例:# echo "I am oldboy myqq is 4900048">>oldboy.txt
# cat oldboy.txt
显示: I am oldboy myqq is 49000448 取出字符串oldboy和4900048
解答1:# awk '{print $3 " " $6}' oldboy.txt (-f 取第几列)
解答2:# cut -d " " -f 3,6 oldboy.txt (-d 指定分隔符)
解答3:# cut -c 6-11,20- oldboy (-c 从字符排序位数截取字符串)
29. awk 多分隔符功能及wc命令案例及企业级应用场景
例:I am oldboy,myqq is 49000448 取字符串oldboy,4900048
#awk -F "[, ]" '{print $3 " " $6}' oldboy.txt
显示:oldboy 49000448
awk博客:深入浅出三剑客之awk,sed必杀技一例 (老男孩博客搜索)
awk (http://oldboy.bolg.51cto.com/256141/950730)
sed (http://oldboy.blog.51cto.com/2561410/949365)
例:如何查看/etc/services文件有多少行?
解答:a. wc -l /etc/services 查看文件行数
b. 所有查行号的都可以类似cat -n file | tail -1
c. # awk '{print NR $0}' /etc/services/tail -1
d. # grep -n "." /etc/services/tail -1
e. # sed -n '$=' /etc/services
wc -lcmL a.txt ( b:行数;c:字符数 m:字符数 L:?)
wc 打印行数,字节,字符数等。重要参数-l (企业案例用的多)
例:过滤出/etc/services文件包含3306或1521两数的行的内容
解答:1. # grep -E "3306|1521" /etc/services
2. # egrep --color=auto "3306|1521" /etc/services