2017-03-01 17:06:22 fxy832231 阅读数 611
  • python全栈习题课

    【程序员工具基础】图灵系统使用,Linux初步,DevOps 【Python基础语法】函数,OOP编程,调试技术 【Python高级语法】函数式编程,多线程,携程异步,IO编程,正则 【Web 编程基础 】Socket编程,WSGI,HTTP协议实战框架项目 【主流数据库】关系型非关系性三大主流数据库,不多说 【WEB实战开发框架】Flask,Django,twisted,tornado 【自动化测试】测试工程,测试脚本,自动化测试框架 【自动化运维】自动化部署工具,服务自动化搭建 【爬虫与反爬虫】ssl,js加密,ajax处理,模拟器selemium,验证码识别,Scrapy框架使用 【计算机数学基础】线性代数,微积分,统计概率,Python数学模块 【数据分析·处理】数据清洗,NLP,回归,贝叶斯,灰度预测,聚类,数据分析实战项目 【人工智能(AI)】回归,正则,决策树,贝叶斯,SVM,聚类,关联规则,神经网络,深度学习,手写字识别,猫狗分类,情感分析,推荐系统,目标检测,机器翻译

    531 人正在学习 去看看 刘英
#!/bin/bash

#设置全局变量
dev_name=""
ip=""

# 输出错误信息并且返回错误码 结束脚本执行
exit_str() {
    echo $1
    exit $2
}

# 判断是否有管理员的权限
is_root() {
    test $UID -ne 0 && exit_str "请使用sudo运行此脚本!" 1
}

# 获取网卡设备名
get_dev_name() {
    dev_name=$(ifconfig | egrep 'enp|eth' | cut -d\  -f1)
    test -z "$dev_name" && exit_str "网卡设备找不到, 请检查网卡是否启动!" 2
    dev_name=${dev_name%:*}
    test "x$1" = "xout" && exit_str $dev_name 0
}

# 查看网线是否连通 mii-tool
is_dev_ok() {
    test -z "$ip" || return
    test -z "$dev_name" && get_dev_name
    mii-tool $dev_name 2> /dev/null | grep 'link ok' &> /dev/null \
            || exit_str "$dev_name: 网线没有插好,请检测!" 3
}

# 查看本机IP地址
get_ip() {
    test -z "$ip" || return
    test -z $dev_name && get_dev_name
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US:en
    local ipMsg=$(ifconfig $dev_name)
    ip=${ipMsg#*addr:}
    ip=${ip%% Bcast:*}
    test -z "$ip" && exit_str "$dev_name: 没有设置本机IP地址!" 4
    test "x$1" = "xout" && exit_str $ip 0
}

# ping操作 需要传递要ping的参数
mping() {
    test -z "$1" && return 1
    ping -c 1 $1 &> /dev/null && return 0 || return 1
}

# 主函数,全程检测网络情况
main() {
    is_root
    is_dev_ok
    get_ip
    # ping网关
    gwip=${ip%.*}.1
    mping $gwip || exit_str "$gwip: 网关ping不通!" 5
    # ping域名解析服务器(DNS) 223.5.5.5 / 8.8.8.8
    mping 223.5.5.5 || exit_str "请检查路由表是否设置默认网关!" 6
    # ping域名(百度)
    mping www.baidu.com || exit_str "请检查是否正确指定DNS解析服务器!" 7
    echo "你的网络没有任何问题!"
}

# 让程序接受参数,根据不同的参数做不同功能
# ping子命令  调用mping
# ip子命令    调用get_ip
# dev子命令   调用get_dev_name
run_command() {
    case "$1" in
        ping)
            test -z "$2" && exit_str "ping子命令必须指定目标!" 100
            mping $2
            exit $?
            ;;
        ip)
            test -z "$2" && get_ip out
            ip=$2
            main
            ;;
        dev)
            # 如果有第二个参数代表设置设备名
            test -z "$2" && get_dev_name out
            dev_name=$2
            main
            ;;
        *)
            echo "暂不支持 $1 子命令功能!"
            ;;
    esac
}

# 根据参数运行主函数
test -z "$1" && main  || run_command $@
2016-11-01 15:26:21 bianyuke 阅读数 3307
  • python全栈习题课

    【程序员工具基础】图灵系统使用,Linux初步,DevOps 【Python基础语法】函数,OOP编程,调试技术 【Python高级语法】函数式编程,多线程,携程异步,IO编程,正则 【Web 编程基础 】Socket编程,WSGI,HTTP协议实战框架项目 【主流数据库】关系型非关系性三大主流数据库,不多说 【WEB实战开发框架】Flask,Django,twisted,tornado 【自动化测试】测试工程,测试脚本,自动化测试框架 【自动化运维】自动化部署工具,服务自动化搭建 【爬虫与反爬虫】ssl,js加密,ajax处理,模拟器selemium,验证码识别,Scrapy框架使用 【计算机数学基础】线性代数,微积分,统计概率,Python数学模块 【数据分析·处理】数据清洗,NLP,回归,贝叶斯,灰度预测,聚类,数据分析实战项目 【人工智能(AI)】回归,正则,决策树,贝叶斯,SVM,聚类,关联规则,神经网络,深度学习,手写字识别,猫狗分类,情感分析,推荐系统,目标检测,机器翻译

    531 人正在学习 去看看 刘英

