1. 【项目名称】
实战Linux系统日常管理
【项目说明】
1.安装部署rhel系统,组建RAID磁盘阵列。
2.安装nginx 通过脚本编写 nginx服务服务启动脚本
【项目考核技能点】
1、安装部署rhel系统,网络设置。
2、shell脚本的基本用法
3、 nginx的安装
4、整个方案中要包括:系统的安装,磁盘分区格式化,shell脚本的应用等相关内容。
项目环境可以参考如下:
1.安装两台rhel主机
对应主机名与IP :xuegod63.cn 192.168.1.63
xuegod64.cn 192.168.1.64
2.组建RAID0,RAID1,RAID5,RAID10.磁盘阵列。
3.安装nginx。
4.编辑shell脚本,实现nginx自动启动


实战Linux系统日常管理

#############################################################

1.安装两台rhel主机
对应主机名与IP :xuegod63.cn 192.168.1.63
xuegod64.cn 192.168.1.64

 

第一步:

打开vmware软件,新建两台虚拟机分别为RHEL7_xuegod63、RHEL7_xuegod64。1G内存,4核心,移除打印机,其他均使用默认设置

最后指定光驱挂载rhel7.2镜像,先后开始安装操作系统(也可以安装好一个以后,复制并重命名)。

选择第一项直接安装RHEL7.2操作系统,设置如下:

1、键盘和语言选择:English(US),时区:上海

2、关闭SECURITY POLICY

3、设置软件源

4、设置安装带gui的服务器,并选择安装开发工具,

5、设置磁盘分区为:/boot  500M、swap 2G、/  10G

6、关闭KDump

7、在网络设置中,修改主机名为xuegod63.cn,并开启网卡

开始安装,这时需要设置root密码,和创建一个用户!

安装完成以后,如下图:(然后重启,并进入系统)


第二步:

使用root用户登录系统后,开始部署RHEL7系统实验环境如下:

1、关闭防火墙,并设置开机自动关闭

2、关闭selinux,并设置其开机自动关闭

3、挂载光驱到/mnt,并设置自动开机挂载

在vmware中设置光驱开机自动连接

4、设置yum源

5、使用特定虚拟网络模式,设置虚拟机网络

ip分别为192.168.1.63、192.168.1.64

设置虚拟机网络模式为特定虚拟网络模式

查看本机IP地址网段是否与将要设置的网段冲突

在vmware中,设置本机vmnet1网卡如下图:

并在cmd.exe中查看设置是否生效

在RHEL7系统中,设置如下:

重新启动,再次登录后,检查如下图:

Ok,保存快照即可!

另一台虚拟机依照上面同样如此设置。

###########################################################################################################################################################################

2.组建RAID0,RAID1,RAID5,RAID10.磁盘阵列。

(在xuegod63.cn主机中实现)

为方便起见,只对虚拟机添加一块磁盘,通过分区实现磁盘整理搭建

开机,并保存快照(RAID)

通过xshell远程连接

第一步:组建RAID0磁盘阵列

1、对磁盘进行分区(分两个2G的即可)

[root@xuegod63 ~]# ls /dev/sdb*

/dev/sdb

[root@xuegod63 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x743bcf7f.

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p):

Using default response p

Partition number (1-4, default 1):

First sector (2048-41943039, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G

Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): t

Selected partition 1

Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'

Command (m for help): n

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p):

Using default response p

Partition number (2-4, default 2):

First sector (4196352-41943039, default 4196352):

Using default value 4196352

Last sector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +2G

Partition 2 of type Linux and of size 2 GiB is set

Command (m for help): t

Partition number (1,2, default 2): 2

Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x743bcf7f

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     4196351     2097152   fd  Linux raid autodetect

/dev/sdb2         4196352     8390655     2097152   fd  Linux raid autodetect

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@xuegod63 ~]# ls /dev/sdb*

[root@xuegod63 ~]# mdadm -E /dev/sdb[1-2]

[root@xuegod63 ~]# mdadm -C /dev/md0 -n 2 -l 0 /dev/sdb[1-2]

