计算机网络知识,脚本编程_第八周练习

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

网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。

集线器:集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。

二层交换机:二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。

三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。

路由器:路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

Q2:IP地址的分类有哪些?子网掩码的表示形式及其作用;

IP地址分类

A类IP地址:地址范围0.0.0.0 -- 127.0.0.0,默认子网掩码255.0.0.0
B类IP地址:地址范围128.0.0.0 -- 191.255.0.0,默认子网掩码255.255.0.0
C类IP地址:地址范围192.0.0.0 -- 223.255.255.0,默认子网掩码255.255.255.0
D类是组播地址:地址范围224.0.0.0 -- 239.255.255.255
E类作为保留研究:地址范围240.0.0.0 -- 255.255.255.255
保留私网地址:
A类:10.0.0.0 -- 10.255.255.255
B类:172.16.0.0 -- 172.31.255.255
C类:192.168.0.0 -- 192.168.255.255
特殊地址:
本地还回地址:127.0.0.1 -- 127.0.0.255
主机请求无法被分配时候,自己生成的地址:169.254.0.0

子网掩码的表示形式及其作用

子网掩码用二进制方式表示地话,也是一个32位的数字。它对应IP地址网络标识部分的位全部为“1”,对应IP地址主机标识的部分则全部为“0”。由此,一个IP地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由地定位自己的网络标识长度。当然,子网掩码必须是IP地址的首位连续的“1”。对于子网掩码,目前有两种表示方式:一种是用32位数字表示;另一种,则是在每个IP地址后面追加网络地址的位数,用“/”隔开。
子网掩码作用:用来区分IP地址的网络号与主机号;当TCP/IP网络上的主机相互通信时,就可以利用子网掩码得知这些主机是否在相同的网络区段内;用来将网络分割为多个子网。

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

图片1.png

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

  • 输入命令ifconfig -a查看设备名称;

  • 输入命令ifconfig DEVICENAME IP进行IP地址设定;

  • 输入命令vim /etc/sysconfig/network-script/DEVICENAME修改脚本;

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR
    NETMASK
    GATEWAY
    DNS1
  • 输入命令systemctl restart network.service进行服务重载;

Q5:为Linux主机配置网络信息的方式有哪些,请描述各个过程。

临时有效:使用命令ip或者ifconfig进行修改,立即生效;
永久生效:修改网卡配置脚本文件,需要重启服务或者ifdown/ifup对网卡单独操作;
使用图形界面setup--网络配置,需要重启服务生效;

Q6:写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;在线的主机使用绿色显示;不在线的主使用红色显示;

#!/bin/bash
#
trap 'exit 1' INT
declare -i i=1
for i in(seq 254);do
    if ping 172.16.250.$i -c 1 -W 1 &> /dev/null;then
        echo -e "\033[0;32;1m 172.16.250.$i is up! \033[0m"
    else
        echo -e "\033[0;31;1m 172.16.250.$i is down! \033[0m"
    fi
    let i++
done

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

ifcfg-IFACE配置文件参数:
    DEVICE:此配置文件对应的设备的名称;
    ONBOOT:在系统引导过程中,是否激活此接口;
    UUID:此设备的惟一标识;
    IPV6INIT:是否初始化IPv6;
    BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
    TYPE:接口类型,常见的有Ethernet, Bridge;
    DNS1:第一DNS服务器指向;
    DNS2:备用DNS服务器指向;
    DOMAIN:DNS搜索域;
    IPADDR: IP地址;
    NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
    GATEWAY:默认网关;
    USERCTL:是否允许普通用户控制此设备;
    PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;
    HWADDR:设备的MAC地址;    #不能随便修改,出厂的时候厂商给的,在文件中删除就好了
    NM_CONTROLLED:是否使用NetworkManager服务来控制接口;    #在CentOS 6及以前不启用,一般用network)

Q8:如何给网络接口配置多个地址,有哪些方式?

