Archive for the ‘Copiar-Colar’ Category

[CC] Testando proxy em linha de comando

Faço muito atendimento remoto, via linha de comando.

Uma das maravilhas do Linux, pois não preciso de uma interface gráfica para resolver a maior parte dos meus problemas!

As vezes são necessárias mudanças no servidor proxy e nem sempre conseguimos testar no mesmo servidor e verificar o problema que está ocorrendo (por exemplo, quando o DNS não atende corretamente e o proxy está funcionando 100%!)

Para resolver esta questão, basta usar a variável de ambiente e o lynx! Veja:

$ env http_proxy=http://IP_DO_PROXY:PORTA_PROXY lynx ENDEREÇO_A_SER_TESTADO

Espero que tenha ajudado os fãs de linha de comando, assim como eu!

Anúncios

[CC] Habilitando impressoras CUPS via linha de comando

Quando adicionamos um impressora em rede (em geral ligado numa estação de trabalho) no CUPS, é comum que a impressora fique desabilitada, por falta de comunicação, por exemplo.

Para que ela volte a funcionar, é necessário habilitá-la. Para isto, em geral, se faz via uma interface (seja o administrativo do próprio CUPS via interface web, ou seja em uma interface gráfica instalada em sua distribuição Linux.

Agora quando o serviço do CUPS está instalado em um servidor sem interface gráfica, servindo à um sistema local e você tem apenas acesso remoto, via SSH, como fazer?

Tradicionalmente o comando seria este (vem desde o tempo dos “Unix’s”):

$ enable nome-da-impressora

No entanto, no sistema que eu estava administrando (e acredito que seja verdade para um grande número de Linux atualmente), o comando “enable” faz parte do shell [1], assim, não funciona para o propósito que eu precisava (o de habilitar a impressora!).

Pesquisando um pouco [2], descobri que existe uma alternativa do CUPS, que coloco abaixo:

$ cupsenable nome-da-impressora

Simples e direto assim! Espero que seja útil a mais alguém!

 

Referências:

[1] https://pt.wikipedia.org/wiki/Shell_(computação)

[2] http://www.linuxquestions.org/questions/linux-newbie-8/help-how-to-enable-printer-in-cups-using-command-line-839898/

[CC] Validador PAC

Durante algum tempo procurei um validador de arquivos de proxy (proxy.pac ou wpad.dat).

Não tinha encontrado nada até a data de hoje (se existiam, eu não soube procurar!).

Obrigado Jan Henning Thorsen por compartilhar conosco este função muito útil!

Segue o endereço do PAC file tester: https://app.thorsen.pm/proxyforurl

[CC] Como extrair texto de um arquivo de dados (binário) em Windows

Para um usuário acostumado com o mundo *nix, extrair textos (strings) de arquivos binários é trivial. Basta utilizar o comando “strings”. Mas em um Windows Server, como faço isto? É mais simples que eu poderia imaginar! Existe o comando “findstr”. MUITO útil e BASTANTE funcional!!!

Exemplo de uso:

findstr "meu nome" arquivo.dat

 

Referências:

[1] Findstr – Search for stringshttp://ss64.com/nt/findstr.html
[2] Findstrhttps://technet.microsoft.com/en-us/library/bb490907.aspx
[3] Findstrhttp://en.wikipedia.org/wiki/Findstr

[CC] git com proxy

Recentemente um cliente pediu-me auxílio em uma rede onde a navegação direta é restrita, forçando o uso de proxy. Com isto, o atualizador do sistema deixou de funcionar, pois a nova versão do mesmo adotou o git como parte de seu ferramental.

Tive então que pesquisar como forçar o uso do proxy através do git. Descobri [1] que é bastante simples, bastando adicionar as linhas abaixo (com a referência correta de seu endereço de proxy) antes de executar a chamada do git:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:3128
git config --global https.proxy https://proxyuser:proxypwd@proxy.server.com:3128

 

Referências:

[1] Getting git to work with a proxy serverhttp://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server

[CC] Ajustando encondig para pg_dumpall

Hoje um cliente me relatou que o backup lógico do seu banco PostgreSQL havia parado com a seguinte mensagem:

pg_dump: Error message from server: ERROR:  character 0xe28093 of
encoding "UTF8" has no equivalent in "LATIN1"

Descobri [1] que seria necessário ajustar a configuração de enconding do client do PostgreSQL. Descobri também que o comando “pg_dump” oferece uma opção para definir o conjunto de caracteres correto (“–encoding=UTF8”, no caso em específico).

No entanto, como eu utilizo um backup completo do banco, esta opção não me servia, já que o comando “pg_dumpall” não oferece suporte para este parâmetro. E foi no manual do “pg_dump” que encontrei minha solução: antes de exportar o banco, basta configurar a variável PGCLIENTENCODING! Segue o exemplo:

export PGCLIENTENCODING=UTF8
pg_dumpall ...

Referências:

[1] http://stackoverflow.com/questions/14525505/postgres-issue-encoding-utf8-has-no-equivalent-in-encoding-latin1

[CC] Desabilitar o envio de e-mails na crontab

Recentemente deparei-me com um servidor no qual não era feita uma manutenção preventiva a algum tempo (nem todo cliente opta pelo serviço!). Aproveitando uma necessidade criada, acabei fazendo uma verificação da situação do servidor.

E encontrei vários e-mails destinados ao “root”, ocupando espaço desnecessário (o volume era considerável!). Verifiquei que a maioria dos e-mails eram oriundos de processos executados na crontab.

Como ninguém estava acompanhando estas mensagens (e nem iria), achei mais conveniente desabilitá-las. Procurei então por uma maneira de eliminar o envio de forma geral e não para cada agendamento criado (outra possibilidade).

Na referência abaixo também é citada esta possibilidade individual. Mas fiquei com a opção de fazer isto através da variável MAILTO. Basta adicioná-la (caso não exista na cron) com o valor “zerado”:

MAILTO=""

Referência:

Disable The Mail Alert By Crontab Command – http://www.cyberciti.biz/faq/disable-the-mail-alert-by-crontab-command/

[CC] Imprimindo via CUPS em impressora compartilhada em Windows

Sempre que preciso colocar a sintaxe de usuário e senha no “DeviceURI” do CUPS para imprimir em uma impressora compartilhada no Windows, preciso recorrer à internet para saber as opções corretas.

Para facilitar meu trabalho, resolvi criar aqui um post rápido para deixar documentado estas opções. Outras opções e configurações, por favor, procurem na referência usada ou na própria internet.

DeviceURI para impressão de CUPS em Windows:

smb://servidor/impressora
smb://grupo_de_trabalho/servidor/impressora
smb://usuario:senha@servidor/impressora
smb://usuario:senha@grupo_de_trabalho/servidor/impressora

Referência: SDB:Printing via SMB (Samba) Share or Windows Share – openSUSE – http://en.opensuse.org/SDB:Printing_via_SMB_%28Samba%29_Share_or_Windows_Share

[CC] Estendendo uma partição LVM

Embora seja uma tarefa simples e fácil de executar com LVM, até o momento eu ainda não tinha passado pela necessidade de estender uma partição lógica. Pois agora me surgiu a necessidade e fui executar em ambiente de testes antes de fazer em produção. Realmente é BEM SIMPLES e funcional!

Existem diversos tutoriais, mas acabei usando [1] e [2]. Do primeiro fica a dica que a extensão pode ser feita definindo um novo valor ou então através da adição de espaço que se deseja (e possua). Do segundo fica a dica sobre a execução do “e2fsck”. Nunca é demais conferir! 😉

Então seguem meus passos (para consultas futuras):

# umount /PARTIÇÃO
# lvextend -L<NOVO-TAMANHO><UNIDADE> /dev/<GRUPO-DE-VOLUME>/<NOME-PARTIÇÃO>
# e2fsck -f /dev/<GRUPO-DE-VOLUME>/<NOME-PARTIÇÃO>
# resize2fs -p /dev/<GRUPO-DE-VOLUME>/<NOME-PARTIÇÃO>
# e2fsck -f /dev/<GRUPO-DE-VOLUME>/<NOME-PARTIÇÃO>
# mount /PARTIÇÃO

Referências:
[1] Extending a logical volume – http://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html
[2] How to resize LVM logical volumes with ext4 as filesystem – http://pubmem.wordpress.com/2010/09/16/how-to-resize-lvm-logical-volumes-with-ext4-as-filesystem/

[CC] Extrair algumas páginas de um PDF

Precisei extrair somente algumas páginas de um arquivo .pdf gerando um novo arquivo. Aqui [1] encontrei 3 diferentes formas de obter o mesmo resultado. Eu testei e usei a seguinte:

$ pdftops <arquivo_origem> - | psselect -p<páginas> | ps2pdf14 - <arquivo_destino>

Veja o comando com as opções preenchidas:

$ pdftops arq1.pdf - | psselect -p17,21-23 | ps2pdf14 - arq2.pdf

[Atualizado em 10/07/2017]

Embora a dica acima funcione, conforme o conteúdo, ela pode gerar perda de qualidade (principalmente para imagens). Assim, outra forma de resolver [2], pode ser assim:

$ yes | gs -dBATCH -sOutputFile=<arquivo_destino>.pdf -dFirstPage=<primeira_pagina> -dLastPage=<ultima_pagina>  -sDEVICE=pdfwrite <arquivo_origem>.pdf

Referências:

[1] Tech Tip: Extract Pages From a PDF – http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf

[2] Splitting a PDF with Ghostscript – https://stackoverflow.com/questions/10228592/splitting-a-pdf-with-ghostscript