Skip to content

giz33/ShellMikrotik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

ShellMikrotik

SSH +ShellScript to manage Mikrotik equipments

#!/bin/bash

data=$(date +%d-%m-%Y)

mkdir -p /home/deise/Sistema/Backup/rbs/$data mkdir -p /home/deise/Sistema/Lista-Equipamentos/rbs

touch /home/deise/Sistema/Lista-Equipamentos//rbs/rbs.txt touch /home/deise/Sistema/Lista-Equipamentos/rbs/rbteste.txt chmod 777 -R /home/deise/Sistema/*

######################################################################################################################################################### ################################################### Area destinada as funcoes do programa ############################################################### #########################################################################################################################################################

######################################################################################################################################################### ##############################################################Funcao de controle######################################################################### #########################################################################################################################################################

func_main(){

clear

data=$(date +%d'/'%m'/'%Y)

echo "Bem vindo " - $data

echo "#####-MENU PRINCIPAL-#####" echo "" echo "[ 1 ] - Adicionar um novo Host" echo "[ 2 ] - Adicionar usuario" echo "[ 3 ] - Backup de Hosts" echo "[ 4 ] - Comandos individuais" echo "[ 0 ] - SAIR" read principal

case $principal in

func_adiciona_host

;;

func_adc_user

;;

func_backup

;;

func_comando_solo

;;

clear; echo "" ; echo "Finalizando Programa" ; sleep 1; clear; ;;

esac }

func_adiciona_host(){

clear

echo "##-FUNCAO ADICIONAR HOST-##" echo "[ 1 ] - Adicionar Host" echo "[ 0 ] - VOLTAR" read destino

case $destino in

clear echo "Digite o HOST que deseja adicionar" read host

##Adiciona o host na lista## echo "$host" >> /home/deise/Sistema/Lista-Equipamentos/rbs/rbs.txt

echo "Host adicionado!"

echo "Aperte qualquer botao para voltar ao menu anterior" read func_adiciona_host ;;

func_main

;; esac

}

func_adc_user(){ clear echo "#####-MENU ADC USER-#####" echo "" echo "[ 1 ] - Adicionar usuario a todos Hosts" echo "[ 2 ] - Adicionar usuario a um ou mais hosts" echo "[ 0 ] - Voltar" read adicionar

case $adicionar in

echo "Digite o usuario que deseja adicionar" read usuarionovo echo "Digite a senha que deseja " read passwordnovo echo "Digite um usuario existente para criar o cadastro" read userold for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/rbs.txt); do ssh -p 8462 $userold@$i /user add name=$usuarionovo password=$passwordnovo group=full

echo "Utilize o comando put id_dsa.pub" sftp -P 8462 $usuarionovo@$i

ssh -p 8462 $usuarionovo@$i /user ssh-keys import public-key-file=id_dsa.pub user=$usuarionovo

echo "Usuario $usuarionovo adicionado a $i com sucesso" done echo "Aperte qualquer botao para voltar ao menu anterior" read func_adc_user ;;

echo "Quantos hosts receberao o comando?" read quantidade echo "" > /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt

for ((x=0; x < $quantidade; x++));do echo "Digite a RB que deseja executar o comando" read routerboard echo "$routerboard" >> /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt done

echo "Digite o usuario que deseja adicionar" read usuarionovo echo "Digite a senha que deseja " read passwordnovo echo "Digite um usuario existente para criar o cadastro" read userold

for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt); do ssh -p 8462 $userold@$i /user add name=$usuarionovo password=$passwordnovo group=full

echo "Utilize o comando put id_dsa.pub" sftp -P 8462 $usuarionovo@$i

##Associa a chave SSH ao usuario## ssh -p 8462 $usuarionovo@$i /user ssh-keys import public-key-file=id_dsa.pub user=$usuarionovo echo "Usuario $usuarionovo adicionado a $i com sucesso" done

echo "Aperte qualquer botao para voltar ao menu anterior" read func_adc_user ;;

func_main

;; esac }

dia=$(date +%d-%m-%Y)

func_backup(){

clear

echo "BACKUP de Equipamentos da Lista" echo "" echo "[ 1 ] - Iniciar Backup" echo "[ 2 ] - VOLTAR" read opcao

case $opcao in

for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/rbs.txt); do ssh -p 8462 backup@$i /system backup save name=$i.backup dont-encrypt=yes done

for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/rbs.txt); do sftp -P 8462 backup@$i:$i.backup done

echo "$dia" mv /home/deise/Sistema/*.backup /home/deise/Sistema/Backup/rbs/$dia

echo "O BACKUP DAS TRASMISSORAS FOI GERADO E SALVO NA PASTA $dia"

##comando para pausar o sistema## echo "Aperte qualquer botao para voltar ao menu anterior" read

##Retorna ao menu de opçoes## func_backup

;;

func_main

;; esac

}

func_comando_solo(){

clear echo "#####-MENU COMANDOS GERAIS-#####" echo "" echo "[ 1 ] - Inserir comando para todos Hosts cadastrados" echo "[ 2 ] - Inserir comando a Host especifico ou mais de um host fora da lista" echo "[ 0 ] - Voltar" read comm

case $comm in

echo "Digite o comando desejado" read comando

for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/rbs.txt); do

ssh -p 8462 backup@$i $comando echo "Comando $comando realizado com sucesso em $i " done

##comando para pausar o sistema## echo "Aperte qualquer botao para voltar ao menu anterior" read

##Retorna ao menu de opçoes## func_main ;;

echo "Quantos hosts receberao o comando?" read quantidade echo "" > /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt

for ((x=0; x < $quantidade; x++));do echo "Digite a RB que deseja executar o comando" read routerboard echo "$routerboard" >> /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt done

echo "Digite o comando desejado" read comando2

for i in $(cat /home/deise/Sistema/Lista-Equipamentos/rbs/temporario.txt); do ssh -p 8462 backup@$routerboard $comando2 echo "Comando $comando realizado com sucesso em $i " done

echo "Aperte qualquer botao para voltar ao menu anterior" read

Retorna ao menu de opçoes# func_comando_solo ;;

func_main

;; esac }

######################################################################################################################################################### ############################################################# Corpo principal do programa ############################################################### #########################################################################################################################################################

clear

data=$(date +%d'/'%m'/'%Y)

echo "Bem vindo " - $data

echo "#####-MENU PRINCIPAL-#####" echo "" echo "[ 1 ] - Adicionar um novo Host" echo "[ 2 ] - Adicionar usuario" echo "[ 3 ] - Backup de Hosts" echo "[ 4 ] - Comandos individuais" echo "[ 0 ] - SAIR" read principal

case $principal in

func_adiciona_host

;;

func_adc_user

;;

func_backup

;;

func_comando_solo

;;

clear; echo "" ; echo "Finalizando Programa" ; sleep 1; clear; ;;

esac

About

SSH +ShellScript to manage Mikrotik equipments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published