Arquivos mensais: maio 2017

Checa se em base(diretório) de emails existe remetente e destinatário específicos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
base_dir="."
base_emails="/mnt"
remetente="user1@dominio1.com"
destinatario="user2@dominio2.com"
 
for i in $(find $base_emails -type f -iname "*.bz2")
do
 
        verify_1=$(/usr/bin/bzcat $i | grep "$destinatario" > /dev/null 2>&1 ; echo $?)
        verify_2=$(/usr/bin/bzcat $i | grep "$remetente" > /dev/null 2>&1 ; echo $?)
 
        if [ $verify_1 -eq 0 ] && [ $verify_2 -eq 0 ];then
                cp $i $base_dir/
                echo "$i [Ambos existem! Arquivo enviado para $base_dir/tmp_]/]" >> $base_dir/encontrados.log
        fi
 
        if [ $verify_1 -eq 0 ];then
                echo "$i [existe remetente $destinatario]" >> $base_dir/existe_remetente.log
        fi
 
        if [ $verify_2 -eq 0 ];then
                echo "$i [existe destinatario $remetente]" >> $base_dir/existe_destinatario.log
        fi
 
        echo "$i [analizado]" >> $base_dir/analizados.log
done
 
# Marcelo Viana
# AMDG

Plugin Nagios – Monitor Ceph

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/bash
 
osd_tree(){
    return_verify_ceph=$(ceph osd tree | grep down | awk '{print $3}')
    if [ $? -eq 0 ];then
        echo "Ceph osd_tree - Algo está errado! (OSDs Down: $(echo -n $return_verify_ceph))"
        exit 2
    else 
        echo "Ceph osd_tree - OK"
        exit 0
    fi
exit    
}
health_(){
    return_ceph_string=$(ceph health)
    return_verify_ceph=$(echo $return_ceph_string | awk '{print $1}')
    if [ $return_verify_ceph == "HEALTH_OK" ];then
        echo "Ceph health - OK"
        exit 0
    fi
    if [ $return_verify_ceph == "HEALTH_WARN" ];then
        echo "Ceph health - Algo está errado! ($return_ceph_string)"
        exit 1
    fi
    if [ $return_verify_ceph == "HEALTH_ERR" ];then
        echo "Ceph health - Algo está errado! ($return_ceph_string)"
        exit 2
    fi
exit
}
mon_stat(){
    return_ceph_string=$(ceph mon stat)
    return_verify_ceph=$(echo $return_ceph_string | grep -w "3 mons")
    if [ $? -eq 0 ];then
        echo "Ceph mon_stat - OK"
        exit 0
    else
        echo "Ceph mon_stat - Algo está errado! ($return_ceph_string)"
        exit 2
    fi
exit
}
osd_stat(){
    return_osd_stat=$(ceph osd stat)
    return_osd_stat_total=$(echo $return_osd_stat | grep osds | cut -d: -f 2-2 | awk '{print $1}')
    return_osd_stat_up=$(echo $return_osd_stat | grep osds | cut -f 3-3 -d: | awk '{print $1}')
    if [ $return_osd_stat -eq $return_osd_stat_up ];then
        echo "Ceph osd_stat - OK"
        exit 0
    else
        echo "Ceph osd_stat - Algo está errado! (total: $return_osd_stat_total, ativos: $return_osd_stat_up)"
        exit 2
    fi
exit
}
pg_stat(){
    return_verify_ceph=$(ceph pg stat | grep -w "active+clean;")
    if [ $? -eq 0 ];then
        echo "Ceph pg_stat - OK"
        exit 0
    else
        echo "Ceph pg_stat - Algo está errado! (ceph pg stat não retornou active+clean)"
        exit 2
    fi
 
 
exit 3
}
mds_stat(){
    return_verify_ceph=$(ceph mds stat | grep "up:active")
    if [ $? -eq 0 ];then
        echo "Ceph mds_stat - OK"
        exit 0
    else
        echo "Ceph mds_stat (esperava-se: up:active) - $return_verify_ceph"
        exit 2
    fi
exit
}
 
 
case $1 in
'osd_tree') osd_tree ; exit ;;
'health_') health_ ; exit ;;
'mon_stat') mon_stat ; exit ;;
'osd_stat') osd_stat ; exit ;;
'pg_stat') pg_stat ; exit ;;
'mds_stat') mds_stat ; exit ;;
*) echo "parâmetro incorreto - $1" ; exit 3 ;;
esac
 