[root@xuegod63 ~]# mdadm -E /dev/sdb[1-2]

2、组建RAID0磁盘阵列:

3、格式化/dev/md1磁盘

[root@xuegod63 ~]# mkfs.xfs /dev/md0

4、挂载并设置开机自动挂载

[root@xuegod63 ~]# mkdir /raid

[root@xuegod63 ~]# mount /dev/md0 /raid

[root@xuegod63 ~]# df -hT | grep /raid

[root@xuegod63 ~]#

[root@xuegod63 ~]# echo "/dev/md0 /raid xfs defaults 0 0" >>/etc/fstab

[root@xuegod63 ~]# tail -1 /etc/fstab

/dev/md0 /raid xfs defaults 0 0

[root@xuegod63 ~]# umount /raid

[root@xuegod63 ~]# mount -av

6、保存磁盘阵列配置信息

[root@xuegod63 ~]# mdadm -Dvs > /etc/mdadm.conf

[root@xuegod63 ~]# cat !$

5、测试

第二步:组建RAID1磁盘阵列

1、恢复快照,分区格式化如图:(两个5G分区)

2、创建RAID1磁盘阵列

[root@xuegod63 ~]# mdadm -C /dev/md1 -n 2 -l 1 /dev/sdb[1-2]

mdadm: Note: this array has metadata at the start and

    may not be suitable as a boot device.  If you plan to

    store '/boot' on this device please ensure that

    your boot-loader understands md/v1.x metadata, or use

    --metadata=0.90

Continue creating array? yes

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md1 started.

[root@xuegod63 ~]#

3、保存配置信息

[root@xuegod63 ~]# mdadm -Dvs >> /etc/mdadm.conf

4、格式化磁盘分区、并设置自动开机挂载

[root@xuegod63 ~]# mkfs.xfs /dev/md1

[root@xuegod63 ~]# ls /raid

[root@xuegod63 ~]# echo "/dev/md1 /raid xfs defaults 0 0" >>/etc/fstab

[root@xuegod63 ~]# tail -1 !$

[root@xuegod63 ~]# mount -av

5、删除磁盘阵列RAID1

[root@xuegod63 ~]# umount /raid/

[root@xuegod63 ~]# mdadm --stop /dev/md1

[root@xuegod63 ~]# mdadm --remove /dev/md1

[root@xuegod63 ~]# mdadm --misc --zero-superblock /dev/sdb1

[root@xuegod63 ~]# mdadm --misc --zero-superblock /dev/sdb2

[root@xuegod63 ~]# mdadm -E /dev/sdb[1-2]

第三步:组建RAID5磁盘阵列

1、恢复快照,分区格式化如图:(三个5G分区)(没有使用热备盘-x)

2、创建磁盘阵列RAID5

3、保存配置信息

[root@xuegod63 ~]# mdadm -Dvs >/etc/mdadm.conf

4、格式化磁盘分区、并设置自动开机挂载

[root@xuegod63 ~]# mkfs.xfs /dev/md5

[root@xuegod63 ~]# ls /raid/

[root@xuegod63 ~]# echo "/dev/md5 /raid xfs defaults 0 0" >>/etc/fstab

[root@xuegod63 ~]# tail -1 !$

[root@xuegod63 ~]# mount -av

第四步:组建RAID10磁盘阵列

1、恢复快照,分区格式化如图:(六个3G分区)(使用两个热备盘-x)

2、创建两个raid1磁盘阵列

[root@xuegod63 ~]# mdadm -E /dev/sdb[1-7]

[root@xuegod63 ~]# mdadm -C /dev/md11 -n 2 -l 1 -x 1 /dev/sdb[1-3]

[root@xuegod63 ~]# mdadm -D /dev/md11

[root@xuegod63 ~]# mdadm -C /dev/md12 -n 2 -l 1 -x 1 /dev/sdb[5-7]

[root@xuegod63 ~]# mdadm -D /dev/md12

3、使用raid1创建一个raid0磁盘阵列

[root@xuegod63 ~]# mdadm -E /dev/md1*

