Arquivos da categoria: Utilidades

Analisando o log do fail2ban

Firewall configuração com o fail2ban

O fail2ban é uma ferramenta escrita em python que analisa os arquivos de log dos seu sistema e automaticamente cria regras de bloqueio no iptables para ips que estejam realizando alguma atividade suspeita. Por exemplo, em casos de muitas tentativas de acesso pelo ssh inválidas, o fail2ban identifica estas tentativas com erro no log do sistema ( /var/log/syslog ) e cria uma regra no iptables bloqueando este ip por alguns minutos.

Estes bloqueios sao registrados em seu arquivo de log /var/log/fail2ban.log , e tem um conteúdo no padrão abaixo:

2015-05-06 09:58:46,692 fail2ban.actions: WARNING [ssh] Unban 115.239.248.69
2015-05-06 10:07:00,233 fail2ban.actions: WARNING [ssh] Unban 58.218.204.241
2015-05-06 10:12:42,600 fail2ban.actions: WARNING [ssh] Ban 222.186.21.236
2015-05-06 10:16:29,843 fail2ban.actions: WARNING [ssh] Ban 115.239.248.69
2015-05-06 10:21:09,140 fail2ban.actions: WARNING [ssh] Unban 222.89.166.12

Analizando por colunas:

  1. Data do evento
  2. Hora do evento
  3. Origem
  4. Nível de alerta
  5. Tipo do serviço
  6. Ação ( Banido ou liberado )
  7. IP de origem
Análises:
1 – Quantidades de bloqueios por dia:
   awk ‘/2015-05-05.*Ban.*/{print $7}’ /var/log/fail2ban.log | wc -l
     Neste comando filtramos apenas as linhas com a data que desejamos e imprimimos a coluna 7 que contem os ips ( neste comando poderia ser qualquer uma ) e passamos o resultado para o comando wc que irá contar as linhas resultantes.
2 –  Quantidade de tentativas por cada ip:
   awk ‘/2015-05-05.*Ban.*/{print $7}’ /var/log/fail2ban.log | sort | uniq -c | sort
 Neste caso utilizamos o inicio do comando anterior removendo o filtro por data ( cada arquivos de log contem informações de aproximadamente 3 dias ) em seguida passamos o resultado para o comando sort que ira ordenar o resultado que é passado para o comando uniq com o parâmetro -c que diz que ele deve remover as linhas repetidas e informa a quantidade de cada registro único encontrado, por fim passamos o resultado novamente para o comando sort para facilitar a leitura e identificar rapidamente os ips “insistentes”.
Caso deseje ler mas sobre ko fail2ban ou ate mesmo sobre o iptables, deixe um comentário com seu email que eu irei criar um post sobre o assunto solicitado e te aviso por email quando estiver pronto.
Obrigado por visitar o blog. 😀

Personalizando suas ferramentas com ShellScript

        Muitas vezes no dia precisamos criar uma pasta e em seguida entrar nesta pasta para realização de algum procedimento dentro desta, que seria algo como:

-> mkdir pasta
-> cd pasta

É possível criar funções( comandos ) personalizados modificando o arquivo ~/.bashrc e incluindo funções ShellScript que estarão disponíveis como comandos do seu terminal.

Para isso adicione as seguinte linhas neste arquivo:

 function mkcd
 {
   local final_dir=“”
   for i in $@
   do
     [ ! -d $i ] && mkdir -pv $i
     final_dir=$i
   done
   cd $final_dir
 }


Uso:

-> mkcd nova/pasta pasta_final

No final você estará na pasta “pasta_final”.

OBS: nesta função foi utilizado o parâmetro -p do comando mkdir que cria toda a raiz de pasta quando a pasta “pai” não existir. Ex.: medir -p a/b/c/d/e/f  // caso estas pastas não existam , todas serão criadas.

Ordenamento por Data no DataTables

Logo do DataTables plugin jQuery

O DataTables é hoje uma dos plugin jQuery mas utilizado por resolver ordenamento e paginação de forma automática. Mas em qualquer ferramenta que tente fazer ordenamento sem reflection, ocorre um problema que é a identificação automática do tipo de dados da coluna ou lista ordenada.
Isto ser torna um problema no seguinte caso:

  • 01/02/2015
  • 02/01/2015
  • 03/12/2014
