Durante minha experiência de trabalho na Levier, tive a oportunidade de trabalhar com uma profissional de ponta. A Karina é uma analista/programadora daquelas de tirar o chapéu, se eu não tivesse visto a velocidade com que ela opera um terminal linux provavelmente não acreditaria. Durante uma atualização via script sh (shell) no cliente fizemos um acompanhamento para evitar erros no cliente. Durante essa operação era feito um ssh para acessar o servidor de testes(IP.11) e produção(IP.9) e do servidor de produção um ssh para o servidor do cliente case houvesse problemas. O acompanhamento era feito por um team viewer direto na máquina do cliente enquanto ele rodava o script.
Durante a operação verificamos uma atualização falha devido a um script mais antigo ter sido rodado. Para corrigir a falha foi necessário comparar todos os arquivos de todas as pastas. No terminal shell do Linux isso pode ser feito rapidamente com um comando. Além das comparações de pastas foram comparados arquivos para verificar as diferenças usando comando diff, acesso mysql pelo terminal, e, além disso, alguns arquivos foram editados on line por editores como vi, nano e pico no próprio terminal. Outros arquivos foram copiados diretamente via scp, pois como haviam problemas o cliente liberou o acesso. Uma hora depois haviam sido corrigidos em torno de 35 arquivos. A base do cliente foi compactada pelo próprio terminal e copiada para o nosso servidor via scp. Segue, agora alguns dos comandos utilizados durante a operação.
Comparação de arquivos:
Criar um arquivo com as diferenças:
Compara todas as pastas:
O -bw ignora espaços em branco (white) e linhas (b).
Para usar o editor vi:
Para usar o editor nano:
Para usar o editor pico:
Acesso ao Banco de Dados
O -u indica o usuário e o root é o nome do usuário que pode ser substituído por outro usuário ativo. O -p é a senha é possivel colocar a senha diretamente ao lado do -p como é feito com o usuário mas como o comando ficará armazenado em history não é indicado.
Para mostrar as bases ativas:
Para acessar uma das bases:
Para rodar um script sql diretamente no terminal linux antes de acessar a base:
mysql import => também pode ser usado para importação
Para criar um back up do banco remoto:
Para acompanhar o mysqldump:
-c => gera sql (insert completo)
-t => no create
-d => esqueleto do banco
Outra opção seria:
Compactar o arquivo
Copia remota:
O IP nesse caso era um IP externo. O inicio 200.195 indica uma máquina dentro do território brasileiro.
Durante a operação verificamos uma atualização falha devido a um script mais antigo ter sido rodado. Para corrigir a falha foi necessário comparar todos os arquivos de todas as pastas. No terminal shell do Linux isso pode ser feito rapidamente com um comando. Além das comparações de pastas foram comparados arquivos para verificar as diferenças usando comando diff, acesso mysql pelo terminal, e, além disso, alguns arquivos foram editados on line por editores como vi, nano e pico no próprio terminal. Outros arquivos foram copiados diretamente via scp, pois como haviam problemas o cliente liberou o acesso. Uma hora depois haviam sido corrigidos em torno de 35 arquivos. A base do cliente foi compactada pelo próprio terminal e copiada para o nosso servidor via scp. Segue, agora alguns dos comandos utilizados durante a operação.
Comparação de arquivos:
- diff arquivo1 arquivo2
Criar um arquivo com as diferenças:
- diff arquivo1 arquivo2 >> diferencas.txt
Busca por palavra chave em arquivos dentro de pastas e subpastas:
- grep -R 'palavra' pasta/ | more
- diff -qrbw
O -bw ignora espaços em branco (white) e linhas (b).
Para usar o editor vi:
- vi nome_arquivo
Para usar o editor nano:
- nano nome_arquivo
Para usar o editor pico:
- pico nome_arquivo
Acesso ao Banco de Dados
- mysql -uroot -p
O -u indica o usuário e o root é o nome do usuário que pode ser substituído por outro usuário ativo. O -p é a senha é possivel colocar a senha diretamente ao lado do -p como é feito com o usuário mas como o comando ficará armazenado em history não é indicado.
Para mostrar as bases ativas:
- show database
Para acessar uma das bases:
- use nome_db
Para rodar um script sql diretamente no terminal linux antes de acessar a base:
- mysql nome_db --user=marcelo -p < script.sql
mysql import => também pode ser usado para importação
- mysqldump nome_db > back_up.sql
Para acompanhar o mysqldump:
-c => gera sql (insert completo)
-t => no create
-d => esqueleto do banco
Outra opção seria:
- mysqldump -u[usuario] -p[senha] nome_db > back_up.sql
Compactar o arquivo
- tar -fvzx back_up.sql
Copia remota:
- scp root@200.195.161.50:/home/usuario/cliente/arquivo.tgz
O IP nesse caso era um IP externo. O inicio 200.195 indica uma máquina dentro do território brasileiro.
Outros comandos que utilizei para desenvolvimento:
Para baixar projeto do svn:
- svn co http://ip/pasta/projeto
Para evitar conflitos de desenvolvimento no Netbeans é necessário apagar arquivos do controle do svn:
- rm -rf pasta/projeto/nbproject
Mudar permissões de usuário para pasta e subpastas:
- chmod -R 777 pasta/
Para mudar o dono da pasta:
- chown -R novo_usuario pasta/