Dica rápida sobre fazer uma conexão ssh sem senha.
Nesse cenário há dois “PCs”:
O primeiro, um cliente que vai ser conectar ao servidor via SSH.
O segundo, é o servidor que vai receber a conexão ssh do cliente.
Ex: Seu Debian 8 (PC01) vai se conectar ao servidor CentOs7 (PC02) utilizando SSH.

Serão utilizadas duas chaves: uma pública e uma privada.
Essas chaves serão geradas no CLIENTE (Debian8 PC01 no nosso exemplo)!
Observação importante: A CHAVE PRIVADA NUNCA DEVE SER COMPARTILHADA! A Chave pública, como o nome diz, pode ser compartilhada normalmente.

Para gerar a chave no cliente (PC01) basta executar o seguinte comando:

ssh-keygen -t rsa

Após isso, o terminal vai exibir algumas informações, sendo que você pode deixá-las todas em branco apenas apertando ENTER em todas as opções.
Uma das informações que serão exibidas é o local onde essas chaves serão armazenadas. Caso esteja utilizando o usuário ROOT, o diretório será “/root/.ssh/”. Caso esteja usando outro usuário, procurar na HOME desse usuário “~/.ssh/”
Agora já temos as duas chaves. A chave privada que foi gerada está no arquivo “id_rsa“. A chave pública que foi gerada está no arquivo “id_rsa.pub

O próximo passo é transferir a chave PÚBLICA para o nosso servidor (Centos7, PC02) utilizando o scp. A transferência será para o diretório “/tmp”

scp /root/.ssh/id_rsa.pub root@ipdoservidor:/tmp/

será exigida a senha

 
Agora acesse o servidor (Centos7, PC02). Pode ser utilizando o ssh também

ssh root@ipdoservidor

será exigida a senha

 
A chave pública está no diretório /tmp que foi transferido anteriormente usando scp.
No diretório /root/.ssh há um arquivo chamado authorized_keys. Esse arquivo contém as chaves públicas autorizadas para a conexão com esse servidor. No nosso caso, vamos copiar o conteúdo da chave pública do cliente (Debian 8, PC02) para dentro desse arquivo.
Pode ser feito abrindo o arquivo onde tem a chave pública, copiando o seu conteúdo, e colando em authorized_keys, porém vamos utilizado o cat para ser mais rápido e prático.

cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys

o comando “cat” acima leu o conteúdo do arquivo id_rsa.pub e jogou ele para o final do arquivo authorized_keys utilizando o >>, assim não apagando as outras chaves que possam haver já registradas.

Após esses procedimentos, o CLIENTE já conseguirá se conectar utilizando o SSH.

Espero ter ajudado. Qualquer dúvida e sugestão só deixar nos comentários.
Abraços e até mais.

Script que fiz juntamente com o Will de Souza para realizar o backup do banco de dados MYSQL em um servidor CentOs6.
O script vai, na ordem, verificar se o diretório de destino do backup existe, depois realizar o backup, fazer a retenção local de 7 dias, sincronizar com servidor de backup e por último enviar um e-mail com o log  com o procedimento que foi realizado.
Não existe (ainda) tratamento de erro para o script. A compactação foi realizada utitlizando o gzip. Para realizar o sincronização, é necessário autenticação sem senha utilizando certificados. Para saber como é feito, veja o post sobre o assunto: http://161.35.238.43/linux-conexao-ssh-sem-senha/
O envio do e-mail é feito utilizando o servidor postfix instalado localmente.
Para ser executado automaticamente, basta criar um arquivo e adicioná-lo ao Cron do servidor onde está o seu banco de dados.

Fiquem à vontade para modificar o script de acordo com a necessidade do seu servidor. Qualquer dúvida, sugestão e colaboração pode ser feita através dos comentários do blog.
Abraços e até a próxima.

#!/bin/bash
 
### Script para realizar o backup do banco de dados, compactar com gzip, reter os arquivos locais por de 7 dias, sincronizar com o servidor Storage e enviar um e-mail ao final ###
 
### Definindo as Variáveis ###
 
data=`date +%Y-%m-%d`
logbkp="/etc/bancos/backup/mysql/$data.log"             # Local onde o log ficará armazenado.
dircopy="/etc/bancos/backup/mysql/$data"                   # Diretório onde ficará armazenado o backup.
MySQLUser=root                                                                    # Usuário do banco de dados.
MySQLUserPW='senha123'                                                  # Senha do usuário do banco de dados.
listardbs=`mysql -S /var/lib/bancos/mysql/mysql.sock -N -s -u "${MySQLUser}" -p"${MySQLUserPW}" -e 'show databases;'`                         # Caminho do banco de dados e autenticação.
argumentos="--ignore-table=mysql.event --single-transaction -S /var/lib/bancos/mysql/mysql.sock"
email="usuariodoemail@email.com.br"                              # Endereço do e-mail para ser enviado o log.
echo "----------------------------------------------------" >> $logbkp
echo "[$data `date +%Hh:%Mm:%Ss`] Início do script de Backup do MySQL" | tee -a $logbkp
 
