作业一:完成作业未做完的集群架构
作业二:临时配置网络(ip,网关,dns)+永久配置
临时配置:
[root@nfs-server ~]# ifconfig ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.152.134 netmask 255.255.255.0 broadcast 192.168.152.255 inet6 fe80::e33a:cec4:b0d4:c884 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:f7:dc:59 txqueuelen 1000 (Ethernet) RX packets 241828 bytes 275307222 (262.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7200 bytes 1083100 (1.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 327 bytes 33260 (32.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 327 bytes 33260 (32.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@nfs-server ~]# ifconfig ens32 192.168.152.135 [root@nfs-server ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.152.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32 [root@nfs-server ~]# route add default gw 192.168.152.2 [root@nfs-server ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.152.2 0.0.0.0 UG 0 0 0 ens32 192.168.152.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32 [root@nfs-server ~]# cat /etc/resolv.conf # Generated by NetworkManager search localdomain nameserver 192.168.152.2 nameserver 202.106.0.20
永久配置:
[root@nfs-server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 TYPE=Ethernet BOOTPROTO=dhcp IPADDR=192.168.152.134 NETMASK=255.255.255.0 GATEWAY=192.168.152.2 DNS1=192.168.152.2 DNS2=202.106.0.20 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=9eff3909-2614-4df9-80c9-a6a7d9f1be28 DEVICE=ens32 ONBOOT=yes [root@nfs-server ~]# systemctl restart network
作业三:为集群内的机器设定主机名,利用/etc/hosts文件来解析自己的集群中所有的主机名,相应的,集群的配置应该改成使用主机名的方式
# 修改主机名
[root@nfs-server ~]# hostnamectl set-hostname proxy-nfs [root@bogon ~]# hostnamectl set-hostname web01 [root@bogon ~]# hostnamectl set-hostname web02 [root@bogon ~]# hostnamectl set-hostname web03 [root@proxy-nfs ~]# echo "192.168.152.134 proxy-nfs" >> /etc/hosts [root@proxy-nfs ~]# echo "192.168.152.135 web01" >> /etc/hosts [root@proxy-nfs ~]# echo "192.168.152.136 web02" >> /etc/hosts [root@proxy-nfs ~]# echo "192.168.152.137 web03" >> /etc/hosts [root@web01 ~]# echo "192.168.152.134 proxy-nfs" >> /etc/hosts [root@web01 ~]# echo "192.168.152.135 web01" >> /etc/hosts [root@web01 ~]# echo "192.168.152.136 web02" >> /etc/hosts [root@web01 ~]# echo "192.168.152.137 web03" >> /etc/hosts [root@web02 ~]# echo "192.168.152.134 proxy-nfs" >> /etc/hosts [root@web02 ~]# echo "192.168.152.135 web01" >> /etc/hosts [root@web02 ~]# echo "192.168.152.136 web02" >> /etc/hosts [root@web02 ~]# echo "192.168.152.137 web03" >> /etc/hosts [root@web03 ~]# echo "192.168.152.134 proxy-nfs" >> /etc/hosts [root@web03 ~]# echo "192.168.152.135 web01" >> /etc/hosts [root@web03 ~]# echo "192.168.152.136 web02" >> /etc/hosts [root@web03 ~]# echo "192.168.152.137 web03" >> /etc/hosts [root@proxy-nfs ~]# egrep -v "#|^$|^#" /etc/nginx/nginx.conf # 修改配置文件已主机名方式解析 user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { upstream luchuangao { server web01; server web02; server web03; } log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; location / { proxy_pass http://luchuangao; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } } [root@proxy-nfs ~]# /usr/sbin/nginx -t # 检查配置文件是否正确 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@proxy-nfs ~]# systemctl reload nginx # 重新加载配置文件 # 测试: [root@proxy-nfs ~]# curl 192.168.152.134 web01 [root@proxy-nfs ~]# curl 192.168.152.134 web02 [root@proxy-nfs ~]# curl 192.168.152.134 web03
作业四:ssh登录,scp上传、下载,ssh秘钥登录,修改ssh server端的端口为8888然后进行登录和scp测试
SSH登录:
[root@proxy-nfs ~]# scp /etc/hosts web01:/tmp The authenticity of host 'web01 (192.168.152.135)' can't be established. ECDSA key fingerprint is 4c:ee:a3:f1:5c:37:43:32:bd:06:4e:cc:3f:5a:0a:04. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'web01,192.168.152.135' (ECDSA) to the list of known hosts. root@web01's password: hosts 100% 274 0.3KB/s 00:00 [root@proxy-nfs ~]# scp web01:/tmp/hosts . root@web01's password: hosts 100% 274 0.3KB/s 00:00 [root@proxy-nfs ~]# ls -l hosts -rw-r--r-- 1 root root 274 Mar 21 15:05 hosts
秘钥登录:
[root@proxy-nfs ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 29:90:f7:3a:24:0a:e2:f9:22:ec:f4:07:75:7c:10:6b root@proxy-nfs The key's randomart image is: +--[ RSA 2048]----+ | .. | | . .. | | o oE. | | +.+ o | |o o + S | |o..o o o | |.+. . o | |ooo . . | |o..o. | +-----------------+ [root@proxy-nfs ~]# ssh-copy-id -i web01 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@web01's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'web01'" and check to make sure that only the key(s) you wanted were added. [root@proxy-nfs ~]# [root@proxy-nfs ~]# ssh-copy-id -i web02 The authenticity of host 'web02 (192.168.152.136)' can't be established. ECDSA key fingerprint is 4c:ee:a3:f1:5c:37:43:32:bd:06:4e:cc:3f:5a:0a:04. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@web02's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'web02'" and check to make sure that only the key(s) you wanted were added. [root@proxy-nfs ~]# ssh-copy-id -i web03 The authenticity of host 'web03 (192.168.152.137)' can't be established. ECDSA key fingerprint is 4c:ee:a3:f1:5c:37:43:32:bd:06:4e:cc:3f:5a:0a:04. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@web03's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'web03'" and check to make sure that only the key(s) you wanted were added. # 修改SSH端口 [root@proxy-nfs ~]# ssh web01 Last login: Tue Mar 21 15:08:30 2017 from proxy-nfs [root@web01 ~]# sed -i s'/^#Port 22/Port 8888/g' /etc/ssh/sshd_config [root@web01 ~]# grep 8888 /etc/ssh/sshd_config Port 8888 [root@web01 ~]# exit logout Connection to web01 closed. [root@proxy-nfs ~]# ssh web02 Last login: Tue Mar 21 14:53:19 2017 from 192.168.152.1 [root@web02 ~]# sed -i s'/^#Port 22/Port 8888/g' /etc/ssh/sshd_config [root@web02 ~]# grep 8888 /etc/ssh/sshd_config Port 8888 [root@web02 ~]# exit logout Connection to web02 closed. [root@proxy-nfs ~]# ssh web03 Last login: Tue Mar 21 14:53:20 2017 from 192.168.152.1 [root@web03 ~]# sed -i s'/^#Port 22/Port 8888/g' /etc/ssh/sshd_config [root@web03 ~]# grep 8888 /etc/ssh/sshd_config Port 8888 [root@web03 ~]# exit logout Connection to web03 closed. [root@proxy-nfs ~]# # SCP 远程拷贝文件 [root@proxy-nfs ~]# touch oldgirl.txt [root@proxy-nfs ~]# scp oldgirl.txt web01:/tmp oldgirl.txt 100% 0 0.0KB/s 00:00 [root@proxy-nfs ~]# scp web01:/etc/passwd . passwd 100% 2375 2.3KB/s 00:00
作业五:整理bash命令类型,验证寻找一个命令的优先级
# 以ls命令为例
#1、ls命令有别名 [root@proxy-nfs ~]# alias ls alias ls='ls --color=auto' #2、ls BASH自带的命令 [root@proxy-nfs ~]# rpm -qf /usr/bin/cd bash-4.2.46-20.el7_2.x86_64 #3、ls 命令之前操作过后会有hash缓存 [root@proxy-nfs ~]# hash hits command 1 /usr/bin/egrep 1 /usr/bin/hostname 2 /usr/bin/systemctl 1 /usr/bin/cat 4 /usr/bin/vim 1 /usr/bin/touch 4 /usr/bin/ssh 3 /usr/bin/ssh-copy-id 4 /usr/bin/scp 3 /usr/bin/curl 3 /usr/bin/ls 2 /usr/bin/ssh-keygen 1 /usr/bin/clear #4、根据PATH寻找路径 [root@proxy-nfs ~]# which ls alias ls='ls --color=auto' /usr/bin/ls #5、如果命令不存在,则提示找不到 [root@proxy-nfs ~]# lls -bash: lls: command not found
作业六:通配符实验
#1、~ 家目录 [root@proxy-nfs ~]# cd /tmp/ [root@proxy-nfs tmp]# cd ~ [root@proxy-nfs ~]# pwd /root #2、``命令的替换 取命令的执行结果 [root@proxy-nfs ~]# ret=`free -m` [root@proxy-nfs ~]# echo $ret total used free shared buff/cache available Mem: 322 115 12 8 194 161 Swap: 2047 0 2047 [root@proxy-nfs test]# echo `ls` 1.txt 2.txt 3.txt 4.txt a.sh sshd_config [root@proxy-nfs test]# a=`echo `ls`` [root@proxy-nfs test]# echo $a ls [root@proxy-nfs test]# b=$(echo $(ls)) [root@proxy-nfs test]# echo $b 1.txt 2.txt 3.txt 4.txt a.sh sshd_config #尽量使用括号 #3、!取非 [root@proxy-nfs test]# ls [!a-z].txt 1.txt 2.txt 3.txt 4.txt #4、@ 无特殊含义 #5、# 注释 [root@proxy-nfs test]# cat /etc/resolv.conf # Generated by NetworkManager #6、 $变量取值 [root@proxy-nfs test]# echo $ret total used free shared buff/cache available Mem: 322 115 12 8 194 161 Swap: 2047 0 2047 $()同`` [root@proxy-nfs test]# ret=$(ls) [root@proxy-nfs test]# echo $ret 1.txt 2.txt 3.txt 4.txt ${}变量名的范围 [root@proxy-nfs test]# aa=old [root@proxy-nfs test]# echo ${aa}girl oldgirl $[]整数计算echo $[2+3]-*/%浮点数用echo "sclae=3;10/3"|bc -l [root@proxy-nfs test]# echo $[1 + 1] 2 #7、杀后台进程jobs号;取莫 杀后台进程jobs号 kill -9 %1 #取模 [root@proxy-nfs test]# echo $[10%3] 1 #8、^取非和!雷同 [root@proxy-nfs test]# ls [^01].txt 2.txt 3.txt 4.txt #9、& 后台进程 [root@proxy-nfs test]# ./test.sh & 逻辑与 [root@proxy-nfs test]# ls && pwd 1.txt 2.txt 3.txt 4.txt /test #10、*通配符;任意字符 [root@proxy-nfs test]# ls * 1.txt 2.txt 3.txt 4.txt [root@proxy-nfs test]# ls *.txt 1.txt 2.txt 3.txt 4.txt #11、()在子进程中执行 [root@proxy-nfs test]# a=1 [root@proxy-nfs test]# (a=2;echo $a) 2 [root@proxy-nfs test]# echo $a 1 #12、-减号;区间;cd-; 减号 echo $[5 - 1] 区间 ls [a-z].txt 返回上一次工作的目录 cd - #13、|管道;||逻辑或 管道 [root@proxy-nfs test]# netstat -tunapl|grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9440/nginx: master tcp6 0 0 :::80 :::* LISTEN 9440/nginx: master 逻辑或 [root@proxy-nfs test]# ls || pwd 1.txt 2.txt 3.txt 4.txt #14、{}命令列表#括号内的开头和结尾必须是空格 [root@proxy-nfs test]# { ls;cd /; } 1.txt 2.txt 3.txt 4.txt [root@proxy-nfs /]# #15、转义 [root@proxy-nfs ~]# rm -f [1].txt #16、:空命令 真值 [root@proxy-nfs ~]# : [root@proxy-nfs ~]# echo $? 0 #17、;可以接多个命令,无论对错,会一直执行到最后一条命令 [root@proxy-nfs ~]# pwd;who /root root tty1 2017-03-21 09:35 root pts/1 2017-03-21 14:53 (192.168.152.1) #18、“” 软引 ‘’硬引 [root@proxy-nfs ~]# aa=oldboy [root@proxy-nfs ~]# echo $aa oldboy [root@proxy-nfs ~]# echo "$aa" #软引用 oldboy [root@proxy-nfs ~]# echo '$aa' #硬引用 $aa [root@proxy-nfs ~]# #19、,枚举分隔符 [root@proxy-nfs ~]# echo {a,b,c,d} a b c d #20、<输入重定向 #21、>输出重定向 echo aa > aa.txt #22、追加 echo bb > aa.txt #23、. source 当前目录 [root@proxy-nfs test]# ./a.sh 1.txt 2.txt 3.txt 4.txt a.sh [root@proxy-nfs test]# source a.sh 1.txt 2.txt 3.txt 4.txt a.sh #24、/ 目录分隔符 [root@proxy-nfs test]# pwd /test/ #25、?通配符:任一字符 [root@proxy-nfs test]# echo ???? a.sh