Linux运维学习-第8周作业

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。

网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层
集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层
二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享
三层交换机:具有路由功能的二层交换机
路由器:连接不同网段的设备,负责不同网段之间数据通信
二层交换机一般用于接终端设备,三层交换机用于汇聚层,核心层,路由器用于不同网段之间数据通信
2、IP地址的分类有哪些?子网掩码的表示形式及其作用


3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。

4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)

1.ifconfig 查看网卡信息,此处以eth0为例
2.用命令指定主机IP地址:ifconfig eth0 XXX.XXX.XXX.XXX/XX,此命令即时生效
3.编辑/etc/sysconfig/network-scripts/ifcfg-em1文件,使之重启之后永久有效

Centos7

/etc/sysconfig/network-scripts/ifcfg-eth0
1 TYPE=Ethernet
2 BOOTPROTO=none
3 DEFROUTE=yes
4 PEERDNS=yes
5 PEERROUTES=yes
6 IPV4_FAILURE_FATAL=no
7 IPV6INIT=yes
8 IPV6_AUTOCONF=yes
9 IPV6_DEFROUTE=yes
10 IPV6_PEERDNS=yes
11 IPV6_PEERROUTES=yes
12 IPV6_FAILURE_FATAL=no
13 NAME=em1
14 UUID=302b3278-f774-4d5e-99cb-69ccc7c66dfd
15 DEVICE=em1
16 ONBOOT=yes
17 IPADDR=192.168.1.252
18 NETMASK=255.255.255.0
19 GATEWAY=192.168.1.1

ubuntu系统:
Unb
auto lo
iface lo inet loopback

auto em1
iface em1 inet static
address 192.168.1.118
netmask 255.255.255.0
gateway 192.168.1.1

重启:
/etc/init.d/networking restart
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

1.通过修改配置文件的方式,重启之后使之永久有效,方法有2种:
(1)使用GUI界面的方式,使用以下命令启用
CentOS6:setup命令
CentOS7:nmtui命令

(2)通过修改网络配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE :用来设定IP|NETMASK|GW|DNS等属性的配置文件
/etc/sysconfig/networkj-scripts/route-IFACE:用来设定路由的相关配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE_LABEL:用来为网卡添加额外IP地址,并永久有效

2.通过命令的方式,临时生效
(1)ifconfig 语法格式:ifconfig interface IP netmask NETMASK
示例:

ifconfig eth1 192.168.10.100 netmask 255.255.255.0
(2)route命令,修改路由信息
示例:

route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth0
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;

