linux系统运维基础10

1、Ubuntu系统网络配置总结(包括主机名、网卡名称、网卡配置)

(1) 修改主机名

1) 临时修改,重启主机后生效

hostname 主机名

2) 永久生效

hostnamectl set-hostname 主机名

或者

直接修改/etc/hostname文件

(2) 修改网卡名称

1) 修改配置文件为下面形式

[root@Ubuntu16 ~]#vi /etc/default/grub

GRUB_CMDLINE_LINUX="net.ifnames=0"

或者sed修改

[root@Ubuntu16 ~]#sed -i.bak '/^GRUB_CMDLINE_LINUX=/s#"$#net.ifnames=0"#' /etc/default/grub

2) 生效新的grub.cfg文件

[root@Ubuntu16 ~]#grub-mkconfig -o /boot/grub/grub.cfg

或者

[root@Ubuntu16 ~]#update-grub

[root@Ubuntu16 ~]#grep net.ifnames /boot/grub/grub.cfg

linux /vmlinuz-4.4.0-186-generic root=UUID=c5ca1e75-fc41-4e63-a49f-294364753cc4 ro net.ifnames=0

linux /vmlinuz-4.4.0-186-generic root=UUID=c5ca1e75-fc41-4e63-a49f-294364753cc4 ro net.ifnames=0

linux /vmlinuz-4.4.0-186-generic root=UUID=c5ca1e75-fc41-4e63-a49f-294364753cc4 ro recovery nomodeset dis_ucode_ldr net.ifnames=0

3) 重启生效

[root@Ubuntu16 ~]# reboot

(3) 网卡配置

Ubuntu从17.10开始,已放弃在/etc/network/interfaces里配置IP地址,即使配置也不会生效,而是改成netplan方式,配置写在/etc/netplan/01-netcfg.yaml或者类似名称的yaml文件里

1) 配置自动获取IP

[root@Ubuntu18 ~]# cat /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

eth0:

dhcp4: yes

修改网卡配置文件后需执行命令生效:

[root@Ubuntu18 ~]#netplan apply

2) 配置静态IP

[root@Ubuntu18 ~]#vim /etc/netplan/01-netcfg.yaml

network:

version: 2

renderer: networkd

ethernets:

eth0:

addresses: [192.168.8.10/24,10.0.0.10/8]

gateway4: 192.168.8.1

nameservers:

search: [magedu.com, magedu.org]

addresses: [180.76.76.76, 8.8.8.8, 1.1.1.1]

配置好后,查看方式如下:

a) 查看ip和gateway

[root@Ubuntu18 ~]#ip addr

[root@Ubuntu18 ~]#route -n

b) 查看DNS

[root@Ubuntu18 ~]#systemd-resolve --status


2、编写脚本实现登陆远程主机。(使用expect和shell脚本两种形式)。

(1) expect脚本形式

[root@CentOS8 script]#cat expect4

#!/usr/bin/expect

set ip [lindex $argv 0]

set user [lindex $argv 1]

set password [lindex $argv 2]

spawn ssh $user@$ip

expect {

"yes/no" { send "yes\n";exp_continue }

"password" { send "$password\n" }

}

interac

[root@CentOS8 script]#./expect4 10.0.0.71 root root123

spawn ssh root@10.0.0.71

root@10.0.0.71's password:

Last login: Tue Jan 26 17:15:54 2021 from 10.0.0.1

[root@CentOS7-1 ~]#

(2) shell脚本形式

[root@CentOS8 script]#vim expect5.sh

    #!/bin/bash

    ip=$1

    user=$2

    password=$3

expect <<EOF

spawn ssh $user@$ip         

expect {

"yes/no" { send "yes\n";exp_continue }

"password" { send "$password\n" }

    }

    expect "]#" { send  "echo abc | mail -s just_test root\n" }

expect "]#" { send "exit\n" }

expect eof

EOF

[root@CentOS8 script]#./expect5.sh 10.0.0.71 root root123


3、生成10个随机数保存于数组中,并找出其最大值和最小值

[root@CentOS8 script]#cat max_min.sh

#!/bin/bash

declare -i min max

declare -a nums

for ((i=0;i<10;i++));do

nums[$i]=$RANDOM

[ $i -eq 0 ] && min=${nums[$i]} && max=${nums[$i]}&& continue

[ ${nums[$i]} -gt $max ] && max=${nums[$i]}

[ ${nums[$i]} -lt $min ] && min=${nums[$i]}

done

echo “All numbers are ${nums[*]}”

echo Max is $max

echo Min is $min


4、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

(1) 升序排列

[root@CentOS-8 ~]# cat shengxu.sh

#!/bin/bash

while :

do

    declare -a NUMS

    read -p "请输入一个数字( e 结束输入,q 退出程序 ):" N

    if [ $N == "q" ];then

        break

    elif [ $N == "e" ];then

        L=${#NUMS[*]}

        if [ $L == 0 ];then

            echo 没有数字。

        elif [ $L == 1 ];then

            echo 只有一个数字,无需排序。

        else

            for i in `seq $[L-1]`;do

                for j in `seq $i $[L-1]`;do

                    MIN=${NUMS[$i-1]}

                    if [ $MIN -gt ${NUMS[$j]} ];then

                        NUMS[$i-1]=${NUMS[$j]}

                        NUMS[$j]=$MIN

                    fi

                done

            done

            echo 从小到大排序:${NUMS[*]}

            break

        fi

    elif [[ $N =~ ^[0-9]+$ ]];then

        NUMS[$i]=$N

        echo 已输入数字:${NUMS[*]}

        echo 个数: ${#NUMS[*]}

        let i++

    else

        echo "您输入的不是数字,请重新输入。"

        continue

    fi

done

(2) 降序排列

[root@CentOS-8 ~]# cat jiangxu.sh

#!/bin/bash

while :

do

    declare -a NUMS

    read -p "请输入一个数字( e 结束输入,q 退出程序 ):" N

    if [ $N == "q" ];then

        break

    elif [ $N == "e" ];then

        L=${#NUMS[*]}

        if [ $L == 0 ];then

            echo 没有数字。

        elif [ $L == 1 ];then

            echo 只有一个数字,无需排序。

        else

            for i in `seq $[L-1]`;do

                for j in `seq $i $[L-1]`;do

                    MAX=${NUMS[$i-1]}

                    if [ $MAX -lt ${NUMS[$j]} ];then

                        NUMS[$i-1]=${NUMS[$j]}

                        NUMS[$j]=$MAX

                    fi

                done

            done

            echo 从大到小排序:${NUMS[*]}

            break

        fi

    elif [[ $N =~ ^[0-9]+$ ]];then

        NUMS[$i]=$N

        echo 已输入数字:${NUMS[*]}

        echo 个数: ${#NUMS[*]}

        let i++

    else

        echo "您输入的不是数字,请重新输入。"

        continue

    fi

done

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容