#临时生效:
使用ip / ifconfig输入命令:
~]# ip addr add IP/mask dev eth0:0
~]# ifconfig IFACE_LABEL IPADDR/NETMASK            #其中IFACE_LABEL:eth0:0, eth0:1;

#修改配置文件:
DEVICE=IFACE_LABEL
BOOTPROTO:网上别名不支持动态获取地址, static, none;

Q9:常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

ifconfig命令:接口及地址查看和管理
    ifconfig  [INTERFACE]
    # ifconfig -a:显示所有接口,包括inactive状态的接口;
    ifconfig interface [aftype] options | address ...
    # ifconfig  IFACE  IP/MASK  [up|down]
    # ifconfig  IFACE  IP  netmask  NETMASK
    options:
    [-]promisc    混杂模式;
    ~]# ifconfig eth1 promisc    打开混杂模式;
    ~]# ifconfig eth1 -promisc    关闭混杂模式;

route命令:路由查看及管理
    查看:
    # route  -n
    添加:
    route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]    网络路由/主机路由
    示例:route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1
          route add  -net  0.0.0.0/0.0.0.0  gw 192.168.10.1  
          route add  default  gw 192.168.10.1      表示为默认网关
          【配置单个主机】options改为 -host即可 
    删除:
    route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
    示例:route  del  -net  10.0.0.0/8  gw 192.168.10.1
          route  del  default

netstat命令:
    显示路由表:netstat  -rn
    -r:显示内核路由表
    -n:数字格式
    显示网络连接:
    netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]
    -t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
    -u:UDP相关的连接
    -w:raw socket相关的连接
    -l:处于监听状态的连接
    -a:所有状态
    -n:以数字格式显示IP和Port;
    -e:扩展格式
    -p:显示相关的进程及PID;
    常用组合:
    -tan,  -uan,  -tnl,  -unl,  -tunlp
显示接口的统计数据:
    netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
    所有接口:
    netstat  -i
    指定接口:
    netstat  -I<IFace>

    ifup/ifdown命令:
    注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

ip命令:
    ip [ OPTIONS ] OBJECT { COMMAND | help }
    OBJECT := { link | addr | route | netns  }
    注意: OBJECT可简写,各OBJECT的子命令也可简写;
    ip  OBJECT:
    ip link: network device configuration        网络设备配置;
    ip  link  set - change device attributes        与ifconfig很相似,用于设置某属性属于什么状态;
    <[dev] NAME (default)>:指明要管理的设备,dev关键字可省略;
    up和down:启用或禁用接口;  ~]# ip link set [dev] eth1 up
    multicast on或multicast off:启用或禁用多播功能;
    name NAME:重命名网络接口;
    mtu NUMBER:设置MTU的大小,以太网接口默认为1500;
    netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
    ip  link  show  - display device attributes
    ip  link  help -  显示简要使用帮助;
    ip netns:  - manage network namespaces.
    ip  netns  list:列出所有的netns
    ip  netns  add  NAME:创建指定的netns
    ip  netns  del  NAME:删除指定的netns
    ip  netns   exec  NAME  COMMAND:在指定的netns中运行命令
