问题:因公司会不定时购买大量VPS拨号主机,在部署环境的时候,首先要配置拨号,传统的拨号设置(pppoe-setup)配置比较繁琐,故写这个脚本方便拨号配置。

#!/bin/bash

ppp_user=$
password=$
eth=$

[ -z "$ppp_user" ]&&{
echo "没有指定拨号账号..."
echo "示例: $0 user password ethx"
exit
}

[ -z "$password" ]&&{
echo "没有指定拨号密码..."
echo "示例: $0 user password ethx"
exit
}

[ -z "$eth" ]&&{
echo "没有指定拨号网卡..."
echo "示例: $0 user password ethx"
exit
}

echo "请等待,正在进行配置..."

ppps=`ps -ef|grep ppp0|grep -v "grep"|wc -l`
 ];then
    ifdown ppp0;
fi

if [ -d "/etc/sysconfig/network-scripts/ifcfg-ppp0" ];then
    echo "" > /etc/sysconfig/network-scripts/ifcfg-ppp0
else
    touch /etc/sysconfig/network-scripts/ifcfg-ppp0
fi

echo "USERCTL=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "BOOTPROTO=dialup" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "NAME=DSLppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEVICE=ppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "TYPE=xDSL" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PIDFILE=/var/run/pppoe-adsl.pid" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "FIREWALL=NONE" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PING=." >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PPPOE_TIMEOUT=80" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "LCP_FAILURE=3" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "LCP_INTERVAL=20" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CLAMPMSS=1412" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CONNECT_POLL=6" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CONNECT_TIMEOUT=60" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "SYNCHRONOUS=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "ETH=$eth" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PROVIDER=DSLppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "USER=$ppp_user" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PEERDNS=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEMAND=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0

line1=`cat /etc/ppp/chap-secrets|grep "*"|wc -l`

 ];then
    echo "\"$ppp_user\"    *    \"$password\"" >  /etc/ppp/chap-secrets
else
    user=`cat /etc/ppp/chap-secrets|grep "*"|awk '{print$1}'`
    passwd=`cat /etc/ppp/chap-secrets|grep "*"|awk '{print$3}'`
    sed -i "s/$user/\"$ppp_user\"/g" /etc/ppp/chap-secrets
    sed -i "s/$passwd/\"$password\"/g" /etc/ppp/chap-secrets
fi

line2=`cat /etc/ppp/pap-secrets|grep "*"|wc -l`

 ];then
        echo "\"$ppp_user\"     *       \"$password\"" >> /etc/ppp/pap-secrets
else
        user=`cat /etc/ppp/pap-secrets|grep "*"|awk '{print$1}'`
        passwd=`cat /etc/ppp/pap-secrets|grep "*"|awk '{print$3}'`
        sed -i "s/$user/\"$ppp_user\"/g" /etc/ppp/pap-secrets
        sed -i "s/$passwd/\"$password\"/g" /etc/ppp/pap-secrets
fi

ck=`cat /sbin/ifup|grep "routeok"|wc -l`

 ];then
        sed -i "s/exec \${OTHERSCRIPT} \${CONFIG} \$2//g" /sbin/ifup

        echo "#route" >> /sbin/ifup
        echo "{" >> /sbin/ifup
        echo "sleep 10" >> /sbin/ifup
        echo "route_ip=\`/sbin/pppoe-status|grep \"inet\"|awk '{print\$4}'|awk -F\/ '{print\$1}'\`" >> /sbin/ifup
        echo "len=\`echo \$route_ip|wc -c\`" >> /sbin/ifup
        echo "if [ \$len -gt 10 ];then" >> /sbin/ifup
        echo "        route add default gw \$route_ip dev ppp0" >> /sbin/ifup
        echo "fi" >> /sbin/ifup
        echo "}&" >> /sbin/ifup
        echo "" >> /sbin/ifup
        echo "exec \${OTHERSCRIPT} \${CONFIG} \$2" >> /sbin/ifup
        echo "" >> /sbin/ifup
        echo "#routeok" >> /sbin/ifup
fi

ifup ppp0
 ];then
    echo "ifup ok"
else
    echo "配置失败,请重新配置,比如重新选择网卡或者确认账号密码?"