Na lista acima as datas estão ordenadas como “string”.
Por padrão, o plugin do dataTables reconhece automáticamente os tipos “string”, “numeric”, e, “date” , mas todos em formato americano.

Para burlar este problema, é possível criar um tipo de dado extendendo a api do jquery (Clique em Result para ver o resultado ):

Script para implementação de “lixeira” no linux ( terminal )

Quando se utiliza o terminal o linux, pode acontecer alguns desastres, como por exemplo o uso do comando rm que remove o arquivo informado permanentemente. Por isso criei o script abaixo que move o arquivo ou pasta informado para uma pasta temporária, e so remove permanentemente apos 30 dias.

 Para disponibilizar o comando em qualquer local do terminal, crie o arquivo com o nome “del.sh”, dê permissão de execução com o comando “chmod +x del.sh” e crie um link dentro da pasta “/usr/local/bin” com o seguinte comando: “ln -s /home/pasta/onde/esta/o/arquivo/del.sh del”
Apos seguir todos estes passos, você ja poderá utilizar o comando:
del arquivo.txt

Auto incremento no banco de dados Derby ( javaDb )

   O auto incremento no derby é um pouco diferente do padrão dos outros banco de dados.
Segue um exemplo que pode ajudar a criar as tabelas de seu novo banco.

Os melhores serviços cloud gratuítos ( armazenamento na web )

Vocês ja deve ter passa do pela situação de perder arquivos no computador que pifou, ou mandou formatar sem fazer backup, ou ainda precisar de uma arquivo que esta no seu pc de casa, a solução para este e outros problemas é o armazenamento em nuvem ( cloud ).

Usando as 12 opções de armazenamento em nuvem pública seguintes, você poderia, teoricamente, chegar 112GB de armazenamento em nuvem livre. Mas nem todos os serviços são os mesmos. Alguns têm seus prós e contras relacionados a como um limite de tamanho de arquivo que pode ser carregado, o preço do espaço adicional de armazenamento em nuvem, integrações com diversos sistemas operacionais e aplicativos móveis, e, claro, as precauções de segurança.

Veja a comparação dos principais com opção gratuita e escolha o melhor para sua situação, ou melhor, escolha como usar todos ao mesmo tempo 😀 .

Empresa Capacidade (Grátis) Armazenamento extra Descrição
5G 20GB, $10/year; 50GB, $25/year; 100GB, $50/year; 200GB, $100/year; 1TB, $500/year. Cloud Music player: 250 imported songs free; 250,000 imported songs, $24.99/year. Músicas compradas e baixadas da Amazon são automaticamente armazenadas na Amazon Cloud Drive de graça. O serviço também faz o backup de tablets Kindle da marca. Desde seu lançamento em março de 2011, o serviço foi alvo de críticas por suas políticas de acesso. Veja mais aqui .
5G 10GB (15GB total with 5GB free), $20/year; 50GB, $100/year Automaticamente sincroniza arquivos, fotos, vídeos e até mesmo guias de navegação na Web através de dispositivos Apple. Apps como o Keynote, Pages e Numbers são utilizados para a gestão / sincronização de documentos. A Apple possui uma criptografia mínima de 128 bits AES para iCloud
5G 25GB for $9.99/mês; 50GB, $19.99/mês. Business account: $15/usuário/mês, 3 a 500 usuários; Fornece SSL 256-bit AES criptografia protegido por firewall. Para negócios e contas da empresa, os arquivos são armazenados criptografados com redundância automática. Limites de tamanho de arquivo: 100MB para as contas gratuitas, 1GB para contas pessoais pagas; edições negócios têm limite de tamanho de arquivo de 2 GB. Box permite a edição de documentos na nuvem por meio de aplicativos de terceiros, como o Zoho.
2G contas pró até100GB, $9.99/mês ou $99/ano,  500GB por $49.99/mês ou $499/ano. Conta para grupos, 1TB por $795/ano para 5 usuários, $125 por usuário adicional. Fornece SSL 256-bit AES criptografia protegido por firewall. Para negócios e contas da empresa, os arquivos são armazenados criptografados com redundância automática. Limites de tamanho de arquivo: 100MB para as contas gratuitas, 1GB para contas pessoais pagas; edições negócios têm limite de tamanho de arquivo de 2 GB. Box permite a edição de documentos na nuvem por meio de aplicativos de terceiros, como o Zoho.
7G
ilimitados para documentos no formado do googleDrive
25GB, $2.49/mês; 100GB, $4.99/mês; 200GB, $9.99/mês; 1TB, $49.99/mês; 16TB, $799.99/mês Google Drive permite aos usuários armazenar muito mais arquivos em sua nuvem de graça se os arquivos são o Google Docs. Em muitos casos, os ficheiros podem ser convertidos para este formato, simplesmente através de cópia para um documento do Google. Tem alguns limites de arquivo, incluindo 2MB de arquivos convertidos, ou 10MB para arquivos não-Google Doc. Planilhas têm um limite de 20 MB ou 256 colunas. Arquivos do Google Doc pode ser editado no aplicativo, mas aplicativos de terceiros são necessários para editar arquivos Doc não do Google, como arquivos do Microsoft Word
50G