ip address - protocol address management.    用于协议地址管理,简言之用于管理IP地址;
    ip address add - add new protocol address        添加新IP地址;
    ip  addr  add  IFADDR  dev  IFACE
    [label NAME]:为额外添加的地址(主地址以外)指明接口别名;
    [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
    [scope SCOPE_VALUE]:(了解,不记也没关系)scope表示作用域;
    global:全局可用;(大多数情况下,就使用这个)
    link:接口可用;
    host:仅本机可用;
    ip address delete - delete protocol address        删除IP地址;
    ip addr  delete  IFADDR  dev  IFACE 
    ip address show - look at protocol addresses    查看IP地址;
    ip  addr   list  [IFACE]:显示接口的地址;
    ip address flush - flush protocol addresses        删除IP地址,清空所有的IP地址;
    ip  addr  flush  dev  IFACE

ip route - routing table management            #用于路由表管理命令;
    ip route add - add new route                #添加路由;
    ip route change - change route                #修改路由;
    ip route replace - change or add new one    #(有老的)修改路由,(没有老的)添加路由;
    ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]        #PREFIX指的是长度的掩码;
    示例:
    # ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100
    # ip  route  add default  via  GW                        
    ip route delete - delete route                #删除路由;
    ip  route  del  TYPE PRIFIX 
    示例:
    # ip  route delete  192.168.1.0/24
    ip route show - list routes                    #显示路由信息;
    TYPE PRIFIX  
    ip route flush - flush routing tables        #清空路由表;
    TYPE  PRIFIX
    ip route get - get a single route            #获取(指定的)单条路由;(了解即可)
    ip  route  get  TYPE PRIFIX
    示例:ip route  get  192.168.0.0/24

ss命令:
    ss  [options]  [ FILTER ]
    选项:
    -t:TCP协议的相关连接
    -u:UDP相关的连接
    -w:raw socket相关的连接
    -l:监听状态的连接
    -a:所有状态的连接
    -n:数字格式
    -p:相关的程序及其PID
    -e:扩展格式信息
    -m:内存用量
    -o:计时器信息
    FILTER := [ state TCP-STATE ]  [ EXPRESSION ]
    TCP的常见状态:
    TCP FSM:
    LISTEN:监听
    ESTABLISEHD:建立的连接
    FIN_WAIT_1:
    FIN_WAIT_2:
    SYN_SENT:
    SYN_RECV:
    CLOSED:
    EXPRESSION:
    dport = 
    sport = 
    示例:'( dport = :22 or sport = :22)'
    ~]# ss   -tan    '(  dport = :22 or sport = :22  )'
    ~]# ss  -tan  state  ESTABLISHED

Q10:Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]
安装:
    rpm {-i|--install} [install-options] PACKAGE_FILE ...
    rpm  -ivh  PACKAGE_FILE ...
    GENERAL OPTIONS:
    -v:verbose,详细信息
    -vv:更详细的输出
    [install-options]:
    -h:hash marks输出进度条;每个#表示2%的进度;
    --test:测试安装,检查并报告依赖关系及冲突消息等;
    --nodeps:忽略依赖关系;不建议;
    --replacepkgs:重新安装
    注意:rpm可以自带脚本;
    四类:--noscripts
    preinstall:安装过程开始之前运行的脚本,%pre , --nopre
    postinstall:安装过程完成之后运行的脚本,%post , --nopost
    preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun 
    postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun
    --nosignature:不检查包签名信息,不检查来源合法性;
    --nodigest:不检查包完整性信息;
升级:
    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
    -U:升级或安装;
    -F:升级
    rpm  -Uvh PACKAGE_FILE ...
    rpm  -Fvh PACKAGE_FILE ...    纯粹的升级操作;
    --oldpackage:降级;
    --force:强制升级;
    注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核;
    (2) 如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
卸载:
    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...
    卸载时是PACKAGE_NAME,包名即可;
    --allmatches:卸载所有匹配指定名称的程序包的各版本;
    --nodeps:忽略依赖关系
    --test:测试卸载,dry run模式
