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. 跟我一起学Go系列:从写测试用例开始仗剑走天涯

    从入门到深入 Go 我们已经走了很长的路,当你想启动多个测试类的时候你是不是想启动多个 main 方法,但是 Go 限制了在同一个 package 下只能有一个 main,所以这条路你是走不通的.那我 ...

  2. pwnable.tw 3x17

    3x17 文章主要是参考了https://xuanxuanblingbling.github.io/ctf/pwn/2019/09/06/317/ 首先我们检查一下开启的保护 运行一下,先让输入add ...

  3. Chrome/Chromium的实验性功能+扩展推荐,让你的Chrome/Chromium起飞!

    1 实验性功能 Chrome/Chromium内置了一些很酷的实验性功能,打开 chrome://flags 即可访问.打开这些实验性功能后,浏览器的使用体验会更好,这里Chrome的版本为80.0. ...

  4. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  5. .Net Core 集成 Kafka

    最近维护的一个系统并发有点高,所以想引入一个消息队列来进行削峰.考察了一些产品,最终决定使用kafka来当做消息队列.以下是关于kafka的一些知识的整理笔记. kafka kafka 是分布式流式平 ...

  6. 【MQ中间件】RabbitMQ -- RabbitMQ死信队列及内存监控(4)

    1.RabbitMQ TTL及死信队列 1.1.TTL概述 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取:过了之后消息将自动被删除.RabbitMQ可以对消息和队列设 ...

  7. 基于MVC框架的JavaWeb网站开发demo项目(JSP+Servlet+JavaBean)

    1.环境配置 Windows10+Eclipse2020+jdk8+Tomcat9+MySQL8+Navicat10 2.需求分析 ①用户登录注册注销(查找.增加) ②显示用户列表(查找) ③显示用户 ...

  8. 从零开始使用git将本地项目上传到GitHub

    直接进入主题 1. 注册GitHub(官网:https://github.com/),打开官网,右上角点击sign up注册按钮,进入注册界面,根据提示填写信息注册. ​

  9. WordPress 函数do_action()详解和应用举例

      do_action()函数: 我们经常能看到在一些WordPress函数中调用了do_action()函数,例如get_header(), get_footer()等调用模板的函数中经常调用do_ ...

  10. 路由器逆向分析------binwalk工具的详细使用说明

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/66971242 一.binwalk工具的基本用法介绍 1.获取帮助信息 $ binw ...