fi
[root@localhost ~]# ./ppp_auto.sh   eth0
请等待,正在进行配置...
RTNETLINK answers: File exists
ifup ok
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (() bytes of data.
 bytes  ttl= time=17.1 ms
 bytes  ttl= time=12.9 ms
 bytes  ttl= time=18.5 ms
 [root@localhost ~]# ./ppp_auto.sh
 没有指定拨号密码...
 示例: ./ppp_auto.sh user password ethx
[root@localhost ~]# ./ppp_auto.sh  727267ss eth0
请等待,正在进行配置...
/sbin/adsl-start: line :  Terminated              $CONNECT >&
RTNETLINK answers: File exists
配置失败,请重新配置,比如重新选择网卡或者确认账号密码?

VPS拨号主机自动拨号脚本(centos7)的更多相关文章

  1. 利用.pbk来实现ADSL开机自动拨号

    当你新建拨号连接或者VPN连接之后在你的电脑里会创建一个.pbk的文件 这个.pbk的文件可以说是一个集合,将你电脑的所有连接都保存在一起. 同时你还可以将此连接复制起来传给其他人. 系统默认的.pb ...

  2. 如何实现ADSL宽带用户开机自动拨号与定时拨号

    在宽带拨号网络的环境下,要通过手动拨号认证才能上网.下面给大家介绍怎么设置开机自动拨号上网以及定时拨号上网. 这也是为一个叫CHY的2B准备的技术套餐,不需要用到网上说的自动拨号软件,只要在主机上设置 ...

  3. 深圳电信光纤用户必备:简单破解中兴ZXA10 F460光电猫,实现WIFI和自动拨号功能

    最近搬家,ADSL转成光纤宽带,下载速度非常给力.原来的ADSL路由器派不上用场,电信的安装人员也给开通了wifi功能,只是wifi无法上网,而且拨号一定需要用电脑连网线进行拨号.以前是直接把拨号账户 ...

  4. WinCE下GPRS自动拨号软件(GPRS AutoDial)

    之前在WinCE下调试USB的3G Modem时,写过一个拨号助手RASManager,基本能用.后来车机卖到俄罗斯去,客户老M提供了一个更好的GPRS自动拨号软件GPRS AutoDial,功能完善 ...

  5. html:唤起手机qq开始对话 & 自动拨号

    <a href="mqqwpa://im/chat?chat_type=wpa&uin=[qq号]&version=1">XXX</a> 另 ...

  6. PC-ADSL开机自动拨号方法

    方法一:把adsl拨号的快捷方式放到“开始”菜单中“所有程序”中的“启动”中. 再到“控制面板”中的“网络连接”中找到你用的拨号连接,鼠标右键点击选择“属性”.然后,在窗口上部选择“选项”,把“拨号选 ...

  7. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  8. 企业IT管理员IE11升级指南【15】—— 代理自动配置脚本

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  9. 常用的主机监控Shell脚本

    最近时不时有朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能 ...

随机推荐

  1. Scalaz(21)-类型例证:Liskov and Leibniz - type evidence

    Leskov,Leibniz,别扭的名字,是什么地干活?碰巧从scalaz源代码里发现了这么个东西:scalaz/BindSyntax.scala /** Wraps a value `self` a ...

  2. Node.js的UnitTest单元测试

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...

  3. 关于lr调用jar在vuser中可以运行,但是controller中却报错的问题

    如题,错误如下:javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilder ...

  4. Spring IoC源码解读——谈谈bean的几种状态

    阅读Spring IoC部分源码有一段时间了,经过不断的单步调试和参阅资料,对Spring容器中bean管理有了一定的了解.这里从bean的几个状态的角度出发,研究下IoC容器. 一.原材料 Xml中 ...

  5. Dense.js - 响应式的视网膜(Rtina)图像支持

    Dense 是一款 jQuery 插件,它提供一个简单的方法为设备提供精密像素比的图像,为你的网站带来视网膜支持,清除模糊,图像更清晰.通过简单地包括 jQuery 插件的页面上,就能实现响应式的视网 ...

  6. mongodb系列3 mongo mongoskin 连接以及连接数的问题进阶

    1)使用mongodb连接mongo var mongo = require('mongodb'), //引入mongodb dbHost = '127.0.0.1', dbPort = 27017; ...

  7. SubSonic2.2框架的使用方法和配置说明

    网上.net ORM框架也不少,但是我感觉这个框架配置很简单的,前几年貌似用的人很多,现在好像用得比较少了,随着它官方的升级现在已经到3.0了, 并且采用T4 模板生成的方式,代码量好像减少了.不过我 ...

  8. HTML <a> 标签

    一,定义和用法 所有浏览器都支持 <a> 标签. <a> 标签定义超链接,用于从一张页面链接到另一张页面. <a> 元素最重要的属性是 href 属性,它指示链接的 ...

  9. sharepoint app 开发环境配置

    1. 配置脚本如下: .通过打开命令提示符并键入以下命令来确保 spadmin 和 sptimer 服务正在运行. net start spadminv4 net start sptimerv4 .作 ...

  10. Understanding theory (1)

    Source: verysmartbrothas.com It has been confusing since my first day as a PhD student about theory ...