Início > Utilitários > Script de Backup – Vigor 3300/2910

Script de Backup – Vigor 3300/2910

Recentemente começei a trabalhar com equipamentos da Draytek e devido a necessidade de automatizar o backup, criei dois scripts para realizar a tarefa.

Basta alterar as variáveis ADDR*, USER*, PASS* e PORT e o script estará pronto para ser executado.

Vigor 2910

<pre>#!/bin/sh
# Author: @santanamobile
# Backup Script for Vigor 2910
ADDR2910="192.168.0.254 192.168.90.254 192.168.91.254"
DATA=`date +"%Y%m%d"`
TIME=`date +"%H%M%S"`
PORT="8080"
TIMESTAMP="${DATA}${TIME}"
USER2910="sysop"
PASS="897228d5a9bbd2e5a343db1392512c59"
BACKUPDIR="/backup/router/"
if [ ! -d ${BACKUPDIR} ]; then
        mkdir -p ${BACKUPDIR}
fi;
echo "--------------------------------------------------"
for IP in ${ADDR2910}; do
        URL="http://${IP}:${PORT}/V2910_${DATA}.cfg"
        ARQ="${BACKUPDIR}${TIMESTAMP}-vigor.${IP}.cfg"
        echo -n "Equipamento ${IP}: "
        wget -q --user=${USER2910} --password=${PASS} -O ${ARQ} ${URL}
        echo "ok"
done;
echo "--------------------------------------------------"

Vigor 3300

#!/bin/sh
# Author: @santanamobile
# Backup Script for Vigor 3300
ADDR3300="192.168.50.254 192.168.80.254 192.168.81.254"
DATA=`date +"%Y%m%d"`
TIME=`date +"%H%M%S"`
PORT="8080"
TIMESTAMP="${DATA}${TIME}"
USER3300="sysop"
PASS="3682cb760bd6b784130e750ef833e680"
BACKUPDIR="/backup/router/"
if [ ! -d ${BACKUPDIR} ]; then
        mkdir -p ${BACKUPDIR}
fi;
echo "--------------------------------------------------"
for IP in ${ADDR3300}; do
        URL="http://${IP}:${PORT}/cgi-bin/mainfunction.cgi?set=download_cli_configuration"
        ARQ="${BACKUPDIR}${TIMESTAMP}-vigor.${IP}.cfg"
        echo -n "Equipamento ${IP}: "
        wget -q --user=${USER3300} --password=${PASS} -O ${ARQ} ${URL}
        echo "ok"
done;
echo "--------------------------------------------------"

E para quem ainda não conhece os equipamentos:
Vigor 2910
http://www.draytek.com/user/PdInfoDetail.php?Id=31
Vigor 3300
http://www.draytek.com/user/PdInfoDetail.php?Id=20