# Marcelo Viana
# AMDG

Loadbalance FAILOVER V.5 – versão MAV-SantaClara

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/bash
 
  ### Configure as variáveis iface1,iface2,gw1,gw2 de acordo com sua rede ###
  iface1="eth2" # interface do link padrão
  gw1="200.225.193.254" #gateway do link padrão
 
  iface2="eth5" # interface do link alternativo
  gw2="192.168.30.1" #gateway do link alternativo
  ###
  #
  ### IPs usados para testar a conexão - configuração opcional ###
  testeip="198.41.0.4" # root server Brasil
  testeip2="8.8.8.8" # qualquer outro 
  ###
  #
  ttl="5"
  datai=`date +"%d/%m/%Y %H:%M:%S"`
  log="/var/log/loadbalanceFAILOVER.log"
  iptables -N LOAD_BALANCE_x
  # cada SO retorna de forma diferente o ifconfig:  
  ip_iface1=$(ifconfig $iface1 | grep -w inet | cut -d. -f 1-5 | sed -e 's/.*end.://g' -e 's/.*addr://g' -e 's/Bcast.*//g' -e 's/ //g')
  ip_iface2=$(ifconfig $iface2 | grep -w inet | cut -d. -f 1-5 | sed -e 's/.*end.://g' -e 's/.*addr://g' -e 's/Bcast.*//g' -e 's/ //g')
 
  nomeScript="loadbalanceFAILOVER.sh"
  echo "1" > /proc/sys/net/ipv4/ip_forward
  > $log
  file_ips="/mnt/data/apache2/mav.local/gateway3G.txt"
  file_modified=$(find $file_ips -cmin -2 -type f)
  ### fim da configuração das variáveis ###
 
 if [ -e $file_ips ]; then
    if [ $(cat $file_ips | wc -l) -eq 0 ]; then
        echo "preencha a lista $file_ips ao menos com 1 endereço IP"
        echo "Script parado!"
        exit
    fi  
 else
    echo "Arquivo $file_ips com os endereços IP não existe"
    exit
 fi
 
 
 gateway3G(){
    #iptables -w -t nat -I POSTROUTING -j RETURN
    for i in $(cat $file_ips)
    do
      iptables -t nat -I POSTROUTING -s $i -j SNAT --to-source $ip_iface2
      echo "ADD: $i"
    done 
    iptables -A LOAD_BALANCE_x -j LOG --log-prefix "LINK2_ATIVO_POSTROUTING"
 } 
 removeGateway3G(){
   iptables -X
   iptables -F
   iptables -t nat -X
   iptables -t nat -F
   iptables -t mangle -X
   iptables -t mangle -F
   iptables --flush
 } 
 
