shell基础之综合练习
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基础之综合练习的更多相关文章
- Shell基础应用
Shell基础应用 案例1:Shell基础应用 案例2:简单Shell脚本的 ...
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- shell基础(转)
shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码
[CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院 欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell 基础教程
一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html
随机推荐
- Unity2D项目-平台、解谜、战斗! 0.1 序言:团队、项目提出、初步设计、剧情大纲
各位看官老爷们,这里是RuaiRuai工作室(以下简称RR社),一个做单机游戏的兴趣作坊. 本文跟大家聊一下社团内第一个游戏项目.算是从萌新项目组长的角度,从第一个里程碑的结点处,往前看总结一下项目之 ...
- 它来了,它来了,HarmonyOS应用开发在线体验来了
接下来是我们的两分钟科普,一分钟玩转HarmonyOS应用开发在线体验,一分钟简单了解"一次开发.多设备部署"的原理.萌新的开发者也能第一时间掌握,往下看吧~ 一分钟玩转Harmo ...
- 神奇的魔方阵--(MagicSquare)(2)
在上一篇博客中,我们讨论了阶数为奇数,以及阶数为(4K)的魔方阵的排列规则,以及代码实现(详见:https://www.cnblogs.com/1651472192-wz/p/14640903.htm ...
- k8s 创建私有docker仓库 登陆授权令牌的Secret
参考https://kubernetes.io/zh/docs/tasks/configure-pod-container/pull-image-private-registry/ Kubernete ...
- EasyCode Entity 实体类模板 IDEA
自己修改了一份EasyCode的实体类模板,防止日后找不到在这里存一下 修改了如下内容: 取消生成GetSet方法,改用Lombok 修改默认命名规则,改为[表名Entity.java] 取消了实现序 ...
- POJ2536 二分图匹配
题意: 有n只老鼠,m个洞,每个洞最多可以藏一只老鼠,每个老鼠的移动速度都是v,给你他们的当前坐标,和洞的坐标,突然老鹰来了,他们必须在s秒内跑到一个洞藏起来,问你最少有多少只老鼠被抓走了. ...
- Python中的optparse模块的使用
optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数. 实例化一个 OptionParser 对象(可以带参,也可以不带参数),带参的话会把参数变量的内容作为帮助信息输 ...
- <JVM中篇:字节码与类的加载篇>01-Class字节码文件结构
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 【python】Leetcode每日一题-矩阵置零
[python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...
- Day009 面向对象和方法回顾
面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么..... 面象过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些 ...