Edição pró 250GB por $4.50/mês, e Business edition com 1TB por $49/mês. Startup MediaFire oferece uma grande quantidade de armazenamento em nuvem, mas ele só tem Windows, OS X e os aplicativos de desktop Linux, sem aplicativos móveis ainda. Por US $ 1.50/mês, os usuários podem obter 50GB de armazenamento, sem anúncios, através da edição de “pessoal”. MediaFire comercializa seu pacote de distribuição de conteúdo fortemente. Pro Edition permite 500GB/mês de distribuição de conteúdo através de 500 links de uma só vez por dia; enterprise edition permite 4TB/mês de distribuição com 5.000 links por dia. A versão gratuita tem limite de tamanho de arquivo de 200MB, enquanto que pessoal tem um limite de tamanho de arquivo de 1GB. Pro tem um limite de tamanho de arquivo de 4 GB e de negócios tem limite de tamanho de arquivo individual de 10GB.
7G

20GB, $10/ano;
 50GB, $25/ano; 100GB, $50/ano.
Microsoft SkyDrive, que tem uma interface no estilo do Windows 8, oferece aos usuários uma das maiores contas das principais ofertas de nuvem de armazenamento gratuito iniciais. Ele faz envios limite de 300MB de arquivos via navegador da Web e tem um limite de 2GB por meio do aplicativo de desktop, que pode ser executado no Windows e OS X. Ele também suporta iOS, Android e aplicativos Windows Phone. Ele inclui um esqueci alguma coisarecurso que permite que os usuários recuperem remotamente um arquivo no seu PC que não tenha enviado para a nuvem.
7G

100GB, $4.99/mês; 500GB, $20/mês ou $199/ano; 1TB, $35/mês ou $325/ano. MiMedia se intitula como sendo um repositório de backup e ferramenta de nuvem de acesso especificamente para a mídia, embora ele funcione também para outros documentos. O destaque deste serviço são os recurso para arquivos de áudio, como a opção de escutar as suas músicas online. MiMedia ainda não suporta Mac OS X. Ela tem iOS e Android apps.
2G

$10 por mês ou
$100 por ano para 100GB.
SpiderOak apresenta-se como a opção de armazenamento em nuvem pública seguro. Gozando de um “conhecimento zero” política, o programa de SpiderOak não armazena senhas dos clientes, e todos os dados do cliente são criptografados, tanto em transmissão e durante o armazenamento, usando hashes salgados e uma combinação de 2048 bits RSA e criptografia AES de 256 bits. Para os desenvolvedores da multidão, a empresa também começou a abertura da fonte parte do código usado para criar o produto. SpiderOak oferece pessoal, empresarial e sócio / versões de seu serviço de nuvem revendedor.
5G

30GB, $4.99/mês ou  $49.99/ano; 60GB, $9.99/mês ou $99.99/ano; 500GB, $39.99/mês ou $399.99/year. Business account com 100GB para três usuários por $29.99/month ou $299.99/ano. Até 32 GB de armazenamento adicional livre disponível se você recomendar outros que se inscreverem para o serviço. SugarSync tem aplicativos móveis disponíveis no iOS, Android, BlackBerry, Symbian e plataformas WinMobile.
até 10G