1 #!/bin/bash
2 #
3 for i in `seq 254`;do
4 if ping -c 1 -W1 172.16.250.$i &> /dev/null;then
5 echo -e “\033[32m 172.16.250.$i is online. \033[0m”
6 else
7 echo -e “\033[31m 172.16.250.$i is not online. \033[0m”
8 fi
9 done

7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

示例内容解析:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=”eth0″ #关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致
BOOTPROTO=”dhcp” #引导协议,一般的取值为{static|none|dhcp|bootp}:静态地址static|none;
HWADDR=”00:1C:42:15:8C:28″ #设备的MAC地址;
IPV6INIT=”yes” #是否初始化IPv6;
NM_CONTROLLED=”yes”
ONBOOT=”yes” #在系统引导过程中,是否激活此接口;
TYPE=”Ethernet”
UUID=”4f2e9a9f-e70e-4da4-a606-388600e79eb2″ #此设备的惟一标识;
8、如何给网络接口配置多个地址,有哪些方式?

1.ip命令

ip addr add IFADDR dev IFACE [label NAME]

示例:ip addr add 192.168.100.10/24 dev eth1 label eth1:0
2.ifconfig命令

ifconfig IFACE_LABEL IPADDR/NETMASK
3.修改配置文件,用来为网卡添加额外IP地址,并永久有效

/etc/sysconfig/network-scripts/ifcfg-IFACE_LABEL
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ifcfg家族

ifconfig命令

语法格式1:ifconfig [-a] [interface]

语法格式2:ifconfig interface [aftype] options | address …

语法格式3:ifconfig IFACE_LABEL IPADDR/NETMASK

route命令:路由查看及管理命令

语法格式1:route [option]

语法格式2:route add|del [-net|-host] target [netmask Nm] [gw GW] [[dev] If]

netstat命令

常用语法格式1:netstat -rn 显示路由表信息

常用语法格式2:netstat [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]

常用语法格式3:netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–verbose|-v] [–program|-p] [–numeric|-n]

ifup | ifdown命令

hostname命令

语法格式:hostname HOSTNAME

hostnamectl命令:CentOS 7下的命令

语法格式:hostnamectl [OPTIONS…] {COMMAND}
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

工具1:rpm命令

通用选项:

安装:-i|–install

升级:-U|–upgrade,-F|–freshen

卸载:-e|–erase

查询:-q|–query

校验:-V|–verify ###工具2:yum命令

通用选项:

install package1 [package2] […] 安装程序包

update [package1] [package2] […] 升级程序包

check-update 检查可用升级包

remove | erase package1 [package2] […] 卸载程序包

list […] 显示程序包

info […] 查看程序包信息

11、如何使用发行版光盘作为yum repository,请描述该过程。

挂载光盘:mount /dev/cdrom /mnt/cdrom
创建:vim /etc/yum.repos.d/cdrom.repo

[centos7]
name=cdrom
baseurl=file:///media/cdrom
gpgcheck=1
enabled=1
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;

脚本:

#!/bin/bash
declare -i m
declare -i s
m=0
s=0
for i in `ls /etc/rc.d/rc3.d/ | grep “^[S]”`;do
mv /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/${i}start
s+=1
done
for h in `ls /etc/rc.d/rc3.d/ | grep “^[K]”`;do
mv /etc/rc.d/rc3.d/$h /etc/rc.d/rc3.d/${h}stop
m+=1
done
echo “K* have $m files,S* have $s”

[[email protected] /]# bash 12.sh
K* have 1 files,S* have 37
[[email protected] /]#
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;

1 #!/bin/bash#
2 declare -a username
3 declare -i idsum
4 declare -i argnum
5 idsum=0
6 read -p “please input username:” -a username
7 argnum=${#username[*]}
8 if [ $argnum -eq 1 ];then
9 useradd ${username[0]}
10 echo “idsum $(id -u ${username[0]})”else
11 for i in `seq 0 1 $[$argnum-1]`;do
12 useradd ${username[$i]}
13 idsum+=$(id -u ${username[$i]})
14 done
15 echo $idsumfi
16 fi

[[email protected] /]# bash 13.sh
please input username:user2
useradd: user ‘user2’ already exists
idsum 1024else
useradd: user ‘user2’ already exists
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

脚本:

#!/bin/bash#argnum=$#
ls -al $*
sumtype=$(ls -l $* | grep -o -E “^([a-z]|[-])”| sort -u | wc -l)
sumdir=$(ls -l $* | grep -o “^d” | wc -l)
echo “sumtype $sumtype”echo “sumdir $sumdir”

[[email protected] /]# bash 14.sh
total 8980488
dr-xr-xr-x. 19 root root 4096 Oct 24 22:34 .
dr-xr-xr-x. 19 root root 4096 Oct 24 22:34 ..
-rw-r–r–. 1 root root 197 Oct 24 22:34 14.sh
-rw-r–r–. 1 root root 83 Oct 24 22:29 15.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:31 .15.sh.swo
-rw-r–r–. 1 root root 4096 Oct 24 22:29 .15.sh.swp
-rw-r–r–. 1 root root 237 Oct 24 22:22 16.sh
-rw-r–r–. 1 root root 4096 Oct 24 22:29 .16.sh.swn
-rw-r–r–. 1 root root 12288 Oct 24 22:28 .16.sh.swo
-rw-r–r–. 1 root root 12288 Oct 24 22:23 .16.sh.swp
-rw-r–r–. 1 root root 123 Oct 24 22:14 17.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:15 .17.sh.swo
-rw-r–r–. 1 root root 4096 Oct 24 22:13 .17.sh.swp
drwxr-xr-x. 15 tomcat tomcatkzxj 4096 Aug 24 17:29 application
———-. 1 root root 820643840 Apr 8 2016 application1.tar.gz
———-. 1 root root 930647378 Aug 17 17:25 application20160815.tar.gz
———-. 1 root root 2699038778 Sep 5 10:12 application20160905.tar.gz
-rw-r–r–. 1 root root 3823343978 Oct 24 17:18 application20161024.tar.gz
———-. 1 root root 912977920 Apr 11 2016 application2016.4.11.tar.gz
-rw-r–r–. 1 root root 176 Oct 24 11:22 a.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:13 .a.sh.swo
-rw-r–r–. 1 root root 12288 Oct 24 22:10 .a.sh.swp
lrwxrwxrwx. 1 root root 7 Mar 11 2016 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Mar 11 2016 boot
-rw-r–r–. 1 root root 235 Oct 24 16:45 b.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:14 .b.sh.swp
-rw-r–r–. 1 root root 158 Oct 24 22:08 cf.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:09 .cf.sh.swp
-rw-r–r–. 1 root root 134 Oct 24 16:38 c.sh
-rw-r–r–. 1 root root 4096 Oct 24 22:09 .c.sh.swp
drwxr-xr-x. 5 root root 102 Aug 19 10:14 data
drwxr-xr-x. 19 root root 3240 Oct 17 14:18 dev
drwxr-xr-x. 78 root root 8192 Oct 24 22:22 etc
-rw-r–r–. 1 root root 315 Oct 23 20:26 grep.txt
drwxr-xr-x. 37 root root 4096 Oct 24 22:22 home
lrwxrwxrwx. 1 root root 7 Mar 11 2016 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Mar 11 2016 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Aug 12 2015 media
drwxr-xr-x. 3 root root 18 Oct 24 16:56 mnt
drwxr-xr-x. 2 root root 6 Aug 12 2015 opt
dr-xr-xr-x. 284 root root 0 Aug 17 11:43 proc
-rw-r–r–. 1 root root 16751 Aug 17 11:44 .readahead
dr-xr-x—. 7 root root 4096 Oct 24 22:34 root
drwxr-xr-x. 23 root root 600 Oct 24 16:51 run
lrwxrwxrwx. 1 root root 8 Mar 11 2016 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Aug 12 2015 srv
dr-xr-xr-x. 13 root root 0 Aug 17 11:43 sys
-rw-r–r–. 1 root root 0 Aug 14 23:00 test
-rw——-. 1 root root 1651 Aug 14 22:39 test2
-rwxrwxrwx. 1 root root 242 Oct 23 21:57 test.sh
drwxrwxrwt. 12 root root 4096 Oct 24 19:17 tmp
-rw-r–r–. 1 root root 9128610 Mar 11 2016 tools
drwxr-xr-x. 14 root root 4096 Mar 15 2016 usr
drwxr-xr-x. 20 root root 4096 Aug 17 11:43 var
sumtype 4echo sumdir 17

15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;

脚本:

#!/bin/bash
if [ $(id -u $1) -ge 500 ];then
echo “normal user”
fidone

16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;

脚本:

#!/bin/bash#
#16.sh
declare -i sum
sum=0
for i in {1..10};do
if id user$i &>/dev/null ;then
continue
else
useradd user$i
echo “user$i” | passwd –stdin user$i
sum+=1
fi
done
echo “newadd $sum users”

[[email protected] /]# bash 16.sh
Changing password for user user2.
passwd: all authentication tokens updated successfully.
Changing password for user user3.
passwd: all authentication tokens updated successfully.
Changing password for user user4.
passwd: all authentication tokens updated successfully.
Changing password for user user5.
passwd: all authentication tokens updated successfully.
Changing password for user user6.
passwd: all authentication tokens updated successfully.
Changing password for user user7.
passwd: all authentication tokens updated successfully.
Changing password for user user8.
passwd: all authentication tokens updated successfully.
Changing password for user user9.
passwd: all authentication tokens updated successfully.
Changing password for user user10.
passwd: all authentication tokens updated successfully.

17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

脚本:

#!/bin/bash#
for i in {20..100};do
if ping -w 1 172.168.250.$i ;then
echo “172.168.250.$i online”
fi
done

[[email protected] /]# bash 17.sh
PING 172.168.250.20 (172.168.250.20) 56(84) bytes of data.

— 172.168.250.20 ping statistics —
2 packets transmitted, 0 received, 100% packet loss, time 999ms

PING 172.168.250.21 (172.168.250.21) 56(84) bytes of data.

— 172.168.250.21 ping statistics —
2 packets transmitted, 0 received, 100% packet loss, time 999ms

PING 172.168.250.22 (172.168.250.22) 56(84) bytes of data.

— 172.168.250.22 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms

18、打印九九乘法表;

脚本:

#!/bin/sh
for i in {1,2,3,4,5,6,7,8,9}
do
for j in {1,2,3,4,5,6,7,8,9}
do
((product=$i*$j))
echo -ne $i\*$j=$product”\t”
done
echo
done
exit 0

[[email protected] /]# bash a.sh
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

时间: 2024-12-14 16:49:15

Linux运维学习-第8周作业的相关文章

Linux运维学习-第6周作业

练习题:1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#: :%[email protected]^[[:space:]]\[email protected]#&@g 2.复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符: :%[email protected]^[[:space:]]\[email protected]@g3.删除/

马哥2016全新Linux+Python高端运维班第三周作业作答

                    马哥2016全新Linux+Python高端运维班第三周作业                                           1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | awk '{print $1 $NF}'| uniq -d     [[email protected] ~]# who     yicx     :0  

Linux运维学习-4——2016年7月26日

格式说明: 操作 概念 命令 说明及举例 四 du -sh /sys 查看文件.文件夹大小 /sys/class/scsi_host/host2/scan 在线扫盘(新加硬盘执行这个命令后才能发现) stat /etc/issue 更详细的看数据 蓝色:目录绿色:可执行文件浅蓝色:链接文件红色:压缩文件 创建-h文件名的文件,删除?访问?绝对路径 -:常规文件d:目录l:链接文件b:块设备(比如硬盘,有缓存)c:字符设备(不真实存在,没缓存) p:管道文件 例: 命令1 | 命令2 命令1的输出

Linux运维学习-2——2016年7月21日

格式说明: 操作 概念 命令 说明及举例 二 internet 因特网ethernet 以太网ctrl+alt+F1 图形界面ctrl+alt+F2-F6 字符界面 命令:who am i/who/who me i/tty/df/ifconfig/w/ halt 关机 reboot 重启 chvt 1-6 切换终端 init 3 关闭图形界面 init 5 打开图形界面 cp 复制 pwd 显示当前目录 lsblk 列出硬盘信息 id -u mg 查看用户ID,root为9,其他为普通用户,不加

奔跑中的2015:Linux运维学习八大禁忌

随着Linux服务器在企业中的日益普及,高级Linux运维工程师岗位缺口也在递增.目前,为企业人才输送人才的各大院校,很少有开设Linux课程.我所了解和接触从事Linux运维工作同事和朋友多半是半路出家,很少有一出校门就去做Linux运维的相关工作.问其为何学习Linux因为技术?有的人说是兴趣所致,也有的人说是由于工作需要,可以说后者有点被迫无奈,但是痛并快乐着. Linux运维学习可以说"入门不易,深入更难",由于Linux系统主要是使用命令和脚本操作的特点:尤其多数Linux操

[ Linux运维学习 ] 路径及实战项目合集

我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. 如果你想从事Linux运维相关工作,那么你可以来实验楼,因为实验上有: [Linux运维技术路径]:一条学习路径,多个阶段.若干课程带你一步步成为Linux运维工程师: [Linux运维与Devops实战]:12周时间,带你0基础到运维工程师,涵盖Linux运维常用技术和DevOps相关技术: --

Linux运维学习之 —— 搭建本地yum源

yum是RPM的前端工具,通过yum命令可以帮我们自动解决安装rpm包之间的依赖关系.下面是搭建本地yum仓库的步骤: 1.挂载光盘(光盘为CentOS-6.5-x86_64-bin-DVD2.iso)     mount /dev/cdrom1 /media ls一下/media这个目录,可以看到以下内容 2.创建本地文件夹,将Packages下的rpm包全部拷贝到本地文件夹     mount /dev/cdrom1 /media/     cp -r /media/Packages/* /

linux 运维学习

Linux 运维学习笔记(一) 一. 配置网卡 1. 通过root账户登录后,输入setup命令. 2. 选择第三项"网络配置" 3. 继续选择"网卡设置" 4. 选择第一张网卡 5. 因为已经选择使用DHCP获取IP地址,所以IP地址不需要配,但是可以配一下DNS,然后保存退出! 6. 重启网卡(有三种方法) (1).ifup eth0 (2).etc/init.d/network restart (3)service network restart 7. 配置网

Linux运维学习之——vim基础

linux下的vim文本编辑器的常用选项. vim(Visual interface Improved)是vi编辑器的增强版,体积小但是功能强大,是linux系统使用最频繁的文本编辑器,所以学好vim也是学好linux必不可少的技能! vim的命令格式: vim [options] [file ..] eg: [[email protected] ~]# vim hello.txt #用vim打开hello.txt文件 vim打开文件后的默认方式为编辑模式(也叫命令模式). 编辑模式(命令模式)