创建一个脚本用来检测网络是否断线

#!/bin/sh

#设置两个可以ping通的IP地址
IP1="202.108.22.5"
IP2="119.75.218.77"

while true
do
       ping -s 1 -c 1 $IP1             #去PING第一个IP
       if [ "$?" != "0" ]
       then
            echo "ping IP1 ERROR"
            ping -s 1 -c 2 $IP2        #去PING第二个IP
            if [ "$?" != "0" ]
            then
                echo "ping IP2 ERROR"
            else
                echo "ping IP2 SUCCESS"
            fi
       else
            echo "ping IP1 ERROR"
            sleep 5                     #设置多长时间去PING一次
       fi
done
2019-08-16 21:29:59 qq_34827674 阅读数 781
  • python全栈习题课

    【程序员工具基础】图灵系统使用,Linux初步,DevOps 【Python基础语法】函数,OOP编程,调试技术 【Python高级语法】函数式编程,多线程,携程异步,IO编程,正则 【Web 编程基础 】Socket编程,WSGI,HTTP协议实战框架项目 【主流数据库】关系型非关系性三大主流数据库,不多说 【WEB实战开发框架】Flask,Django,twisted,tornado 【自动化测试】测试工程,测试脚本,自动化测试框架 【自动化运维】自动化部署工具,服务自动化搭建 【爬虫与反爬虫】ssl,js加密,ajax处理,模拟器selemium,验证码识别,Scrapy框架使用 【计算机数学基础】线性代数,微积分,统计概率,Python数学模块 【数据分析·处理】数据清洗,NLP,回归,贝叶斯,灰度预测,聚类,数据分析实战项目 【人工智能(AI)】回归,正则,决策树,贝叶斯,SVM,聚类,关联规则,神经网络,深度学习,手写字识别,猫狗分类,情感分析,推荐系统,目标检测,机器翻译

    531 人正在学习 去看看 刘英

微信公众号:「小林coding」
用简洁的方式,分享编程小知识。

Linux shell脚本判断网络畅通

介绍

在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态

我们可以通过curl来访问 www.baidu.com,从而判断服务器网络状态是否可以畅通的

网络状态判断

#!/bin/bash

#检测网络链接畅通
function network()
{
    #超时时间
    local timeout=1

    #目标网站
    local target=www.baidu.com

    #获取响应状态码
    local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1`

    if [ "x$ret_code" = "x200" ]; then
        #网络畅通
        return 1
    else
        #网络不畅通
        return 0
    fi

    return 0
}

network
if [ $? -eq 0 ];then
	echo "网络不畅通,请检查网络设置!"
	exit -1
fi

echo "网络畅通,你可以上网冲浪!"

exit 0

网络状态正常的脚本执行结果:
网络畅通,你可以上网冲浪!

网络状态不正常的脚本执行结果:
网络不畅通,请检查网络设置!


微信公众号:小林coding
用简洁的方式,分享编程小知识。

2020-01-19 21:32:30 qq_37077262 阅读数 58
  • python全栈习题课

    【程序员工具基础】图灵系统使用,Linux初步,DevOps 【Python基础语法】函数,OOP编程,调试技术 【Python高级语法】函数式编程,多线程,携程异步,IO编程,正则 【Web 编程基础 】Socket编程,WSGI,HTTP协议实战框架项目 【主流数据库】关系型非关系性三大主流数据库,不多说 【WEB实战开发框架】Flask,Django,twisted,tornado 【自动化测试】测试工程,测试脚本,自动化测试框架 【自动化运维】自动化部署工具,服务自动化搭建 【爬虫与反爬虫】ssl,js加密,ajax处理,模拟器selemium,验证码识别,Scrapy框架使用 【计算机数学基础】线性代数,微积分,统计概率,Python数学模块 【数据分析·处理】数据清洗,NLP,回归,贝叶斯,灰度预测,聚类,数据分析实战项目 【人工智能(AI)】回归,正则,决策树,贝叶斯,SVM,聚类,关联规则,神经网络,深度学习,手写字识别,猫狗分类,情感分析,推荐系统,目标检测,机器翻译

    531 人正在学习 去看看 刘英

脚本应用思路

  1. 确定命令操作(设计并执行任务)
  2. 编写Shell脚本(组织任务过程)
  3. 设置计划任务(控制时间、调用任务脚本)

 

设置为每天的五点半执行脚本

 

编写脚本

 

执行脚本


 

脚本作业

 

1.  网卡IP设置脚本(2个脚本)

直接在脚本中设定信息

通过键盘输入所需信息

 

2. 监测磁盘剩余空间(根分区),低于20%,发出报警信息(通过屏幕输出警告信息)

 

3. 监测内存剩余空间,低于20%,发出报警信息(通过屏幕输出警告信息)

如果100不用a来做expr就不能计算

 

4. 获取网络中所有主机的MAC地址,把MAC地址输出到一个文件中(mac-list.txt)

 

5. 检测网络中存活主机,将存活主机的IP地址输出到一个文件中(iplist.txt)

没有更多推荐了,返回首页