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
随机推荐
- create-react-app 核心思路分析
原文链接:http://axuebin.com/articles/fe-solution/cli/cra.html,转载请联系 Create React App is an officially su ...
- 关于搭建FTP服务器
首先我们创建一个用户账户用于登录FTP进行操作.右键点击桌面的我的点击选择管理选项,进入管理界面打开本地用户和组选项,我们可以看到列表中的用户选项 2 然后右键用户选项,在下拉菜单中选择新用户,开始建 ...
- Java JFR 民间指南 - 事件详解 - jdk.ObjectAllocationInNewTLAB
重新申请 TLAB 分配对象事件:jdk.ObjectAllocationInNewTLAB 引入版本:Java 11 相关 ISSUES: JFR: RecordingStream leaks me ...
- VsCode调试vue项目
VsCode调试vue项目 VsCode如何调试vue项目,VsCode需要安装插件以及配置launch.json文件. 找到"扩展"或者按快捷键"Ctrl+Shift+ ...
- 【CompletableFuture】CompletableFuture测试runAsync()方法调用
问题 CompletableFuture.runAsync() 返回 CompletableFuture<Void>对象,调用CompletableFuture.allOf(f1,f2). ...
- hdu1572 水搜索
题意: 中文的不解释; 思路: 其实就是一个水的搜索,直接搜索不会超时,还有别跑最短路了,题目没要求跑最短路,别读错题,刚开始自己嘚嗖的跑了一边最短路 wa了 ,正好最近看了STL ...
- LA3971组装电脑
题意: 你有b块钱,想要组装一台电脑,给你提供一些零件,每种零件提供一个或几个,组装电脑的前提是每种零件只能也必须选择一个,每种零件都有自己的种类,名字,价格,还有品质,要求是在能配成电脑 ...
- 6.PHP与JavaScript交互
PHP与JS交互 JS年闰年判断(body里直接引用JS) <form name="form1" method="post" action="& ...
- Linux提权—脏牛漏洞(CVE-2016-5195)
目录 脏牛漏洞 exp1复现: exp2复现: 脏牛漏洞 脏牛漏洞,又叫Dirty COW,存在Linux内核中已经有长达9年的时间,在2007年发布的Linux内核版本中就已经存在此漏洞.Linux ...
- 一种Maven项目启动时不编译java文件的解决方案
问题 前提介绍 : 环境版本 : JDK -version : 1.8.0-251 Tomcat -version : 8.5.5 Maven -version : 3.6.3 项目情况描述 使用ID ...