logo资料库

Linux 运维入门到高级 全套系列.docx

第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
资料共91页,剩余部分请下载后查看
x Linux 运维入门到高级 全套系列 目 录 1. 4 Linux 学习技巧 ......................................................... 21 2. Linux 系统篇 ...................................................................... 22 2.1 Linux 系统管理 .................................................................... 22 2.1. 1 Linux 目录初识 .............................................................. 22 2.1. 2 Linux 常用命令 .............................................................. 24 2.1. 3 Linux 用户权限 .............................................................. 26 2.1. 4 Linux 网络配置 .............................................................. 28 3. Linux 服务篇 ................................................................... 32 3.1 Linux 服务部署 .................................................................... 32 3.1. 1 构建 NTP 时间服务器 .................................................... 32 3.1. 2 构建 DHCP 服务器 ......................................................... 34 3.1. 3 搭建 Samba 服务器 ....................................................... 37 3.1. 4 搭建 NFS 服务器 ............................................................ 42 3.1. 5 搭建 FTP 服务器 ............................................................ 44 3.1. 6 构建 Apache WEB 服务器 .............................................. 49 3.1. 7 构建 MySQL 服务器 ....................................................... 54 3.1. 8 LAMP 架构网站搭建 ...................................................... 59 3.1. 9 Cacti 监控平台搭建 ....................................................... 65 3.1. 10 Nagios 监控平台搭建 .................................................... 70 3.1. 11 Kickstart 自动化安装平台 ............................................. 80 4. Linux 编程篇 ..................................................................... 89 4.1 Linux Shell 编程 ................................. ......... 89 4.1. 1 Shell 编程简介 ............................................................... 89 4.1. 2 Shell 变量设置 ............................................................... 90 4.1. 3 Shell 流程控制语句 ....................................................... 92 4.1. 4 Shell 脚本案例 ............................................................... 99 4.1. 5 Shell 数组编程 ............................................................. 103 5. Linux 深入 篇 .................................................................................. 106 5. 1 构建 Nginx WEB 服务器 .................................................... 106
5.1. 1 Nginx WEB 安装 ........................................................... 107 5.1. 2 Nginx 虚拟主机配置 ................................................... 109 5.1. 3 Nginx 性能优化 ............................................................ 110 5.1. 4 Nginx 参数深入理解 .................................................... 113 5.1. 5 Nginx Rewrite 规则 ...................................................... 115 5. 2 构建 Rsync 同步服务器 ..................................................... 117 5.2. 1 Rsync 服务端配置 ........................................................ 117 5.2. 2 Rsync 基于 SSH 同步 .................................................... 121 5.2. 3 Rsync 实时同步配置 .................................................... 121 5. 3 Tomcat/Resin JAVA 服务器 ................................................. 123 5.3. 1 Tomcat 安装配置 ......................................................... 123 5.3. 2 Tomcat 性能优化 ......................................................... 125 5.3. 3 Resin 安装配置 ............................................................ 127 5.3. 4 Resin 性能优化 ............................................................ 128 5.3. 5 Resin 多实例配置 ........................................................ 129 5. 4 Nginx Tomcat 动静分离 ..................................................... 131 5. 5 LNAMP 高性能架构配置 ................................................... 135 5. 6 LVS+Keepalived 负载均衡 .................................................. 143 5. 7 Squid 缓存服务器配置 ...................................................... 154 5. 8 MySQL 高可用架构 ........................................................... 160 6. Linux 运维职业规划 ....................................................... 170 7. Linux 运维面试总结 ............................................................ 172 8.1. 1 面试技巧总结 .............................................................. 172 8.1. 2 面试题目总结 .............................................................. 173 1. Linux 入门 篇
1. 4 Linux 学习技巧 初学者可以自己安装虚拟机,然后把 linux 常用命令例如 cd、ls、chmod、useradd、vi 等等多练习 几十遍,把自己敲打命令的熟练程度提升上来。 然后根据文档搭建 Linux 下常见的各种服务 (DHCP、 SAMBA、 DNS、Apache、Mysql 等) ,遇到问 题后可以在 google 搜索,搜索的时候多看几篇文章,综合最好的文章来解决问题。能够熟练的搭建服务后, 理解每个服务的完整配置和优化,可以拓展思维。例如 LAMP,我们一般是把所有服务放在一台机器上,如 果分开多台该如何部署呢?等等。平时多积累 shell 编程, 可以在网上查找前辈们写的非常好的 shell,自 己下载下来多练习几遍,从中吸取,不断提高。建立一个自己的学习博客,把平时工作学习中的知识都记录 在里面, 这样也可以供别人来参考同时也能提高自己的编写文档及方案的能力。 通过以上学习能够满足企业的一般应有,需要达到资深级别,还需要深入学习集群架构、负载均衡、自 动化运维、运维开发等知识。 最后还是一句话:多练习才是硬道理!实践出真知! 2. Linux 系统篇 2.1 Linux 系统管理 通过前两章的学习, 我们已经能够独立安装 Linux 系统, 已经掌握 了 Linux 学习的技巧,那接下来,我们将系统的来了解 Linux 系统各 目录、权限及常用命令的使用。 2.1. 1 Linux 目录初识 通过前面的学习,我们已经能够独立安装完一个 linux 系统,那接下来我们来熟悉一下 Linux 系统里面 的各个目录文件夹的大致功能: 主要的目录树的有/、/root、/home、/usr、/bin 等目录。下面是一个 典型的 linux 目录结构如下: (附图表) / 根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件 /dev 存放设备文件 /etc 存放系统配置文件 /home 普通用户的宿主目录,用户数据存放在其主目录中 /lib 存放必要的运行库 /mnt 存放临时的映射文件系统,通常用来挂载使用。 /proc 存放存储进程和系统信息 /root 超级用户的主目录 /sbin 存放系统管理程序 /tmp 存放临时文件 /usr 存放应用程序,命令程序文件、程序库、手册和其它文档。
/var 系统默认日志存放目录 2.1. 2 Linux 常用命令 默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是 root 用户登录,如 果是$表示当前为普通用户。 我们了解 linux 由很多目录文件构成,那我们来学习第一个 Linux 命令: cd 命令, cd /home ;解析:进入/home 目录 cd /root 进入/root 目录 ;cd ../返回上一级目录;cd ./当前目录; (.和..可以理解为相对路径;例如 cd /hom/test ,cd 加完整的路径,可以理解为绝对路径) 接下来继续学习更多的命令: ls ./ 查看当前目录所有的文件和目录。 ls -a 查看所有的文件,包括隐藏文件,以.开头的文件。 pwd 显示当前所在的目录。 mkdir 创建目录,用法 mkdir test ,命令后接目录的名称。 rmdir 删除空目录 rm 删除文件或者目录,用法 rm –rf test.txt (-r 表示递归,-f 表示强制)。 cp 拷贝文件,用法,cp old.txt /tmp/new.txt ,常用来备份;如果拷贝目录需要加 –r 参数。 mv 重命名或者移动文件或者目录,用法, mv old.txt new.txt touch 创建文件,用法,touch test.txt,如果文件存在,则表示修改当前文件时间。 Useradd 创建用户,用法 useradd wugk ,userdel 删除用户。 Groupadd 创建组,用法 groupadd wugk1 ,groupdel 删除组。 find 查找文件或目录,用法 find /home -name “test.txt”,命令格式为: find 后接查找的目录,-name 指定需要查找的文件名称,名称可以使用*表示所有。 find /home -name “*.txt” ;查找/home 目录下,所有以.txt 结尾的文件或者目录。 vi 修改某个文件,vi 有三种模式: 命令行模式、文本输入模式、末行模式。 默认 vi 打开一个文件,首先是命令行模式,然后按 i 进入文本输入模式,可以在文件里写入字符等 等信息。 写完后,按 esc 进入命令模式,然后输入:进入末行模式,例如输入:wq 表示保存退出。 如果想直接退出,不保存,可以执行:q!, q!叹号表示强制退出。 cat 查看文件内容,用法 cat test.txt 可以看到 test.txt 内容 more 查看文件内容, 分页查看, cat 是全部查看, 如果篇幅很多,只能看到最后的篇幅。可以使用 cat 和 more 同时使用,例如: cat
test.txt |more 分页显示 text 内容,|符号是管道符,用于把|前的输出作为后面命令的输入。 echo 回显,用法 echo ok,会显示 ok,输入什么就打印什么。 echo ok > test.txt ;把 ok 字符覆盖 test.txt 内容,>表示追加并覆盖的意思。 >>两个大于符号,表示追加,echo ok >> test.txt,表示向 test.txt 文件追加 OK 字符,不覆盖原文 件里的内容。 初学者常见的命令就如上所示,当然还有很多深入的命令需要学习,后面的课程会讲解。 2.1. 3 Linux 用户权限 在 Linux 操作系统中,root 的权限是最高的,相当于 windows 的 administrator,拥有最高权限,能执行任何命令和操作。在系统中, 通过 UID 来区分用户的权限级别,UID 等于 0,表示此用户具有最高 权限,也就是管理员。其他的用户 UID 依次增加,通过/etc/passwd 用户密码文件可以查看到每个用户的独立的 UID。 每一个文件或者目录的权限,都包含一个用户权限、一个组的权 限、其他人权限,例如下: 标红第一个 root 表示该文件所有者是 root 用户,第二个 root 代 表该文件的所属的组为 root 组,其他用户这里默认不标出。 [root@node1 ~]# ls -l monitor_log.sh -rw-r--r-- 1 root root 91 May 7 20:21 monitor_log.sh [root@node1 ~]# 如果我们想改变某个文件的所有者或者所属的组,可以使用命令 chown chown –R test:test monitor_log.sh 即可。 每个 Linux 文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。 利用 ls -l 命令可以看到某个文件或目录的权限, 它以显示数据的第一个字段为 准。第一个字段由 10 个字符组成,如下: [root@node1 ~]# ls -l monitor_log.sh -rw-r--r-- 1 root root 91 May 7 20:21 monitor_log.sh [root@node1 ~]# 第一位表示文件类型,-表示文件,d 表示目录;后面每三位为一组。 第一组:2-4 位表示文件所有者的权限,即用户 user 权限,简称 u 第二组:5-7 位表示文件所有者所属组成员的权限,group 权限,简称 g 第三组: 8-10 位表示所有者所属组之外的用户的权限, other 权限, 简称 o
从上面这个文件, 我们可以看出, monito_log.sh 文件对应的权限为:root 用户具有读和写的权限, root 组具有读的权限,其他人具有读的权限。 为了能更简单快捷的使用和熟悉权限,rwx 权限可以用数字来表示,分别表示为 r(4) 、w(2) 、x (1) 。 Monitor_log.sh 权限可以表示为:644 如果给某个文件授权,命令为 chmod:chmod 777 monitor_log.sh 2.1. 4 Linux 网络配置 熟悉了常用的命令和 Linux 权限,那接下来如何让所在的 Linux 系 统上网呢?管理 linux 服务器网络有哪些命令呢? Linux 服务器默认网卡配置文件在/etc/sysconfig/network-scripts/下, 命名的名称一般为:ifcfg-eth0 ifcfg-eth1 ,eth0 表示第一块网卡,eth1 表示第二块网卡,依次类推。一般 DELL R720 标配有 4 块千兆网卡。 修 改 网 卡 的 IP , 可 以 使 用 命 令 : vi /etc/sysconfig/network-scripts/ifcfg-eth0 如果是 DHCP 获取的 IP, 默认 配置如下: # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=dhcp HWADDR=00:0c:29:52:c7:4e ONBOOT=yes TYPE=Ethernet 如果是静态配置的 IP,ifcfg-eth0 网卡配置内容如下: # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static HWADDR=00:0c:29:52:c7:4e ONBOOT=yes TYPE=Ethernet IPADDR=192.168.149.128 NETMASK=255.255.255.0 GATEWAY=192.168.149.1 网卡参数详解如下:
DEVICE=eth0 #物理设备名 ONBOOT=yes # [yes|no](重启网卡是否激活设备) BOOTPROTO=static #[none|static|bootp|dhcp](不使用协议|静态分配 |BOOTP 协议|DHCP 协议) TYPE=Ethernet #网卡类型 IPADDR=192.168.149.128 #IP 地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.149.1 #网关地址 网卡配置完毕,重启网卡,命令: /etc/init.d/network restart 即可。 查看 ip 命令: ifconfig 查看当前服务器所有网卡的 IP, 可以单独指定, ifconfig eth0 查看 eth0 的 IP 地址。 网卡配置完毕,如果来配置 DNS,首先要知道 DNS 配置在哪个目录 文件下,vi /etc/resolv.conf 文件: 在该文件里面添加如下两条: nameserver 202.106.0.20 nameserver 8.8.8.8 从上到下, 分别表示主 DNS, 备 DNS。 配置完毕后, 不需要重启网卡,DNS 立即生效。 可以 ping www.baidu.com 看看效果: IP 配置完毕后,我们可以通过远程工具来连接 Linux 服务器,常见的 Linux 远程连接工具有:putty、secureCRT(主流) 、xshell、xmanger 等 工具。 下载安装 secureCRT,打开工具,然后如图配置: 点击左上角 quick connect 快速连接, 弹出界面, 然后输入 IP, 用户名, 端口默认是 22,然后点击下方的 connect 连接,会提示输入密码,输 入即可。 弹出输入密码框: 进入远程界面,与服务器真实登录一样,然后可以执行命令: 通过这几章的学习, 我们已经熟练了 Linux 常用命令的操作, 权限 网络、网络配置、远程连接等知识,那接下来我们还能做什么呢?我 们已经差不多入门了,接下来就是更进一步的服务配置,Linux 系统 到底用来做什么呢?接下来的章节将跟大家一起来学习。
Linux 系统的应用,我们最开始介绍的时候简单介绍过,目前大中 型企业都用它来承载 web 网站、数据库、虚拟化平台等,那接下来 我们将在 Linux 系统安装各种服务和软件来实现 Linux 真正的价值。 3. Linux 服务篇 3.1 Linux 服务部署 3.1. 1 构建 NTP 时间服务器 NTP 服务器是用于局域网服务器时间同步使用的,可以保证局域 网所有的服务器与时间服务器的时间保持一致, 某些应用对时间实时 性要求高的必须统一时间。 互联网的时间服务器也有很多,例如 ntpdate ntp.fudan.edu.cn 复 旦大学的 NTP 免费提供互联网时间同步。 NTP 服务器监听端口为 UDP 的 123,那就需要在本地防火墙开启 运行客户端访问 123 端口,vi /etc/sysconfig/iptables 添加如下规则: -A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT NTP 时间服务器配置: yum install ntp ntpdate -y 即可! 修改 ntp.conf 配置文件 cp /etp/ntp.conf /etc/ntp.conf.bak vi /etc/ntp.conf 只修改如下两行,把#号去掉即可! server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 以守护进程启动 ntpd /etc/init.d/ntpd start 即可 (注意*: ntpd 启动后,客户机要等几分钟再与其进行时间同步,否 则会提示“no server suitable for synchronization found”错误。 ) 配置时间同步客户机 crontab -e 增加一行,在每天的 6 点 10 分与时间同步服务器进行同步 10 06 * * * /usr/sbin/ntpdate ntp-server 的 ip >>/usr/local/logs/crontab/ntpdate.log 备注:如果客户机没有 ntpdate,可以 yum –y install ntp 即可! 以下是 ntp 服务器配置文件内容(局域网 NTP,如果需要跟外网同步,
分享到:
收藏