link2() {
 
              # Limpar regras de Firewall do Mav
              regrasMav=$(iptables-save | grep SNAT_DYNAMIC > /dev/null 2>&1 ; echo $?)
              if [ $regrasMav -eq 0 ]; then
                 removeGateway3G
              fi
              #
              # adiciona rota do link2 se não existir
              verifica_rotaAdd=$(route -n | grep $gw2 > /dev/null 2>&1 ; echo $?)
              if [ $verifica_rotaAdd -ne 0 ]; then
                 route add default gw $gw2 dev $iface2 > /dev/null 2>&1
              fi
              #
 
        # Testa link2
        teste_link2=$(ping -qc $ttl $testeip -I $iface2 > /dev/null 2>&1 ; echo $?)
        teste_link2_2=$(ping -qc $ttl $testeip2 -I $iface2 > /dev/null 2>&1 ; echo $?)
        if [ $teste_link2 -eq 0 ] || [ $teste_link2_2 -eq 0 ]; then
 
                # deleta rota do link1 se existir
                verifica_rotaDel=$(route -n | grep $gw1 > /dev/null 2>&1 ; echo $?)
                if [ $verifica_rotaDel -eq 0 ]; then
                   while route del default gw $gw1 dev $iface1 ; do :; done
                fi
                #
                #
                # adiciona regra SNAT se não existir    
                verifica_snat=$(iptables-save | grep LINK2_ATIVO_POSTROUTING > /dev/null 2>&1 ; echo $?)
                if [ $verifica_snat -ne 0 ]; then
                  gateway3G
                fi
 
                # se arquivo de ip for modificado, faz nova leitura
                if [ ! -z $file_modified ]; then
                  removeGateway3G
                  gateway3G
                  echo "Novos IPs adicionados ao SNAT" >> $log
                fi
                echo "Link2 em atividade: $ip_iface2" >> $log
                echo "Interface: $iface2" >> $log
                echo "Gateway: $gw2" >> $log
                echo "Data: $datai" >> $log
                echo "Status: Ok" >> $log
 
        else
                echo "PROBLEMA: LINK [ $gw1 ] e [ $gw2 ] estão Down!" >> $log
                echo "Aguardando nova chamada do cron para verificação..."
        fi
        # fim verificação link2
exit
}
 
link1() {
 
              # adiciona rota do link1 se não existir
              verifica_rotaAdd=$(route -n | grep $gw1 > /dev/null 2>&1 ; echo $?)
              if [ $verifica_rotaAdd -ne 0 ]; then
                 route add default gw $gw1 dev $iface1 > /dev/null 2>&1
              fi
 
         # Testa link1
        teste_link1=$(ping -qc $ttl $testeip -I $iface1 > /dev/null 2>&1 ; echo $?)
        teste_link1_1=$(ping -qc $ttl $testeip2 -I $iface1 > /dev/null 2>&1 ; echo $?)
        if [ $teste_link1 -eq 0 ] || [ $teste_link1_1 -eq 0 ]; then
 
                # deleta rota do link2 se existir
                verifica_rotaDel=$(route -n | grep $gw2 > /dev/null 2>&1 ; echo $?)
                if [ $verifica_rotaDel -eq 0 ]; then
                   while route del default gw $gw2 dev $iface2 ; do :; done
                fi
                # reinicia o Mav para renovação de regras
                regrasMav=$(iptables-save | grep LINK2_ATIVO > /dev/null 2>&1 ; echo $?)
                if [ $regrasMav -eq 0 ]; then
                    removeGateway3G
                    while killall -9 mav5 ; do :; done
                    /opt/mav5/bin/mav5 --no-update
                fi
                #                 
                #clear
                echo "Link1 em atividade: $ip_iface1" >> $log
                echo "Interface: $iface1" >> $log
                echo "Gateway: $gw1" >> $log
                echo "Data: $datai" >> $log
                echo "Status: Ok" >> $log
        else
                link2
        fi
        # fim verificação link1
exit
}
 
echo "Em processo..."
link1
 
# Marcelo Viana
# AMDG

Loadbalance FAILOVER V.5

Em um servidor com dois links de Internet, este script atuará no gerenciamento dos links. Caso o link padrão, apresente erro (ou perda de conexão com a Internet por algum motivo), o script mudará o tráfego automaticamente para o link alternativo.

Este script depende das chamadas do cron, podendo ser configurado o tempo de acordo com a necessidade. Por padrão, as chamadas estão definidas para cada minuto.