查询:
    rpm {-q|--query} [select-options] [query-options]
    [select-options]
    PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
    -a, --all:查询所有已经安装过的包;
    -f  FILE:查询指定的文件FILE由哪个程序包安装生成;
    -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;
    --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;
    --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
    e.g.
    ~]# rpm -q --whatprovides bash        查询bash安装时的包的名称;
    bash-4.2.46-19.el7.x86_64
    ~]# rpm -q --whatrequires bash        查询bash被哪些程序包所依赖;
    dracut-033-359.el7.x86_64
    initscripts-9.49.30-1.el7.x86_64
    rsyslog-7.4.7-12.el7.x86_64
    lvm2-2.02.130-5.el7.x86_64
    [query-options]
    --changelog:查询rpm包的changlog;
    -l, --list:程序安装生成的所有文件列表;
    -i, --info:程序包相关的信息,版本号、大小、所属的包组,等;
    -c, --configfiles:查询指定的程序包提供的配置文件;
    -d, --docfiles:查询指定的程序包提供的文档;
    --provides:列出指定的程序包提供的所有的CAPABILITY;
    -R, --requires:查询指定的程序包的依赖关系;
    --scripts:查看程序包自带的脚本片断;(四个脚本:安装前、安装、卸载、卸载后,其中安装前和卸载后可以没有)
用法:
    -qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
    -qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...
校验:
    rpm {-V|--verify} [select-options] [verify-options]    
    防止安装包在发布的时候,被做了修改,开启后门程序之类的;
    S file Size differs        文件大小发生改变;
    M Mode differs (includes permissions and file type)  权限发生改变;
    5 digest (formerly MD5 sum) differs  MD5码发生改变,文件的内容完整性发生改变;
    D Device major/minor number mismatch  主次设备号不匹配;
    L readLink(2) path mismatch              readLink的路径不匹配;
    U User ownership differs              属主修改了;
    G Group ownership differs              属组修改了;
    T mTime differs                          最近一次的时间戳修改了;
    P caPabilities differ                  caPabilities发生改变;

yum命令的用法:yum [options] [command] [package ...]
显示仓库列表:
repolist [all|enabled|disabled]
显示程序包:
    list
    # yum list [all | glob_exp1] [glob_exp2] [...]
    # yum list {available|installed|updates} [glob_exp1] [...]
安装程序包:
    install package1 [package2] [...]
    reinstall package1 [package2] [...]  (重新安装)
升级程序包:
    update [package1] [package2] [...]
    downgrade package1 [package2] [...] (降级)
检查可用升级:
    check-update
卸载程序包:        依赖于次程序包的也都会被卸载;
    remove | erase package1 [package2] [...]
查看程序包information:        显示出类似于rpm -qi的结果;
    info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:            显示出类似于rpm -qf的结果;
    provides | whatprovides feature1 [feature2] [...]
清理本地缓存:    因为yum下载之后,程序包会自动删除,元数据不会被删除,用这个命令手动删除;
    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:从各仓库下载创建,无需自己去做,每次使用yum命令的时候会自动做的;
    makecache
搜索:
    search string1 [string2] [...]
    以指定的关键字搜索程序包名及summary信息;
查看指定包所依赖的capabilities:
    deplist package1 [package2] [...]
查看yum事务历史:
    history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包:
    yum localinstall rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use install)
yum localupdate rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use update)
包组管理的相关命令:
    yum groupinstall group1 [group2] [...]        安装指定包组;组名可能要加“”;
    yum groupupdate group1 [group2] [...]            
    yum grouplist [hidden] [groupwildcard] [...]    显示指定包组;
    yum groupremove group1 [group2] [...]
    yum groupinfo group1 [...]

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

(1)挂载光盘至某目录
~]# mount -r /dev/cdrom /media/cdrom
(2)创建配置文件
~]# vim /etc/yum.repos.d/local.repo
[CentOS7]
name=CentOS7
baseurl=file:///media/cdrom
enable=1
gpgcheck=0

