0.脚本一键完成下面所有操作
1.准备2台centos7系统的服务器,远程互相免密登录,以下所有题目过程中开启防火墙
2.给1号机和2号机使用光盘搭建本地yum源(永久生效)
3.给服务器1添加2块硬盘,1块1GB,1块2GB,使用这2块硬盘创建vg,包含pe100mb/块
4.使用上题vg创建2个1.2GB的lv,以xfs格式分别挂载到1号机/目录下的lvm1 lvm2上(永久生效)
5.将lvm2以nfs共享给2号机,挂载到2号机 /nfs 上(永久生效)
6.设置定时任务,每5分钟将/目录下所有文件名称写入到以"日期时间"命名的文件(时间精确到分钟),并保存到/lvm1中
7.在2号记上以/nfs为目录搭建ftp,用户名是 userftp2 密码 123 的非交互用户(1号机可以使用该用户登录)
8.搭建一个httpd网站,工作目录是ftp目录


  1 #!/bin/bash
2 #1.准备2台centos7系统的服务器,远程互相免密登录,以下所有题目过程中开启防火墙
3 #2.给1号机和2号机使用光盘搭建本地yum源(永久生效)
4 IP1=192.168.11.135
5 IP2=192.168.11.136
6 echo "$IP1 test1
7 $IP2 test2" >> /etc/hosts
8 #检查环境
9 setenforce 0
10 sed -i 's/=Enforcing/=Disabled/g' /etc/selinux/config
11 systemctl enable firewalld
12 systemctl restart firewalld
13 #配置yum源
14 rm -rf /etc/yum.repos.d/*.repo
15 echo "[base]
16 name=base
17 baseurl=http://172.16.105.251/base
18 enabled=1
19 gpgcheck=0
20 [adv]
21 name=adv
22 baseurl=http://172.16.105.251/adv
23 enabled=1
24 gpgcheck=0" > /etc/yum.repos.d/local.repo
25 yum clean all
26 #下载秘钥(sshpassssh 登陆不能在命令行中指定密码,sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。)
27 #-f指定的生成文件 -P输入密码
28 yum -y install sshpass
29 ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''
30 sed -i 35c"StrictHostKeyChecking no" /etc/ssh/ssh_config
31 cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
32 sshpass -p 0304 scp -r /root/.ssh test2:/root/
33 #远程连接2号机
34 ssh $IP2 "echo '$IP1 test1
35 $IP2 test2' >> /etc/hosts"
36 ssh test2 "setenforce 0 && sed -i 's/=Enforcing/=Disabled/g' /etc/selinux/config && systemctl enable firewalld && systemctl restart firewalld "
37 ssh test2 "rm -rf /etc/yum.repos.d/*.repo"
38 scp /etc/yum.repos.d/*.repo test2:/etc/yum.repos.d/
39 ssh test2 "yum clean all && sed -i 35c'StrictHostKeyChecking no' /etc/ssh/ssh_config"
40 #3.给服务器1添加2块硬盘,1块1GB,1块2GB,使用这2块硬盘创建vg,包含pe100mb/块
41 echo "- - -" > /sys/class/scsi_host/host0/scan
42 echo "- - -" > /sys/class/scsi_host/host1/scan
43 echo "- - -" > /sys/class/scsi_host/host2/scan
44 fdisk /dev/sdb <<EOF
45 n
46 p
47
48
49
50 t
51 8e
52 w
53 EOF
54 fdisk /dev/sdc <<EOF
55 n
56 p
57
58
59
60 t
61 8e
62 w
63 EOF
64 pvcreate /dev/sd{b,c}1
65 vgcreate vg1 -s 100 /dev/sd{b,c}1
66 #4.使用上题vg创建2个1.2GB的lv,以xfs格式分别挂载到1号机/目录下的lvm1 lvm2上(永久生效)
67 lvcreate -l 12 -n lv1 /dev/vg1
68 lvcreate -l 12 -n lv2 /dev/vg1
69 mkdir /lvm1 /lvm2
70 mkfs.xfs /dev/vg1/lv1
71 mkfs -t xfs /dev/vg1/lv2
72 echo "/dev/vg1/lv1 /lvm1 xfs defaults 0 0 " >> /etc/fstab
73 echo "/dev/vg1/lv2 /lvm2 xfs defaults 0 0 " >> /etc/fstab
74 mount -a
75 #5.将lvm2以nfs共享给2号机,挂载到2号机 /nfs 上(永久生效)
76 yum -y install nfs-*
77 echo "/lvm2 $IP2/32(rw)" > /etc/exports
78 systemctl enable nfs
79 systemctl restart nfs
80 systemctl enable rpcbind
81 systemctl start rpcbind
82 firewall-cmd --add-service=nfs
83 firewall-cmd --add-service=nfs --permanent
84 ssh test2 "yum -y install nfs-*"
85 ssh test2 "systemctl enable rpcbind && systemctl start rpcbind && systemctl enable nfs && systemctl start nfs"
86 ssh test2 "mkdir /nfs"
87 ssh test2 "echo 'test1:/lvm2 /nfs nfs defaults 0 0 ' >> /etc/fstab && mount -a"
88 #6.设置定时任务,每5分钟将/目录下所有文件名称写入到以"日期时间"命名的文件(时间精确到分钟),并保存到/lvm1中
89 echo "*/5 * * * * ls / > /lvm1/\`date '+%m-%d-%H-%M'\`" > /var/spool/cron/root
90 #7.在2号记上以/nfs为目录搭建ftp,用户名是 userftp2 密码 123 的非交互用户(1号机可以使用该用户登录)
91 ssh test2 "yum -y install vsftpd && sed -i '12s/YES/NO/g' /etc/vsftpd/vsftpd.conf "
92 ssh test2 "systemctl enable vsftpd && systemctl restart vsftpd"
93 ssh test2 "firewall-cmd --add-service=ftp && firewall-cmd --add-service=ftp --permanent"
94 ssh test2 "useradd -d /nfs -s /sbin/nologin userftp2 && echo '123' |passwd --stdin userftp2"
95 #8.搭建一个httpd网站,工作目录是ftp目录
96 yum -y install httpd
97 sed -i '119s/var\/www\/html/lvm2/g' /etc/httpd/conf/httpd.conf
98 sed -i '131s/var\/www\/html/lvm2/g' /etc/httpd/conf/httpd.conf
99 systemctl enable httpd
100 systemctl restart httpd
101 firewall-cmd --add-port=80/tcp --permanent
102 firewall-cmd --reload

shell基础之综合练习的更多相关文章

  1. Shell基础应用

                                                                  Shell基础应用 案例1:Shell基础应用 案例2:简单Shell脚本的 ...

  2. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  3. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  4. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  5. shell基础(转)

    shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...

  6. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  7. 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码

    [CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院  欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...

  8. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  9. Shell 基础教程

    一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html

随机推荐

  1. DDD实战让中台和微服务的落地如虎添翼

    微服务到底怎么拆分和设计才算合理,拆多小才叫微服务?有没有好的方法来指导微服务和中台的设计呢? 深入DDD的核心知识体系与设计思想,带你掌握一套完整而系统的基于DDD的微服务拆分与设计方法,助力落地边 ...

  2. lms微服务框架主机介绍

    目录 概念 .net的通用主机 .net的web主机 lms的业务主机类型 用于托管业务应用的普通主机 1. 创建一个应用台程序 2. 安装Silky.Lms.NormHost包 3. 注册LMS服务 ...

  3. (数据科学学习手札117)Python+Dash快速web应用开发——交互表格篇(下)

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...

  4. MQ 入门实践

    MQ Message Queue,消息队列,FIFO 结构. 例如电商平台,在用户支付订单后执行对应的操作: 优点: 异步 削峰 解耦 缺点 增加系统复杂性 数据一致性 可用性 JMS Java Me ...

  5. 一致性哈希做负载均衡,基于dubbo的简化版本,超级简单容易理解!!!

    一致性哈希算法原理以及做分布式存储.一定先看:一致性哈希算法 dubbo提供了四种负载均衡实现:权重随机算法,最少活跃调用数算法,一致性哈希算法,加权轮询算法. 本文基于开源项目:guide-rpc- ...

  6. ingress controller 和ingress使用实例

    ingress controller安装 k8s集群版本:1.15+ 官方文档: https://kubernetes.github.io/ingress-nginx/ 创建基础配置 kubectl ...

  7. hdu4814 模拟(黄金分割进制转换)

    题意:       给你一个十进制数,让你把他转化成Q进制数,Q是黄金分割比 = (1+√5)/2. 思路:        首先要明确的就是虽然q是实数,但是依然可以转换成q进制数,因为任何数num, ...

  8. 手动脱ORiEN壳实战

    作者:Fly2015 ORiEN这种壳之前没有接触,到底是压缩壳还是加密壳也不知道,只能试一试喽.需要脱壳的程序是吾爱破解脱壳练习第7期的题目. 首先对加壳程序进行查壳,这一步也是程序脱壳的必要的一步 ...

  9. C++处理char*,char[],string三种类型间的转换

    前言 在C和C++中,有一个相当重要的部分,就是字符串的编程描述.在学C的时候,很多人习惯了char[],char*表示法,直到遇见了C++后,出现了第三者:string.这时候,很多初学者就会在这三 ...

  10. Node-RESTful

    //获取用户列表------------------------------------------------- var express = require('express'); var app ...