O teste de conexão (ping) é feito em dois endereços externos, um Root Server e um endereço do Google. Esta prática reduz erros na virada dos links se o servidor do Google (8.8.8.8) ou se o Root Server cair. Porém, não muito provável que aconteça, se os dois caírem (Root Server e Google) o script ficará comprometido. Em outras palavras, ferrou!

Sendo executado a cada minuto pelo cron, caso o link padrão caia, ele sempre será testado na próxima execução, dando-o prioridade quando voltar.

Para executar o script, usa-se a seguinte sintaxe:

1
 sh loadbalanceFAILOVER.sh

Para execução permanente, deve-se inserir a seguinte linha no arquivo crontab (/etc/crontab):

1
 * * * * *   root    /CAMINHO_DO_SCRIPT/loadbalanceFAILOVER.sh

Configure a permissão para execução:

1
 chmod +x /CAMINHO_DO_SCRIPT/loadbalanceFAILOVER.sh

Reinicie o cron:

1
 /etc/init.d/cron restart

Feito os passos acima, você pode acompanhar a execução do script com seguinte comando:

1
tailf /var/log/loadbalanceFAILOVER.log

Obs.: não esquecer de configurar as VARIÁVEIS do script de acordo com sua rede.
Desenvolvido por: Marcelo Viana

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
 
  ### Configure as variáveis iface1,iface2,gw1,gw2 de acordo com sua rede ###
  iface1=eth2 # interface do link padrão
  iface2=eth3 # interface do link alternativo
  gw1="10.128.20.1" #gateway do link padrão
  gw2="10.0.5.2" #gateway do link alternativo
  ###
  #
  ### IPs usados para testar a conexão - configuração opcional ###
  testeip="198.41.0.4" # root server Brasil
  testeip2="8.8.8.8" # qualquer outro 
  ###
  #
  ttl="5"
  datai=`date +"%d/%m/%Y %H:%M:%S"`
  log="/var/log/loadbalanceFAILOVER.log"
  iptables -t nat -N LOAD_BALANCE > /dev/null 2>&1
  ip_iface1=$(ifconfig $iface1 | grep -w 'inet' | awk '{print $3}')
  ip_iface2=$(ifconfig $iface2 | grep -w 'inet' | awk '{print $3}')
  nomeScript="loadbalanceFAILOVER.sh"
  echo "1" > /proc/sys/net/ipv4/ip_forward
  > $log
  ### fim da configuração das variáveis ###
 
 
link2() {
 
        # deleta rota do link2 se existir
        verifica_rotaDel=$(route -n | grep $gw2 > /dev/null 2>&1 ; echo $?)
        if [ $verifica_rotaDel -eq 0 ]; then
           while route del default gw $gw2 ; do :; done
        fi
 
        # adiciona rota do link2 se não existir
        verifica_rotaAdd=$(route -n | grep $gw2 > /dev/null 2>&1 ; echo $?)
        if [ $verifica_rotaAdd -ne 0 ]; then
           route add default gw $gw2
        fi
 
         # Testa link2
        teste_link2=$(ping -qc $ttl $testeip -I $iface2 > /dev/null 2>&1 ; echo $?)
        teste_link2_2=$(ping -qc $ttl $testeip2 -I $iface2 > /dev/null 2>&1 ; echo $?)
        if [ $teste_link2 -eq 0 ] || [ $teste_link2_2 -eq 0 ]; then
                # adiciona regra SNAT se não existir    
                verifica_snat=$(iptables-save | grep LOAD_BALANCE | grep $ip_iface2 > /dev/null 2>&1 ; echo $?)
                if [ $verifica_snat -ne 0 ]; then
                   iptables -t nat -I LOAD_BALANCE -j SNAT --to-source $ip_iface2
                fi          
                clear
                echo "Link2 em atividade: $ip_iface2" >> $log
                echo "Interface: $iface2" >> $log
                echo "Gateway: $gw2" >> $log
                echo "Data: $datai" >> $log
                echo "Status: Ok" >> $log
 
        else
                echo "PROBLEMA: LINK [ $gw1 ] e [ $gw2 ] estão Down!" >> $log
                echo "Aguardando nova chamada do cron para verificação..."
                iptables -t nat -F LOAD_BALANCE
        fi
        # fim verificação link2
}
 