[root@xuegod63 ~]# mdadm -C /dev/md10 -n 2 -l 0 /dev/md1[1-2]

[root@xuegod63 ~]# mdadm -D /dev/md10

4、保存配置信息

[root@xuegod63 ~]# mdadm -Dvs > /etc/mdadm.conf

5、格式化,并设置开机自动挂载

[root@xuegod63 ~]# mkfs.xfs /dev/md10

[root@xuegod63 ~]# mkdir /raid

[root@xuegod63 ~]# tail -1 !$

[root@xuegod63 ~]# mount -av


###########################################################################################################################################################################

3.安装nginx。

(在xuegod64.cn主机中实现)

开启虚拟机,通过xshell远程连接

1、查看nginx服务是否已安装

2、从nginx官网下载nginx源码包,并通过xftp上传nginx源码包到虚拟机中

3、解压源码包到指定目录

[root@xuegod64 ~]# tar -zxf nginx-1.11.3.tar.gz -C /usr/src/

4、创建nginx用户

5、配置nginx

[root@xuegod64 nginx-1.11.3]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

这是发现报错,是因为少安装了依赖包pcre-devel、zlib-devel

[root@xuegod64 nginx-1.11.3]# rpm -q pcre-devel

[root@xuegod64 nginx-1.11.3]# rpm -q zlib-devel

[root@xuegod64 nginx-1.11.3]# rpm -ivh /mnt/Packages/pcre-devel-8.32-15.el7.x86_64.rpm

[root@xuegod64 nginx-1.11.3]# rpm -ivh /mnt/Packages/zlib-devel-1.2.7-15.el7.x86_64.rpm

安装依赖关系完成后,继续配置,然后使用echo $?查看是否配置成功!

6、编译并安装

[root@xuegod64 nginx-1.11.3]# make -j 4

[root@xuegod64 nginx-1.11.3]# make install

7、优化,并启动nginx服务,查看服务时候安装成功

[root@xuegod64 ~]# cp /usr/local/nginx/sbin/nginx /usr/sbin/nginx

[root@xuegod64 ~]# ls /usr/sbin/nginx

[root@xuegod64 ~]# nginx

[root@xuegod64 ~]# netstat -anlpt | grep nginx

Ok,在自己的主机中查看到如上图情况即表示配置nginx成功了!!!
################################################################

4.编辑shell脚本,实现nginx自动启动

操作如下:

[root@xuegod64 ~]# touch nginx

[root@xuegod64 ~]# chmod +x nginx

[root@xuegod64 ~]# ls -l nginx

[root@xuegod64 ~]# vim nginx

[root@xuegod64 ~]# cp nginx /etc/init.d/nginx

[root@xuegod64 ~]# chkconfig --add nginx

[root@xuegod64 ~]# chkconfig --list nginx

脚本代码如下:

#!/bin/bash

#chkconfig: 2345 80 80

#description: nginx Server Scripts

nginx="/usr/local/nginx/sbin/nginx"

case $1 in

  start)

      netstat -anlpt | grep nginx

      if [ $? -eq 0 ]

         then

            echo "Nginx Server is already started!"

         else

            echo "Nginx Server ready to start!"

            $nginx

            if [ $? -eq 0 ]

               then echo "Nginx Server start success!"

               else echo "Nginx Server start fail!"

            fi

      fi

;;

  stop)

      netstat -anlpt | grep nginx

      if [ $? -eq 0 ]

         then

            echo "Nginx Server ready to stop!"

            $nginx -s stop

            if [ $? -eq 0 ]

               then echo "Nginx Server stop success!"

               else echo "Nginx Server stop fail!"

            fi

         else

            echo "Nginx Server is already stop!"

       fi

;;

  restart)

      $nginx -s reload

      if [ $? -eq 0 ]

         then

            echo "Nginx Server restart success !"

         else

            echo "Nginx Server restart failed!"

      fi

;;

  status)

      netstat -anlpt | grep nginx

      if [ $? -eq 0 ]

         then

            echo "Nginx Server is running!"

         else

            echo "Nginx Server is not running!"

      fi