### Verificando o Diretório ###
 
if [ -d "$dircopy" ]; then
echo "[$data `date +%Hh:%Mm:%Ss`] Diretório $dircopy já existe" | tee -a $logbkp
else
echo "[$data `date +%Hh:%Mm:%Ss`] Criando diretório $dircopy" | tee -a $logbkp
mkdir $dircopy
fi
 
### Iniciando o Backup e Compactando com gzip ###
 
echo "[$data `date +%Hh:%Mm:%Ss`] Iniciando o Backup da Base de dados!" | tee -a $logbkp
 
for bancodedados in $listardbs; do
if [ $bancodedados != 'performance_schema' ] ; then
echo "[$data `date +%Hh:%Mm:%Ss`] Backup do $bancodedados" | tee -a $logbkp
mysqldump $argumentos -u "${MySQLUser}" -p"${MySQLUserPW}" $bancodedados > $dircopy/$bancodedados.sql
echo "[$data `date +%Hh:%Mm:%Ss`] Compactando o $bancodedados" | tee -a $logbkp
gzip -9 -f "$dircopy/$bancodedados.sql"
fi
done
 
echo "[$data `date +%Hh:%Mm:%Ss`] Fim do Backup!" | tee -a $logbkp
 
### Retenção e Sincronização ###
 
find $dircopy -iname '$data*' -type d -mtime +7 -exec rm -rf '{}' ';'
 