link1() {
 
        # deleta rota do link2 se existir
        verifica_rotaDel=$(route -n | grep $gw2 > /dev/null 2>&1 ; echo $?)
        if [ $verifica_rotaDel -eq 0 ]; then
           while route del default gw $gw2 ; do :; done
        fi
 
        # adiciona rota do link1 se não existir
        verifica_rotaAdd=$(route -n | grep $gw1 > /dev/null 2>&1 ; echo $?)
        if [ $verifica_rotaAdd -ne 0 ]; then
           route add default gw $gw1
        fi
 
         # Testa link1
        teste_link1=$(ping -qc $ttl $testeip -I $iface1 > /dev/null 2>&1 ; echo $?)
        teste_link1_1=$(ping -qc $ttl $testeip2 -I $iface1 > /dev/null 2>&1 ; echo $?)
        if [ $teste_link1 -eq 0 ] || [ $teste_link1_1 -eq 0 ]; then
                # adiciona regra SNAT se não existir    
                verifica_snat=$(iptables-save | grep LOAD_BALANCE | grep $ip_iface1 > /dev/null 2>&1 ; echo $?)
                if [ $verifica_snat -ne 0 ]; then
                   iptables -t nat -F LOAD_BALANCE
                   iptables -t nat -I LOAD_BALANCE -j SNAT --to-source $ip_iface1
                fi
                clear
                echo "Link1 em atividade: $ip_iface1" >> $log
                echo "Interface: $iface1" >> $log
                echo "Gateway: $gw1" >> $log
                echo "Data: $datai" >> $log
                echo "Status: Ok" >> $log
 
        else
                iptables -t nat -F LOAD_BALANCE
                link2
        fi
        # fim verificação link1
}
 
helpp(){
        echo "Para executar o script, usa-se a seguinte sintaxe:"
        echo "sh $nomeScript"
        echo "Para execução permanente, deve-se inserir a seguinte linha no arquivo crontab (/etc/crontab):"
        echo "* * * * *   root    /CAMINHO_DO_SCRIPT/loadbalanceFAILOVER.sh"
        echo "Configure a permissão para execução:"
        echo "chmod +x /CAMINHO_DO_SCRIPT/loadbalanceFAILOVER.sh"
        echo "Reinicie o cron:"
        echo "/etc/init.d/cron restart"
        echo "Feito os passos acima, você pode acompanhar a execução do script com seguinte comando:"
        echo "tailf /var/log/loadbalanceFAILOVER.log"
        echo "Obs.: Não esquecer de configurar as VARIÁVEIS  do script de acordo com sua rede."
        echo "Desenvolvido por: Marcelo Viana"
        exit
}
 
case $1 in
'start') link1 ; exit ;;
'--help') helpp ; exit ;;
*) link1 ; exit ;;
esac
 
# Marcelo Viana
# AMDG

Loadbalance FAILOVER V.4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
 
  ### CONFIGURE AS VARIÁVEIS AQUI:
  testeip="198.41.0.4" # root server Brasil
  #
  iface1=eth2 # interface padrão
  iface2=eth3
  ip_iface1=$(ifconfig $iface1 | grep -w 'inet' | awk '{print $3}')
  ip_iface2=$(ifconfig $iface2 | grep -w 'inet' | awk '{print $3}')
 
  gw1="10.128.20.1" #gateway padrão
  gw2="10.0.5.2"
 
  nomeGw1="routerMAV"
  nomeGw2="routerNAT"
  ttl="10"
  #
  ### FIM DA CONFIG.
  #
  rota=0
  datai=`date +"%d/%m/%Y %H:%M:%S"`
  nomeScript="loadbalanceFAILOVER.sh"
  log="/var/log/loadbalanceFAILOVER.log"
  echo > $log
 
  ### ADICIONA OS GATEWAYS NAS DEVIDAS INTERFACES:
 