Categorias:Utilitários Tags:, ,
  1. João Daniel
    2013-12-20 às 23:19

    Valeu man .. o/

    • 2014-09-05 às 09:05

      João, os scripts estão funcionando bem?

  2. Suporte TI
    2014-09-04 às 16:26

    Caro santana, obrigado pela dica porém, preciso realizar backup de outros modelos. Como posso fazer isto ?
    Obrigado.

    • 2014-09-05 às 08:58

      Até então eu só testei com estes modelos, mas você chegou a testar algum dos meus scripts?
      Eu construí estes scripts a partir do fonte HTML da opção de backup.
      —————————–
      function onBackup()
      {
      var now=new Date();
      var yy,mm,dd,date;
      yy=now.getFullYear().toString();
      mm=(now.getMonth()+1).toString();
      dd=now.getDate().toString();
      if(mm.length==1)mm=”0″+mm;
      if(dd.length==1)dd=”0″+dd;
      date=yy+mm+dd;
      sFwNameLeading=sFwNameLeading.replace(/_$/,””);
      var myUrl=’../’+sFwNameLeading+”_”+date+’.cfg’;
      document.location=myUrl;
      }
      —————————–
      O que, nos modelos 2910, dá em:
      http://ip:porta/V2910_$DATA.cfg

      Qual modelo utiliza?

  3. Suporte TI
    2014-09-05 às 11:58

    Santana, obrigado pelo retorno.
    Os modelos utilizados são 2920, AP 800, 3900.
    Fiz testes nos scripts acima e funcionam nos modelos especificados porém, gostaria de saber onde consigo as informações necessárias onde posso alterar no script para personalizá-lo a fim de utilizar em outros modelos também.
    Obrigado.

    • 2014-09-05 às 12:06

      Certo, compare o fonte HTML dos outros equipamentos, se não for muito extenso cole um trecho aqui nos comentários para analisarmos.
      Não encontrei nenhuma documentação a respeito, fiz tudo a partir dos fontes da página.

  4. Suporte TI
    2014-09-05 às 13:08

    Este abaixo é do 2920.
    function onBackup()
    {
    var now=new Date();
    var yy,mm,dd,date;
    yy=now.getFullYear().toString();
    mm=(now.getMonth()+1).toString();
    dd=now.getDate().toString();
    if(mm.length==1)mm=”0″+mm;
    if(dd.length==1)dd=”0″+dd;
    date=yy+mm+dd;
    sFwNameLeading=sFwNameLeading.replace(/_$/,””);
    var myUrl=’../’+sFwNameLeading+”_”+date+’.cfg’;
    document.location=myUrl;
    }
    Você precisa desta informação? Seria o fonte ao inspecionar o elemento do botão “Backup”?Se sim, onde e como posso adicionar ao script?

    • 2014-09-05 às 13:21

      Estas funções são idênticas a do 2910.
      Basta usar o mesmo script para fazer o backup do 2920.

  5. Suporte TI
    2014-09-05 às 14:40

    Após execução do script, é realizado download das informações abaixo.
    Vigor Login Page function TR(str){return str;}
    td.userpwd {
    color: #000000;
    font-family : Verdana, Arial, Helvetica, sans-serif;
    font-size : 14px;
    font-weight: bold;
    }
    td.errmsg {
    color : red;
    font-family : Verdana, Arial, Helvetica, sans-serif;
    font-size : 12px;
    }
    td.copyright {
    color: #FFFFFF;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: normal;
    }
    input.userpwd {
    width: 160px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    }
    input.login {
    color: #FFFFFF;
    width: 82px;
    height: 25px;
    padding: 0 .38em .22em .38em;
    background: #004488 url(images/login1.gif) scroll 0;
    border: 0px #004488 solid;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-style: normal;
    font-weight: bold;
    font-size: 14px;
    cursor: pointer;
    }
    Router LoginUsernamePasswordCopyright©, DrayTek Corp. All Rights Reserved.Welcome MessageThis welcome message is displayed in the Login page of the router. Replace this text with your own message. The welcome message can be written in HTML so lists such as this one can be created Other markup tags such as p, font or img can be usedvar sUser_mgt_End=”;var form_num=2; if(sUser_mgt_End==””)form_num+=5; for(i=0;i<form_num;i++){document.write("”);}var isNav=(navigator.appName.indexOf(“Netscape”)!=-1);var isIE=(navigator.appName.indexOf(“Microsoft”)!=-1);var isOpr=(navigator.appName.indexOf(“Opera”)!=-1);var f=document.frm1;var iFrmLgErr=1;var iCustomLoginFlag=’0′;var CUST_LOGIN_ENABLE=(1<<3);var src_ip;var target_url;var mode;var fw_set;var fw_rule;initParameter();initPage();ClearCookies();function showElmtByClass(_doc,_tag,_el){var doc=_doc;var tag=_tag;var el=_el;if(doc.getElementsByTagName){var nodes=doc.getElementsByTagName(tag);var max=nodes.length;for(var i=0;i<max;i++){var node=nodes.item(i);if(node.className==el){node.style.display="";}}}}function initPage(){if((iCustomLoginFlag&CUST_LOGIN_ENABLE)==CUST_LOGIN_ENABLE){showElmtByClass(document,"tr","CustomLogin");showElmtByClass(document,"table","CustomLogin");} if(self!=top)top.location="weblogin.htm";f.sUserName.focus();if(sUser_mgt_End==""){if(mode){switch(mode){case 3: if(iFrmLgErr==4){errmsg.innerHTML=TR("User Mode is off now.");}else{errmsg.innerHTML="The username or password you entered is incorrect.";}break;case 4: errmsg.innerHTML="Reach the maximum login number. Try another user account.";break;case 5: errmsg.innerHTML="No available buffer now. Please contact with your administrator";break;case 6: errmsg.innerHTML="The username or password you entered is incorrect.";break;case 7:errmsg.innerHTML="User account is not enabled now.";break;case 8:errmsg.innerHTML="You aren't allowed to access internet (out of schedule).";break;case 9:errmsg.innerHTML="User login denied from http protocol. Please contact with your administrator";break;case 10:errmsg.innerHTML="The user ran out of time quota.";break;case 11:errmsg.innerHTML="The user ran out of data quota.";break;case 12:errmsg.innerHTML="Wrong user account. Please contact with your administrator.";break;default:if(iFrmLgErr==2)errmsg.innerHTML="The username or password you entered is incorrect.";break;}}else if(iFrmLgErr==2){errmsg.innerHTML="The username or password you entered is incorrect.";}else if(iFrmLgErr==4){errmsg.innerHTML=TR("User Mode is off now.");}}else if(iFrmLgErr==2){errmsg.innerHTML=TR("The username or password you entered is incorrect.");}else if(iFrmLgErr==4){errmsg.innerHTML=TR("User Mode is off now.");} for(var d=0;d<document.forms.length;d++){ for(var e=0;e>2;enc2=((chr1&3)<>4);enc3=((chr2&15)<>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}outstr=outstr+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);chr1=chr2=chr3=””;enc1=enc2=enc3=enc4=””;}while(i<instr.length);return outstr;}function submitPara(){var frmSub=document.frmSub;frmSub.method="post";frmSub.action="cgi-bin/wlogin.cgi";frmSub[0].name="aa";frmSub[0].value=encode(f.sUserName.value);frmSub[1].name="ab";frmSub[1].value=encode(f.sSysPass.value); if(sUser_mgt_End==""&&mode!=0){frmSub[2].name="src_ip";frmSub[2].value=src_ip;frmSub[3].name="target_url";frmSub[3].value=target_url;frmSub[4].name="mode";frmSub[4].value=mode;frmSub[5].name="fw_set";frmSub[5].value=fw_set;frmSub[6].name="fw_rule";frmSub[6].value=fw_rule;}frmSub.submit();}function handler(_e){var e=_e,elmt,type;if(isNav){elmt=e.target;type=e.type;keycode=e.which;}if(isIE||isOpr){e=window.event;elmt=e.srcElement;type=e.type;keycode=e.keyCode;} if(isIE){if(elmt.type=="text")e.cancelBubble=false;else e.cancelBubble=true;}if(elmt==f.btnOk&&type=="click"){submitPara();}if(elmt!=f.btnOk&&type=="keydown"){if(keycode==13){ e.returnValue=false;submitPara();}}} function addhandlers(_o){var o=_o;o.onclick=handler;o.onkeydown=handler;}function ClearCookies(){var temp=document.cookie.split(";");var ts;for(var i=0;;i++){if(!temp[i])break;ts=temp[i].split("=")[0];DeleteCookie(ts);}}function GetCookieVal(offset){var endstr=document.cookie.indexOf(";",offset);if(endstr==-1)endstr=document.cookie.length;return unescape(document.cookie.substring(offset,endstr));}function GetCookie(name){var arg=name+"=";var alen=arg.length;var clen=document.cookie.length;var i=0;while(i<clen){var j=i+alen;if(document.cookie.substring(i,j)==arg)return GetCookieVal(j);i=document.cookie.indexOf(" ",i)+1;if(i==0)break;}return null;}function DeleteCookie(name){var exp=new Date();exp.setTime(exp.getTime()-1);var cval=GetCookie(name);document.cookie=name+"="+cval+"; expires="+exp.toGMTString();}

    Você pode me ajudar? rsrsrsrs

    • 2014-09-05 às 15:53

      Pois é, tente usar o mesmo script do 2920.

  6. Suporte TI
    2014-09-05 às 18:09

    Então, eu utilizei o do 2910 onde as alterações realizadas foram:
    ADDR2920, USERadmin, PASS12345678 e PORT8080 porém sem sucesso e aparece o mesmo erro .

    • 2014-09-06 às 09:51

      Mas o seu equipamento é acessível via porta 8080 ou apenas 80?

  7. Suporte TI
    2014-09-07 às 11:39

    Via porta 8080 mesmo. Alguma sugestão ?
    Desde já obrigado.

    • 2014-09-08 às 09:08

      Tente executar o comando abaixo com as devidas alterações.
      wget -q –user=admin –password=12345678 -O backup.cfg http://192.168.x.x:8080/V2920_20140908.cfg
      Reli o script e constatei que o modelo do equipamento faz parte do nome do arquivo de backup.

  8. Suporte TI
    2014-09-08 às 12:00

    Santana, Bom Dia !
    Infelizmente mesmo com as alterações não funcionou. Ele faz download das informações que eu havia enviado anteriormente menos das configurações.
    Acredito que estou fazendo algo de errado. Você já havia testado neste modelo ?
    Desde já muito obrigado pela presteza.

    • 2014-09-08 às 14:47

      Salve! Eu só utilizei os equipamentos 3300 e 2910, e que atualmente não possuo acesso aos mesmos.

  1. No trackbacks yet.

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: