shell基础之综合练习
Posted renyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/sdb,c1 65 vgcreate vg1 -s 100 /dev/sdb,c1 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 ‘129s/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基础之综合练习的主要内容,如果未能解决你的问题,请参考以下文章