reparar() { 
        # verifica se o link padrao está de volta novamente, caso contrário continua no link alternativo.
        if [ $(ping -qc $ttl $testeip -I $iface1 > /dev/null 2>&1 ; echo $?) -eq 0 ]; then
                rota=0
                link1
        else
        #       reparar
                echo "Problema com Links ou interfaces, verique a conexao com a Internet." >> $log
                echo "Testando conexao em 10seg..." >> $log
                sleep 10
                link1
        fi
}
 
link2() {
        if [ $rota -eq 0 ]; then
                        rota=1
                        #internet=$iface2
                        #while ip route del default; do :; done 
                        route del default gw $gw1
                        route add default gw $gw2
                       #iptables -t nat -I POSTROUTING -j MASQUERADE
                        iptables -t nat -I SNAT_ACCEPT -j SNAT --to-source $ip_iface2
        fi
 
# verificação link 2
        if [ $(ping -qc $ttl $testeip -I $iface2 > /dev/null 2>&1 ; echo $? ) = 0 ]; then
                        clear
                        echo "Link2 em atividade: $nomeGw2" >> $log
                        echo "Interface: $iface2" >> $log
                        echo "Gateway: $gw2" >> $log
                        echo "Status: Ok" >> $log
                                # verifica se o link padrao está de volta, caso contrário continua no link alternativo.
                                if [ $(ping -qc $ttl $testeip -I $iface1 > /dev/null 2>&1 ; echo $?) -eq 0 ]; then
                                        rota=0
                                        link1
                                        break
                                fi
        else
                reparar
        fi
# fim verificação link 2
}
 
link1() {
        if [ $rota = 0 ]; then
                        rota=1
                        #internet=$iface1
                        #while ip route del default; do :; done
                        route del default gw $gw2
                        route add default gw $gw1
                       #iptables -t nat -I POSTROUTING -j MASQUERADE
                        iptables -t nat -I SNAT_ACCEPT -j SNAT --to-source $ip_iface1
        fi
 
# verificação link 1
        if [ $(ping -qc $ttl $testeip -I $iface1 > /dev/null 2>&1 ; echo $? ) = 0 ]; then
                        clear
                        echo "Link1 em atividade: $nomeGw1" >> $log
                        echo "Interface: $iface1" >> $log
                        echo "Gateway: $gw1" >> $log
                        echo "Status: Ok" >> $log
 
        else
                rota=0
                link2
        fi
# fim verificação link 1
}
 
 
parar(){
        kill -9 `ps aux | grep $nomeScript | awk '{print $2}'`
        echo "$nomeScript Morto" >> $log
        exit
}
helpp(){
        echo "Para executar o script, usa-se a seguinte sintaxe:"
        echo " "
        echo "Iniciar:"
        echo "sh $nomeScript start"
        echo "Parar:"
        echo "sh $nomeScript stop"
        echo "Rodar em modo background:"
        echo "sh $nomeScript start  > /var/log/loadbalance.log &"
        echo "Após rodar em background, verifique se está rodando:"
        echo "ps aux | grep $nomeScript"
        echo "Obs.: Não esquecer de configurar as VARIÁVEIS  do script de acordo com sua rede."
        echo " "
        echo "Desenvolvido por: Marcelo Viana"
        echo " "
        exit
}
 
 
 
case $1 in
'start') link1 ; exit ;;
'stop') parar ; exit ;;
'--help') helpp ; exit ;;
*) link1 ; exit ;;
esac
 
# Marcelo Viana
# AMDG