;;

  *)

      echo "Error , Please enter \'services {start | stop | restart | status } nginx\'"

;;

esac

第一阶段考试:实战Linux系统日常管理的更多相关文章

  1. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  2. centos linux系统日常管理复习 CPU物理数逻辑核数,iftop ,iotop ,sar ,ps,netstat ,一网卡多IP,mii-tool 连接,ethtool速率,一个网卡配置多个IP,mii-tool 连接,ethtool速率 ,crontab备份, 第十八节课

    centos linux系统日常管理复习 物理CPU和每颗CPU的逻辑核数,uptime ,w,vmstat,iftop ,iotop ,sar ,ps,netstat ,一个网卡配置多个IP,mii ...

  3. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  4. centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课

    centos Linux系统日常管理1  cpuinfo cpu核数   命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ...

  5. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  6. linux系统日常管理

    笔者在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了.不过笔者要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的,毕竟系统管理员 ...

  7. Linux 笔记 - 第十三章 Linux 系统日常管理之(三)Linux 系统日志和服务

    博客地址:http://www.moonxy.com 一.前言 日志文件记录了系统每天发生的各种各样的事情,比如监测系统状况.排查问题等.作为系统运维人员可以通过日志来检查错误发生的原因,或者受到攻击 ...

  8. Linux 笔记 - 第十三章 Linux 系统日常管理之(二)Linux 防火墙和任务计划

    博客地址:http://www.moonxy.com 一.前言 Linux 下的的防火墙功能是非常丰富的,作为 Linux 系统工程师有必要了解一下.防火墙一般分为硬件防火墙和软件防火墙.但是,不管是 ...

  9. lesson - 12 Linux系统日常管理1

    监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各 ...

随机推荐

  1. 说说设计模式~门面模式(Facade)

    返回目录 门面模式(Facade)属于结构型模式的一种,它符合面向对象的封装原则,但又不符合开闭原则,呵呵,今天我们主要说它的优点,不谈缺点. 定义 门面模式,是指提供一个统一的接口去访问多个子系统的 ...

  2. 设计视图不能用于 x64 和 ARM 目标平台

    设计视图不能用于 x64 和 ARM 目标平台

  3. 使用Genymotion来运行Android Studio开发的程序

    访问网址:https://www.genymotion.com,注册账户,之后下载,下载时需要注意不要选择(withou virtualbox那个) 之后运行安装, 运行Genymotion运行启动G ...

  4. 面向生产环境的大集群模式安装Hadoop

    一.实验说明 1.本实验将使用DNS而不是hosts文件解析主机名: 2.使用NFS共享密钥文件,而不是逐个手工拷贝添加密钥: 3.复制Hadoop时使用批量拷贝脚本而不是逐台复制. 测试环境: Ho ...

  5. BZOJ2243 (树链剖分+线段树)

    Problem 染色(BZOJ2243) 题目大意 给定一颗树,每个节点上有一种颜色. 要求支持两种操作: 操作1:将a->b上所有点染成一种颜色. 操作2:询问a->b上的颜色段数量. ...

  6. Java中堆和栈的区别(转)

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆.      Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...

  7. EF-CodeFirst-表关系-延迟/贪婪加载

    表关系建立: http://blog.csdn.net/niewq/article/details/17232321 一对多: namespace LckLib.EF.V6.Models { publ ...

  8. C指针决心 ------ 指针的概念和元素

     本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 指针在C语言中的地位,不用多说. 指针的概念 指针是一个特殊的变量,它里面存储 ...

  9. 大约xib连接错误bug正确

    今天code什么时候,发现xib除了加载问题,研究发现的一个问题 在连接的时候, object一定要选择,您连接view,代替 File's Owner 版权声明:本文博客原创文章,博客,未经同意,不 ...

  10. linux下使用异步通知

    阻塞式I/O是一直等待直到设备可以访问,非阻塞式I/O是定期轮询设备是否可以访问. 异步通知则是当设备可以访问时才主动通知应用程序,有点像设备的硬中断. 并不是所有的设备都支持异步通知,应用程序通常假 ...