? Symform oferece, de longe, a maior quantidade de armazenamento potencialmente livres, mas há um problema. Sua nuvem pública usa espaço de armazenamento doados pelos usuários, ou seja, os dados criptografados de outros clientes serão armazenadas em seu sistema quando você contribui para a nuvem Symform. A quantidade de armazenamento de cada usuário recebe é baseado em quanto de armazenamento contribuem de volta para a rede de nuvem pública Symform. Assim, por exemplo, se você contribuir com 2 TB de armazenamento, você pode obter 1TB de armazenamento gratuito. Casos de uso comum para isso é em torno de recuperação de desastres e backup. Os clientes podem pagar para o armazenamento ao invés de contribuir para trás o excesso de espaço de armazenamento também. Symform criptografa arquivos usando 256-bit AES, em seguida, divide os arquivos armazenados na nuvem, em 64 blocos, que são distribuídos por toda a rede de cloud Symform de modo que há um único usuário tem acesso ao conjunto completo de dados criptografados de um cliente.
2G

50GB, $15/mês para edição pessoal. Syncplicity é de propriedade da EMC. Preços para a edição de negócios, que inclui controles de acesso centrais, começam em US $ 45/mês com preços diferenciados para até armazenamento ilimitado. Não há limite de tamanho de arquivo ou número de arquivos. Criptografia AES de 256-bit é usado em transmissão e em repouso.

Atalhos do Eclipse

  Lista com os principais atalhos do eclipse
Atalho Command
Ctrl+Space Completar o comando
Ctrl+Shft+Space Informação de contexto ( Lista de parâmetros)
Ctrl+C Copiar
Ctrl+X Cortar
Delete Excluir 
Ctrl+F Localizar
Ctrl+K Localizar o próximo
Ctrl+Shft+K Localizar Anterior
Ctrl+J Busca incremental
Ctrl+Shft+J Busca incremental reversa
Ctrl+V Colar
Ctrl+1 Resolver
Ctrl+Y Refazer
Alt+Shft+Down Restore Last Selection
Ctrl+A Selecionar tudo
Alt+Shft+Up Seleciona e expande a seleção do bloco atual
Alt+Shft+Right O mesmo que o anterior, so que por elementos
Alt+Shft+Left O mesmo que o anterior, em direção contrária
F2 Exibe a dica
Ctrl+Shft+Insert Mudar para o modo de inserção ( Tecla Insert )
Ctrl+Z Desfazer
   
Arquivo
Ctrl+W or Ctrl+F4 Fechar
Ctrl+Shft+W Fechar todos
Alt+F4 Sair
Ctrl+N Novo
Alt+Shft+N Exibe o menu popup “Novo”
Ctrl+P Imprimir
Alt+Enter Propriedades
F5 Atualizar
F2 Renomear
Ctrl+S Salvar
Ctrl+Shft+S Salvar todos ( O melhor de todos )
Navigate

Eclipse 3.0