rsync -AagoPprzqe 'ssh -p 22' /etc/bancos/backup/mysql/* root@192.168.1.1:/BACKUP/BANCOS/MYSQL/  # Aqui coloca-se o endereço do servidor remoto de backup.
 
echo "[$data `date +%Hh:%Mm:%Ss`] Fim do script de Backup do MySQL." | tee -a $logbkp
echo "----------------------------------------------------" >> $logbkp
 
### Enviando o E-mail ###
 
lerlogbkp=`cat $logbkp`
echo "$lerlogbkp" | sendmail -F mysqlbackup-$data $email
echo "[$data `date +%Hh:%Mm:%Ss`] E-mail para $email enviado!"

Download do Script

Código em python3 para ler linhas em um arquivo de texto e postar automaticamente. Lembrando que são necessários buscar no REST APIs Twitter as chaves de acesso e instalar o módulo tweepy (pip install tweepy).

Caso não tenha o pip instalado, basta buscar no repositório o python-pip ou fazer a instalação do arquivo no windows.

import tweepy, time, sys
 
argfile = str(sys.argv[1])
 
CONSUMER_KEY = 'inserir Consumer Key'
CONSUMER_SECRET = 'inserir Consumer Secret'
ACCESS_KEY = 'inserir Access Key'
ACCESS_SECRET = 'inserir Access Secret'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
 
filename=open(argfile,'r')
f=filename.readlines()
filename.close()
 
for line in f:
api.update_status(line)
time.sleep(60)

O time.sleep determina quantos segundos será postado cada linha do arquivo. No exemplo, a cada 60 segundos.

Após isso, basta executar o arquivo.py junto com o arquivo de texto.

Ex: python3 twitter.py twitter.txt

 

Download do Script

Fonte

O site Solyd está oferecendo um curso básico de Python, totalmente gratuito e com direito a certificação ao final. As aulas são postadas no Youtube, mas é aconselhável assistir pelo site mesmo. Há ainda a opção de outros cursos, mas esses são pagos.

O site do curso é: https://solyd.com.br/treinamentos/python-basico

Segue um script em Python 2 para testar se a porta está aberta ou fechada.

#!/usr/bin/python
import socket
ip = raw_input("Entre com o endereco de IP: ")
port = input("Entre com o numero da porta: ")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if sock.connect_ex((ip,port)):
    print "A porta", port, "esta fechada"
else:
    print "A porta", port, "esta aberta"

Um pequeno shell script para scanear a rede e saber qual IP está online. Basta executar e colocar a faixa a ser pesquisada. Com o retorno do ping irá aparecer apenas os IPs online.

#!/bin/bash
if [ "$1" == "" ]; then
    echo "Formato: ./ping.sh [endereço da rede]"
    echo "Exemplo: ./ping.sh 192.168.0"
else
    echo "Realizando teste na rede: $1"
    for x in `seq 1 254`; do
    ping -c 1 $1.$x | grep "64 bytes" | cut -d " " -f 4 | sed 's/.$//'
    done
fi

No estágio tive que fazer uma listagem de todos os usuários, suas respectivas cotas, status da conta e seu último acesso. Achei um script na internet, modifiquei de acordo com o servidor local e funcionou.

Estou disponibilizando aqui.

#!/bin/bash
output="/tmp/listazimbra.txt"
domain="dominio.com.br"
rm -f $output
touch $output
server=`zmhostname`
/opt/zimbra/bin/zmprov gqu $server|grep $domain|awk {'print $1" "$3" "$2'}|sort|while read line
do
usage=`echo $line|cut -f2 -d " "`
quota=`echo $line|cut -f3 -d " "`
user=`echo $line|cut -f1 -d " "`
status=`/opt/zimbra/bin/zmprov ga $user | grep  ^zimbraAccountStatus | cut -f2 -d " "`
lastlogin=`zmaccts | grep $user |tr -s '  ' | cut -f5 -d " "`
echo "$user `expr $usage / 1024 / 1024`Mb `expr $quota / 1024 / 1024`Mb ($status account) $lastlogin" >> $output
done
cat $output

Fonte: https://wiki.zimbra.com/wiki/Mailbox_usage_report

Venho deixar uma dica rápida, mas que tive que buscar bastante na internet uma solução.
Depois de instalar o Debian 8.5, e atualizá-lo, não conseguia mudar o brilho do monitor, de nenhuma forma. Uma configuração simples resolve o problema.
No terminal, basta alterar o arquivo /etc/default/grub
Procure pela linha GRUB_CMDLINE_LINUX_DEFAULT e adicione acpi_osi=Linux.
O resultado final da linha ficará assim: GRUB_CMDLINE_LINUX_DEFAULT=”quiet acpi_osi=Linux”.
Após salvar o arquivo, de um update-grub e reinicie o sistema.
Espero ter ajudado e até a próxima.

A área de TI requer que os profissionais estejam sempre atualizados nas novas tecnologias. Cursos Online são sempre uma boa forma de aprendizado. Alguns sites disponibilizam cursos gratuitamente para demonstração da plataforma de estudos ou como forma de fomentar o aprendizado. Abaixo, uma lista desses sites.

1) Go Learny

Provavelmente o site mais conhecido de ensino com cursos gratuitos. O site disponibiliza também certificado para os seus cursos. Lá é possível encontrar cursos sobre Linux, Windows, Cisco, Java, C# Photoshop, entre outros cursos. Além dos gratuitos, é possível comprar outros cursos com preços bem em conta.

https://www.golearny.com/pt/

2) Aula EAD

o Aula EAD é um site nacional que trás cursos de iniciação em algumas ferramentas. Assim como o Go Learny, é possível achar cursos sobre Linux, Windows, Redes e Programação.

http://aulaead.com/cursos/

3) Fundação Bradesco

O Bradesco, através da sua Escola Virtual, disponibiliza cursos com certificados. A Fundação é conhecida pela sua parceria com a CISCO em um curso semi-presencial para a certificação CCNA. No site, existe curso sobre Banco de Dados, Governança em TI, Programação e Ferramentas Microsoft.

http://www.ev.org.br/Cursos/Paginas/Online.aspx

4) SoftBlue

A Softblue disponibiliza apenas 2 cursos grátis, porém de grande importância: Lógica de Programação e SQL Básico. Também, assim como outros sites, é possível pagar por outros cursos.

http://www.softblue.com.br/

5) eXcript

o eXcript é diferente dos outros sites listados, pois é um canal do YouTube. O fato de não ser um site de curso não o faz pior que os outros, pelo contrário, é tão bom quanto um site profissional de curso online. Além disso, todos os cursos são gratuitos. No canal existe curso de WordPress, Java, PHP, C, Android, Phyton, e caso alguém se interesse, Guitarra e violão também. Fica a dica desse excelente canal.

https://www.youtube.com/user/excriptvideo/playlists?view=1&sort=dd

6) Projeto ROOT

Outro canal do YouTube, mas esse tem mais uma “pegada” de tutoriais, com boa explicação teórica, mas muita prática. Uma das vantagens desse canal, são os softwares que são utilizados para os vídeos: Nagios, Bacula, Squid, Samba.

https://www.youtube.com/user/projetoroot/playlists

7) Bóson Treinamentos

Um dos sites mais completos em relação à conteúdo diversificado. É possível aprender sobre Eletrônica Digital, Phyton, Hardware, C#, PHP, Virtualização, PostgreSQL, Eletrônica, Arduíno.

http://www.bosontreinamentos.com.br/

 

Meu nome é Bruno Izidório, atualmente estudante do curso de Redes de Computadores, estagiário de Redes, entusiasta de Linux, e tentarei aqui documentar minhas experiências diárias (ou quase diárias) na área de TI.

O blog, inicialmente, servirá como documentação pessoal, porém estou fazendo no formato de blog para, quem sabe, ajudar qualquer outro profissional da área que se deparou com a mesma situação que a minha em algum e não conseguiu fazer um “ajuste técnico” adequado.

Vamos à pratica e bons estudos para todos nós.