Q12:写一个脚本,完成以下功能

  • (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

  • (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

  • (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

  • (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
#
declare -i s=0
declare -i k=0
for i in $(ls /etc/rc.d/rc3.d/);do
    if [[ $i == S* ]];then
        echo $i.start
        s+=1
    fi
    if [[ $i == K* ]];then
                echo $i.stop
                k+=1
    fi
done
echo -e "S start:$s\nK start:$k"

Q13:写一个脚本,完成以下功能

  • (1) 脚本能接受用户名作为参数;

  • (2) 计算此些用户的ID之和;

#!/bin/bash
#
[ $# -eq 0 ] && echo -e "User name(s) needed!\nPlease try again!" && exit 1

declare -i sum=0
for i in $@;do
        if id $i &> /dev/null;then
                sum+=$(id -u $i)
        else
                echo "$i not exits!"
        fi
done
echo "Exiting users' ID sum:$sum"

Q14:写一个脚本

  • (1) 传递一些目录给此脚本;

  • (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

  • (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash
#
if [ $# -lt 1 ];then
        echo -e "At least one arg!\nPlease try again!"
        exit 1
fi

declare -i dir=0
declare -i file=0
for i in $@;do
        if ls $i &> /dev/null;then
                for j in $(ls $i);do
                        if [ -d $i/$j ];then
                                let dir++
                        else [ -f $i/$j ]
                                let file++
                        fi
                done
        else
                echo "$i not exits!"
        fi
done
echo "directory number:$dir,file number:$file"

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

#!/bin/bash
#
if [ $# -lt 1 ];then
        echo "One arg is needed!"
        exit 1
fi

if id $1 &> /dev/null;then
        if [ `id -u $1` -ge 500 ];then
                echo "$1 is a nomal user."
        elif [ `id -u $1` -ge 1 ];then
                echo "$1 is a system user."
        else
                echo "$1 is a root user."
        fi
else
        echo "$1 not exits."
fi

Q16:写一个脚本

  • (1) 添加10用户user1-user10;密码同用户名;

  • (2) 用户不存在时才添加;存在时则跳过;

  • (3) 最后显示本次共添加了多少用户;

#!/bin/bash
#
declare -i sum=0
for i in {1..10};do
        id user$i &> /dev/null && continue || useradd user$i && echo "user$i" | passwd --stdin $user$i
        sum+=1
done
echo "$sum users were added this time."

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

#!/bin/bash
#
trap 'exit 1' INT

for ((i=20;i<=100;i++));do
    if ping 172.16.250.$i -c 1 -W 1 &> /dev/null;then
        echo -e "172.16.250.$i is up!"
    fi
done

Q18:打印九九乘法表;

#!/bin/bash
#
for j in {1..9}; do
        for i in $(seq 1 $j); do
                echo -n -e "${i}X${j}=$[${i}*${j}]\t"
        done
        echo 
done

原创文章,作者:N24_VC,如若转载,请注明出处:http://www.178linux.com/64663

(0)
N24_VCN24_VC
上一篇 2016-12-25
下一篇 2016-12-25

相关推荐

  • 磁盘管理,软raid,脚本基础

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -L MYDATA -m 2 /dev/sdb tune2fs -o acl /dev/sdb (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行…

    Linux干货 2017-10-25
  • 马哥教育网络班22期第一周课程练习1-3天

    1.描述计算机组成及其功能 CPU:  运算器  控制器  寄存器  缓存 存储器:  RAM(随机访问存储器)  I/O设备:               i:下指令,提供数据 如:键鼠     &…

    Linux干货 2016-08-15
  • 编译安装http

    下载源码并解包   2 准备编译环境yum groupinstall “Development Tools” 3 编译安装   ./configure –prefix=/app/httpd24 –sysconfdir=/etc/httpd24/ –enable-ssl &#821…

    2017-12-02
  • 日志SYSLOGD_OPTIONS 参数

    SYSLOGD_OPTIONS 参数

    Linux干货 2018-03-26
  • Linux基础知识之文本处理三剑客sed

    处理文本的工具sed     1.sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”。接着用sed命令处理缓冲区中的内容,完成处理后,把缓冲区中的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编…

    Linux干货 2016-08-11
  • 谷歌三大核心技术(一)The Google File System中文版

    摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是…

    Linux干货 2015-04-13