Alt+Left Backward History
Alt+Right Forward History
Ctrl+L Go to Line
Ctrl+Shft+P Go to Matching Bracket
Ctrl+Shft+Down Go to Next Member
Ctrl+Shft+Up Go to Previous Member
Ctrl+Q Last Edit Location
Ctrl+. Next
Ctrl+Alt+H Open Call Hierarchy
F3 Open Declaration
Shft+F2 Open External Javadoc
Ctrl+Shft+R Open Resource
Ctrl+F3 Open Structure
Ctrl+Shft+T Open Type
F4 Open Type Hierarchy
Ctrl+Shft+H Open Type in Hierarchy
Ctrl+, Ctrl+T Quick Hierarchy
Ctrl+O Quick Outline
Projeto
Ctrl+B        Compilar e/ou publicar todos
Refatoração
Alt+Shft+C Mudar a assinatura do método
Alt+Shft+F Converter uma variável local para um Field
Alt+Shft+L Extrair variável local
Alt+Shft+M Extrair método
Alt+Shft+I Inline
Alt+Shft+V Mover – Refactoring
Alt+Shft+Y Refazer – Refactoring
Alt+Shft+T Exibir o menu de refatoração
Alt+Shft+R Renomear
Alt+Shft+Z Desfazer – Refactoring
Executar
F1 1 Depurar a ultima execução
Ctrl+Shft+D Exibir
Ctrl+U Executar
Ctrl+Shft+I Inspecionar
F8 Continuar a execução ( quando parado em brakpoint )
Ctrl+F11 Executar como da ultima vez
Ctrl+R Executar “inline”
F5 Quando em depuração, “aprofunda-se” no método
F6 Continuar sem entrar no método
F7 Executa ate o próximo brakpoint
Ctrl+Shft+B Adiciona ou remove um brakpoint
Busca
Ctrl+G Declaração na área de trabalho ( do eclipse )
Ctrl+Shft+U Ocorrências no arquivo
Ctrl+H Abre a tela de busca
Ctrl+Shft+G Referencias na área de trabalho ( do eclipse)
Fontes
Ctrl+Shft+/ Adiciona um bloco de comentário
Ctrl+Shft+M Adiciona biblioteca
Alt+Shft+J Adicionar comentário no formato javadoc
Ctrl+Shft+F Forma o código fonte
Ctrl+I Identa a linha
Alt+Shft+O Marca as correncias
Ctrl+Shft+O Organiza as importações ( Remove as inúteis ,e adiciona as necessárias)
Ctrl+Shft+ Remove o comentário do block
Alt+Shft+U Remove a anotação
Alt+Shft+S Exibe o menu de código fonte
Ctrl+Shft+C or Ctrl+/ Comenta o trecho selecionado

Edição de texto
Ctrl+Numpad – ( tecla “menos”, “subtração” )Fechar o bloco de código atual
Ctrl+D Exclui a linha inteira
Ctrl+Delete Apaga a próxima palavra
Ctrl+Backspace Apaga a palavra anterior
Ctrl+Alt+Up ( Seta para cima )Duplica a linha, e põe a nova linhas acima ( o mesmo para down )
Ctrl+Numpad + Abre o bloco de código atual
Ctrl+Numpad * Abre todos os blocos de código fechados
Ctrl+Shft+Enter Insere uma nova linha acima, ( mesmo que o cursor esteja no meio do texto )
Shft+Enter Insere uma linha abaixo, mesmo que o cursor esteja no meio do texto ( muito bom )
Alt+Down Move a linha para baixo

Conectando-se ao Oracle com java JDBC

Conectar java ao banco de dados oracle com jdbc connect to oracle with jdbc

Oracle

O JDBC é a sigla de Java Data Base Connector e é uma das maiores vantagens de se utilizar o Java, pela grande facilidade de se conectar a diversos bancos de dados com o mesmo código fonte.

Para começar a utilizar você deve seguir os seguintes passos:

  1. Faça o download do driver no site da Oracle
  2. Adicione o driver ao ClassPath da aplicação
  3. Utilize o código abaixo para criação da conexão com o banco Oracle

Abaixo você pode ver um exemplo de como inicializar uma nova conexão com o banco de dados. Para se conectar com outros bancos basta mudar a String  com o nome da classe do driver e a String com a URL de conexão com o banco.

Outras Strings de Conexão( ConnectionString ):

Banco classe do driver url de Conexão
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/ databaseName
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname:port Number:databaseName
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:hostname:port Number/databaseName
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds:hostname: port Number/databaseName

Commit no GIT com o ANT

A maioria dos programadores não gostam do processo de commit nos serviços de versionamento de código, mas se quase todo o processo de build da aplicação esta automatizado com o Ant, porque não automatizar também o commit?
Abaixo segue um exemplo utilizando o Git:

Voltar a versão de um único arquivo no GIT

Git logo. Como restaurar apenas um arquivo no git, restor just one only file

Uma dos maiores problemas que tenho no meu dia a dia, e com solititações de usuarios que mudam de ideia, e eu preciso voltar a versão de um arquivo apenas e não todo o projeto.
Uma das opções e digitar todo o Id do commit, e a outra é fazendo um checkout do arquivo em questão para uma tag.

git init
vim test.txt //Crie o arquivo e inclua uma linhas epenas

Conteudo do arquivo:
linha1

Edite o arquivo e inclua uma linha.
Conteudo do arquivo:
linha1
linha2

Use o log para visualizar as alterações:

git log –all –decorate

Agora vamos voltar o arquivo “test.txt” para a tag commit1:

Se estiver usando o Windows: