Unix ToolBox – Tutoriais estilo “receita de bolo” para o cotidiano do profissional de TI que trabalha com Linux

Unix Toolbox é uma coletânea de comandos e tarefas úteis no dia-a-dia do profissional de TI que trabalha com Linux. Um guia prático, com explicações detalhadas, porém é claro que você tem que saber o que esta fazendo.

Os tutoriais estão divididos nas seguintes categorias:

  • Sistema – Processos – Sistema de Arquivos – Rede – SSH SCP – VPN com SSH – RSYNC – SUDO – Criptografar arquivos – Criptografar partições – Certificados SSL – CVS – SVN – Comandos úteis – Instalar software – Converter de mídia – Impressão – Bancos de dados – Quota em disco – Conchas – Scripting – Programação – Ajuda on-line

O mais legal é que você pode ter acesso ao conteúdo de diversas formas, veja:

Aqui você tem a muitos outros howtos:
http://www.tekleisure.com/2012/01/25-most-useful-linux-unix-solaris.html

Adicionando um novo usuário no MySQL

Sei que este é um assunto muito simples, ainda mais se você já tiver o PhpMyAdmin instalado, mas como nem sempre podemos instalar essa ferramenta, o legal é lembrar como adicionar os usuários direto no terminal. Na verdade sempre preciso disso e nunca lembro a sintaxe.

Este procedimento funciona com MySQL 4.x e 5.x

1. Considerando que você já tenha o Mysql instalado e rodando 100%.

[php]mysql –user=root mysql[/php]

Se sua conta root solicitar senha, você pode acrescentar o parâmetro -p ou –password

[php]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 81
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>
[/php]

2. Criando usuário com acesso full
Depois de conectar, é só executar os comandos para criar o usuário e senha, bem como a definição de privilégios.

[php]
mysql> CREATE USER ‘bkpiador’@’localhost’ IDENTIFIED BY ‘a3$b2#c1!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘bkpiador’@’localhost’ WITH GRANT OPTION;
[/php]

Vejamos o que estamos fazendo:

Na linha 1 é criado o usuário (com acesso permitido somente de localhost) e a senha de acesso.
Na linha 2 define-se as políticas de acesso do usuário, nesse exemplo, o usuário tem permissão para acessar tudo e somente apartir de localhost.

[php]
mysql> CREATE USER ‘bkpiador’@’%’ IDENTIFIED BY ‘a3$b2#c1!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘bkpiador’@’%’ WITH GRANT OPTION;
[/php]

Novamente, na linha 1 é criado o usuário, (agora para acesso de qualquer host) e a senha.
E na linha 2 o usuário tem permissão para acessar tudo apartir de qualquer host.

Como NÃO liderar profissionais de TI.

 

Liderar equipes não é uma tarefa fácil e infelizmente, algumas empresas, ou gestores, ainda não se deram conta que as pessoas possuem caracteristicas e interesses diferentes, e que por isso, precisam ser lideradas e motivadas também de formas diferentes. A situação é um pouco pior quando os liderados são da área de tecnologia.

Paul Glen, em seu livro Leading Geeks: How to Manage and Lead the People Who Deliver Technology

afirma que os profissionais de TI são “muito inteligentes, geralmente introvertidos, extremamente valiosos, pensam de modo independente, são dificeis de encontrar, dificeis de manter e são essenciais para o futuro da empresa”. Lendo isto da para se ter uma noção da importância de manter estes profissionais motivados (ou não desmotivá-los).

Alexander Kjerulf,  escreveu um texto a uns anos atrás sobre como realizar uma má gestão do pessoal de TI. Vejamos:

Quando os analistas da NCR Australia – Computer Equipment Supplies , entraram de greve, foi uma movimentação que poderia paralisar ATMs, caixas de supermercado e máquinas de check-in nos aeroportos. Este fato mostra que TI se tornou tão central em praticamente todas as corporações, que qualquer paralisação poderá custar muito tempo e dinheiro, o que significa também que manter os geeks (profissionais de TI) felizes no trabalho é obrigatório nas empresas modernas. Geeks felizes são geeks eficientes.

A principal razão da infelicidade do pessoal de TI no trabalho é a má relação com a gerência, às vezes porque geeks e gerentes têm personalidades, origens profissionais e ambições muito diferentes.

Algumas pessoas chegam à conclusão que geeks odeiam gerentes e são impossíveis de liderar. A expressão “administrar geeks é como pastorear gatos” (N.T: do inglês “managing geeks is like herding cats”) é usada às vezes, mas está errada. O fato é que o pessoal de TI detesta gerenciamento ruim e tem menos tolerância com relação a isso que outros empregados.

Confira os 10 maiores erros dos gerentes de equipes de TI:

1- Ignorar o treinamento

Uma vez tive um chefe que disse que “treinamento é jogar dinheiro fora, estude por si mesmo”. Esta empresa quebrou 2 anos depois. Treinamento é importante, especialmente em TI, e gerentes devem reconhecer e alocar os fundos para isto. Às vezes vem o argumento de que “se eu treiná-los um competidor irá contratá-los”. Talvez seja verdade, mas por outro lado, a outra alternativa é possuir apenas empregados despreparados, incapazes de trabalhar em qualquer outro lugar.

2- Não dar o reconhecimento

Já que gerentes não entendem bem o trabalho feito pelos geeks, é difícil para eles reconhecer e recompensar um trabalho bem feito, o que compromete a motivação. A solução é trabalhar juntos para definir objetivos que ambos os lados concordem. Quando esses objetivos forem alcançados, os geeks estão fazendo um excelente trabalho.

3- Planejar muita hora extra

“Vamos puxar o máximo de trabalho de nossos geeks, afinal eles não têm vida”, parece ser a abordagem de alguns gerentes. É um grande erro e geeks que trabalham demais ficam improdutivos ou simplesmente vão embora. Em um caso famoso, um jovem trabalhador em TI teve um ataque causado por stress, foi hospitalizado, retornou ao trabalho logo depois e logo teve outro ataque. Este post examina mais a fundo o mito de que longas horas de trabalho é bom para os negócios.

4- Usar “gerentês”

Geeks odeiam “gerentês” e vêem como superficial e desonesto. Gerentes não devem aprender a falar “nerdês”, mas devem deixar de lado os buzzwords de negócios. Um gerente pode dizer “Devemos agir de forma proativa com o objetivo de otimizar nosso time-to-market” ou simplesmente usar português e ficar com “Precisamos estar em dia com esse projeto”.

5- Tentar ser mais esperto que os geeks

Quando gerentes não sabem nada sobre uma questão técnica, eles simplesmente devem admitir isso. Os geeks irão respeitá-los por isso, mas não por enrolar. E eles vão descobrir – geeks são espertos.

6- Agir de forma inconsistente

Geeks têm um profundo senso de justiça, provavelmente isto está relacionado com o fato que, em TI, estrutura e consistência são elementos críticos. A documentação não pode dizer uma coisa enquanto o código diz outra, e, da mesma maneira, gerentes não podem dizer uma coisa e fazer outra.

7- Ignorar os geeks

Uma vez que gerentes e geeks são tipos de pessoas diferentes, os gerentes podem acabar deixando os geeks sozinhos. Isto torna a liderança sobre eles um ato difícil, e geeks precisam de boas lideranças, como todos os outros grupos.

8- Tomar decisões sem consultá-los

Geeks normalmente dominam o lado técnico do negócio melhor que o gerente, então tomar uma decisão técnica sem consultá-los é o maior erro que um líder pode cometer.

9- Não lhes dar as ferramentas necessárias

Um computador rápido pode custar mais que um mais antigo e talvez não siga o padrão da empresa, mas geeks usam computadores de maneira diferente. Um computador lento diminui a produtividade e é uma chatice diária, tal como um software antigo. Dê-lhes as ferramentas que precisam.

10- Esquecer que geeks são trabalhadores criativos

Programação é um processo criativo, não industrial. Geeks devem constantemente trazer soluções para novos problemas e raramente resolver o mesmo problema duas vezes; entao é necessário liberdade e flexibilidade. Códigos rígidos de vestimenta e muitas normas matam toda a inovação. Eles precisam também de estarem em um ambiente criativo para evitar a “morte pelo cubículo”.

Cometer um ou mais desses 10 erros (e eu já vi gerentes cometendo os 10 erros) tem sérias conseqüências, incluindo:Baixa motivação

  • Alta rotatividade de empregados
  • Aumento de faltas (justificadas)
  • Baixa produtividade
  • Baixa qualidade do trabalho
  • Serviço prestado de forma indesejável

Geeks felizes são geeks produtivos, e o fator mais importante é boa administração, adaptada para a situação.

Apenas para esclarecer:

Não estou dizendo que todos os geeks são os mesmos. Geeks são extremamente diferentes entre si e este post comete uma perigosa generalização.

Não estou dizendo que todos os trabalhadores em TI são geeks. Uns são, outros não. Eu definitivamente fui um.

Tradução livre do artigo original: http://positivesharing.com/2006/03/how-not-to-lead-geeks/

Howto: Como mudar o range de anos dos campos de data do Lime Survey

O Gerenciador de Questionários Lime Survey utiliza para os campos de data o módulo DatePicker do Jquery, porém por default o template amarra os anos do DatePicker entre 1980 e 2020, caso você necessite alterar este range, tem que fazer uma modificação diretamente em um arquivo, vejamos:

1. Edite o arquivo: qanda.php que fica na raíz de sua instalação do Lime Survey.

# vim qanda.php

2. Procure a linha que seta o ano mínimo e máximo, e altere para o período desejado.

$minyear=’1980′;

$maxyear=’2020′;

Pronto, pode salvar e sair do arquivo.

Com isso no campo de data, será carregado o período que você configurou, simples assim.

 

Como criar aplicações para smartphones e tablets sem saber programar

Você sempre teve vontade de criar seu próprio aplicativo para smartphone ou tablet,  mas não sabia por onde começar ? Então veja essas dicas…

Apps Builder é um site que nos ajuda a criar a nossa aplicação para iPhone, Android e Windows Phone, sem habilidades de programação, tudo que você deve fazer é arrastar componentes desejados na aplicação, como por exemplo: um menu de fotos, textos, vídeos, feeds, etc.

Tudo passo-a-passo e com ajuda constante, pode-se personalizar botões, adicionar urls e muitas outras coisas. O resultado é muito atraente, embora deve-se mencionar que, como é uma ferramenta gratuita inclui anúncios que são responsáveis pela manutenção deste projeto. Mas existem planos pagos sem anúncio.

Youtube para Escolas e Universidades

Google fez a estréia oficial de seu Youtube para Escolas – Youtube for Schools.

http://www.youtube.com/watch?v=NegRGfGYOwQ

Trata-se de uma espécie de Youtube “especial” sem as distrações habituais do portal normal (como os vídeos mais populares, por exemplo) cujo conteúdo é abastecido através do Youtube EDU (é o Youtube Educacional). Os professores podem escolher o material para enriquecer suas aulas, dentre os 120 milhões de vídeos educativos, criados por SmithsonianTEDSteve Spangler Science, e Numberphile.

Sem dúvida, os professores estão muitos ocupados, e por isso existem mais de 300 playlists perfeitamente categorizadas (Matemática, Ciências Sociais, Artes, etc…), prontas para se usar. Pode-se encontrar uma lista dessa coletânea em youtube.com/teachers e provavelmente poderá colaborar com sugestões neste link.

Muito boa iniciativa da Google, em contribuir com a arte de ensinar.

Así pues una muy buena iniciativa de la mano de Google que quiere realizar su pequeña contribución al mundo de la enseñanza. La imagen del profe peleando con el VHS del aula de vídeo ya ha pasado a la historia…

Vía: blog oficial do YouTube

 

Howto: Gerando Dump do Postgresql e transferindo o arquivo para uma máquina com Windows Server

 

Howto: Gerando Dump do Postgresql e transferindo o arquivo para uma máquina com Windows Server

O objetivo deste howto não é discutir qual é a melhor forma de realizar um backup PostgreSQL, mas sim propor uma forma de realizar um Dump da base de dados em um servidor Linux e transferir para um servidor de arquivos que rode Windows, isso é muito comum em empresas e instituições, onde muitas vezes no servidor Windows encontra-se instalada algumas ferramentas de terceiro para gerenciar fitas, robôs e etc.

Não custa citar o ótimo artigo do Fábio Telles Rodriguez, onde o mesmo deixa claro que Dump não é considerado a melhor forma de realizar um backup. Vamos lá.

Imaginemos o seguinte cenário:

  • Uma rede controlada por um Windows Active Directory – AD (Windows 2003 ou maior);
  • Um servidor de arquivos na rede, que pode estar rodando na mesma máquina do AD ou em outra;
  • Servidor Linux (Ubuntu ou outro qualquer) e rodando o SGBD PostgreSQL 8.x;

A idéia é o seguinte:

  • Uma vez por dia o SGBD PostgreSQL irá gerar um Dump da base de dados, através de uma tarefa agendada na Crontab.
  • O dump gerado será armazenado em um diretório na mesma máquina do SGBD (não é uma boa prática deixar na mesma máquina) e uma cópia do mesmo será enviado para o servidor de arquivos Windows.

Mãos a massa:

  1. Vamos considerar que o servidor Linux seja Ubuntu (ou debian) . Se estiver utilizando CentOS  é só instalar os mesmos pacotes pelo Yum Instal;

Instalando os requisitos:

# apt-get install samba samba-common smbfs smbclient

Criando a pasta que servirá de montagem:

# mkdir /mnt/ntserver

No servidor de domínio, Windows Server – Active Directory, você deve ter um usuário com privilégio de escrita na pasta compartilhada. Basta executar a linha abaixo para testar a montagem:

# mount -t smbfs //192.168.0.10/pasta_compartilhada /mnt/ntserver -o username=usuario_de_dominio,password=senha_de_dominio

Claro trocando os termos em negrito para os da sua rede.

# ls /mnt/ntserver

Com este comando deve listar o conteudo da pasta campartilhada lá do servidor de arquivos Windows. Ok, agora, vamos desmontar:

# umount /mnt/ntserver

Criando o script de backup do PostgreSQL

Criando a pasta onde ficará armazenado localmente os Dumps

# mkdir /home/bkp_pg

Crie o arquivo chamado bkp.sh

# vim /etc/init.d/bkp.sh

Insira o seguinte conteúdo:

[shell]#!/bin/sh
# script que gera backup de bases de dados PostGreSQL
# Referencia: http://www.htmlstaff.org/postgresqlmanual/app-pgdump.html
# Jonas Ferreira – jonas.ferreira@gmail.com – http://jf.eti.br
# C 2010 03 19
#

# VARIAVEIS ##################
export PGPASSWORD=postgres            # Exportando a senha do PostGreSQL para o ambiente (Ubuntu)
vU=”postgres”                          # Usuario no PostGreSQL
vP=”postgres”                        # Senha
vB=nome_base                             # Base De dados
vBI=”/usr/lib/postgresql/8.3/bin/”     # Diretorio raiz dos binarios do PostGreSQL
vR=”/home/”                                # Diretorio raiz
vD=”bkp_pg/”                     # Destino do Backup
vPre=”basePG”                       # Prefixo no nome do arquivo de saida
vE=”.dmp”                              # extencao do arquivo de saida
vH=”localhost”                      # Host do servidor
vAno=`date +%Y`                     #Ano
vMes=`date +%m`                     #Mes
vDia=`date +%d`                     #Dia
vHor=`date +%H`                     #Hora
vMin=`date +%M`                     #Min
vCod=`date +%N`                     #date [date (GNU coreutils) 5.3.0]
vDat=”$vAno$vMes$vDia-$vHor$vMin-$vCod”
vA=$vPre”-“$vB”-“$vDat$vE

# VALIDACAO ##################
if [ -z $vU ]; then
echo “Sem usuario”;
exit 0;
fi
if [ -z $vP ]; then
echo “sem senha”;
exit 0;
fi
if [ -z $vB ]; then
echo “informe o nome da base de dados”;
exit 0;
fi

# BACKUP #####################
echo “# Gerando backup. Aguarde…”
echo “# Destino: $vR$vD”
echo “# Nome do arquivo: $vA”

echo “#################################”

echo “# Compactando backup. Aguarde…”

# Caso queira gerar com inserts (arquivo fica maior)
#$vBI””pg_dump -U $vU -h $vH –inserts $vB | gzip -c > $vR$vD$vA.out.gz

# Caso queira gerar com copy (arquivo fica menor)
$vBI””pg_dump -U $vU -h $vH  $vB | gzip -c > $vR$vD$vA.out.gz

echo “#################################”
echo “# Transferindo o o arquivo para o servidor Windows…”

# Montando a pasta
mount -t smbfs //192.168.0.10/pasta_compartilhada /mnt/ntserver -o username=usuario_de_dominio,password=senha_de_dominio

# copiando o arquivo
cp $vR$vD$vA.out.gz /mnt/ntserver

# desmontando a pasta
umount /mnt/ntserver

# limpando a variavel de ambiente
export PGPASSWORD=
exit
[/shell]

 

Setando permissão de execução no script:

# chmod +x /etc/init.d/bkp.sh

Colocando o script na Crontab:

# crontab -e

Adicione a seguinte linha:

#Realizando Backup do PostgreSQL – Todos os dias a meia noite
00 00 * * * /etc/init.d/bkp.sh

Salve o arquivo e pronto, já pode testar:

# /etc/init.d/bkp.sh

Como saída, você verá algo como:

# Gerando backup. Aguarde…
# Destino: /home/bkp_pg/
# Nome do arquivo: basePG-nome_base-20111116-2012-048760000.dmp
#################################
# Compactando backup. Aguarde…
#################################
# Transferindo o o arquivo para o servidor Windows…

Verifique na pasta de destino se foi criado o arquivo:

# ls /home/bkp_pg

Deve listar o arquivo compactado:

basePG-nome_base-20111116-2012-048760000.dmp.out.gz

Verifique também lá no servidor de arquivo do Windows, na pasta compartilhada, se este mesmo arquivo existi por lá.

Pronto, você acabou de implementar uma solução de Dump de uma base PostgreSQL e transferiu para um servidor de arquivos Windows. Espero que seja útil para você.

 

Howto: Como utilizar a base de usuários do JOOMLA 1.5.x para se logar externamente

Howto: Como utilizar a base de usuários do JOOMLA 1.5.x para se logar externamente com PHP.

Sério, você ainda pode precisar disso.

Imagine a seguinte situação:

Você tem um portal Joomla funcionando normalmente e necessita criar um sistema externo que necessita de autenticação, então você se lembra que no Joomla existe uma base de usuários completa e o que precisa fazer é somente utilizar essa base para se logar, maravilha, então confira no script abaixo como fazer isso, não requer prática nem habilidade:

[php]
< ?php session_start(); // Fazer conexão com o banco de dados $db = mysql_connect("localhost", "usuarioBD", "senhaBD"); mysql_select_db("baseDeDados", $db); // Pegar nome de usuário e senha do formulário $usuario = $_POST['usuario']; $senha = $_POST['senha']; // Obter senha cifrada do usuário $sql = "SELECT name, password FROM jos_users WHERE username='$usuario'"; $resultado = mysql_query($sql); // Extrair os dados do resultado da query $pega = mysql_fetch_array($resultado); $senhaCripto = $pega['password']; // Separar a senha do sal if($senhaCripto) { $partes = explode( ':', $senhaCripto ); $cripto = $partes[0]; $sal = $partes[1]; // Criar hash com a senha fornecida com o sal (se houver) $novoHash = ($sal) ? md5($senha.$sal) : md5($senha); // USUÁRIO E SENHA VÁLIDOS: if( $novoHash == $cripto ) { // Jogando na sessão o nome do usuário, para poder utilizar posteriormente $_SESSION['nome'] = $pega["name"]; // Pode-se simplesmente exibir uma mensagem, ou redirecionar para uma página restrita. echo "Acesso autorizado"; // redirecionando para a pagina restrita. header("location:pagina_restrita.php"); // USUÁRIO EXISTE, MAS A SENHA NÃO BATE: } else { // Pode-se exibir uma mensagem. echo "Acesso negado. A senha não confere!"; // Ou é dar um alert pro usuário: echo "“;
}

// Fechando a conexão
mysql_close($db);
?>

[/php]