BtrFS : Redimensionando o sistema de arquivos

FN57XR2HWNUE89W.MEDIUM

Olá ! Recentemente precisei redimensionar um sistema de arquivos BTRFS (caso não conheça: https://elias.praciano.com/2016/02/introducao-ao-sistema-de-arquivos-btrfs/).  Para ser mais preciso, o ambiente estava com o BTRFS implementado utilizando LVM e o procedimento de redimensionamento do LVM  foi executado normalmente. Diferentemente dos outros sistemas de arquivos, não se utiliza o caminho do dispositivo de armazenamento para efetuar o redimensionamento, e sim o path do mesmo:

Por exemplo, para redimensionar um FS BTRFS montado em “/”, para o máximo do tamanho do volume:

btrfs filesystem resize max /

Anúncios

[Conversando] Linux, carreira e gratidão

Olá ! Esse é meu primeiro post que não possui teor técnico e não farei disso uma prática, porém, após quase 6 anos que decidi criar meu blog, muitas coisas (boas) aconteceram. Desta forma, gostaria de compartilhar essa experiência.

  • Bom, se em 2010, me dissessem onde eu estaria hoje (profissionalmente), eu mesmo não acreditaria ! Apesar de sempre ter estudado e atuado com Linux e soluções livres, no mercado de trabalho onde eu atuava eu nunca conseguia uma oportunidade de crescimento. Sei que boa parte era por naquela época ainda não ter concluído o ensino superior, mas o fato é que nunca aparecia uma oportunidade para iniciar uma carreira verdadeiramente. Entre essa “desilusão”, ouvia muitos comentários, alguns construtivos e outros não, que com Linux não havia como construir uma carreira, certa vez, um conhecido falou que “O Linux é Dom Quixote da computação”, eu não quis aprofundar a discussão, somente ouvi para refletir.
  • Decidi então começar a investir na certificação LPI e em estudos na área de segurança da informação. Mal sabia eu que isso iria mudar completamente minha carreira e vida. Ainda nos primeiros períodos da faculdade, por ter obtido a LPI 1, recebi uma chance de atuar com Linux e Softwares Livres, e o melhor, a oportunidade de se mudar para um mercado de trabalho de T.I. muito maior e aquecido. Precisamos ser gratos sempre, portanto, eu jamais poderia deixar de agradecer essa oportunidade que recebi e que me propiciou muitas conquistas, conhecimento e alegrias – especialmente  o fato de ter iniciado também uma carreira como professor, além de consultor. Mais uma vez, eu mesmo não acreditaria nisso ! Eu sempre fui muito tímido. Quem diria que dar aula seria uma das maiores paixões da minha vida !
  • Pra concluir, seis anos após ter ouvido sobre “não ter como construir uma carreira atuando com Linux”, sou um profissional especializado, certificado e mantenho esse blog (agradeço a todos que o visitam, vocês são a razão do blog existir) com muito entusiamo. Atualmente estou em uma colocação fantástica, a qual também sou especialmente grato, por atuar com pessoas e profissionais fantásticos, além do crescimento que me propicia.

Então, o que me motivou a escrever esse texto? Respondo: Me fizeram a seguinte pergunta recentemente: “Se alguém que estivesse começando na sua área, te pedisse conselhos, o que você diria?”.

Eu só posso dizer: Acredite em você ! Ame o que você faz ! Quando disserem que algo é impossível, talvez somente não querem que você vá além deles ! Você irá encontrar muita gente desiludida, que desistiu no caminho, portanto, se capacite, insista, então conquiste !

Obrigado !

Obs.: Desnecessário rebater sobre carreira e posição do Linux no mercado atual, não é mesmo? 🙂

Zimbra 8.6/8.7/8.8: Registrando o assunto e anexos de todas as mensagens (atualizado)

Olá ! Nesse artigo irei comentar sobre uma necessidade de frequente em ambientes de correio eletrônico: Registrar os assuntos e nome dos anexos das mensagens que trafegam pelo ambiente.

Os procedimentos contidos nesse tutorial foram validados nas versões 8.6, 8.7 e 8.8, portanto, caso precise implementar em alguma versão anterior, poderá ser necessário efetuar algum ajuste.

Primeiramente, arquivo /opt/zimbra/conf/custom_header_checks deve ser criado com o seguinte conteúdo:

/^Subject:/ WARN Subject :
/filename=\"?(.*)\"?$/ WARN Document Attachment :

Captura de tela de 2015-05-29 15:12:26

Para que o Zimbra registre as informações desejadas será necessário definir o parâmetro “zimbraMtaBlockedExtensionWarnRecipient” para FALSE:

Captura de tela de 2015-05-29 15:09:39

Após modificar o parâmetro acima, os serviços do Amavis e Postfix devem ser reiniciados e os parâmetros para que o Postfix registre os eventos já podem ser adicionados.

  1. $ zmprov mcf zimbraMtaBlockedExtensionWarnRecipient FALSE

  2. $ zmamavisdctl restart

  3. $ zmprov mcf zimbraMtaHeaderChecks “pcre:/opt/zimbra/conf/postfix_header_checks,  pcre:/opt/zimbra/conf/custom_header_checks”

  4. $ postfix reload

Captura de tela de 2015-05-29 15:11:27

Desta forma, toda mensagem que passar pelo servidor irá gerar o alerta com a informação de Assunto e arquivos em anexo.

Referências:

http://imanudin.net/2015/01/14/adding-subject-and-attachment-information-on-the-log-zimbra-8-58-6/

Arquivos MSG: Visualizando no Linux

email_logo

Olá !

Gostaria de compartilhar com vocês um procedimento para conseguir abrir mensagens .MSG – formato gerado pelo Outlook – no Linux. O Outlook salva as mensagens neste formato e mesmo clientes de E-mail com o Outlook não conseguem abrir.

Para conseguir visualizar mensagens neste formato, é necessário converter para .EML e a ferramenta msgconvert pode ser utilizada para isso:
Instalar: cpan -i Email::Outlook::Message
Executar: msgconvert ARQUIVO.MSG
Será gerado um arquivo de mesmo nome porém com o formato e extensão EML.

Windows não inicia após instalar o Ubuntu

Olá ! Um conhecido instalou o Ubuntu 13.10 em seu notebook e o Windows 7 passou a não inicializar mais, para corrigir precisei modificar os parâmetros de carregamento deste SO, da seguinte forma:

Entrada criada pelo Ubuntu:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Entrada corrigida:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Apache com mod_proxy e múltiplos VirtualHost

Recentemente, recebi a demanda de configurar um servidor Apache com mod_proxy para efetuar balanceamento de diversos sites, sendo que cada um deveria direcionar para os seus respectivos servidores de aplicação, conforme a representação abaixo:

mod_proxy_and_vhost

Para que isso seja possível, basta criar as entradas Virtualhost para cada endereço, e dentro da diretiva especificar as configurações do balanceamento. Seguindo a representação acima, vejamos como fica a configuração, que também contempla o direcionamento das conexões HTTP de todos os endereços para https:

Também publicado em: 

https://github.com/fsschmidt/outros/blob/master/mod_proxy_multiple_virtualhost.conf

### CONFIGURACAO DO BALANCER COM MULTIPLOS VIRTUALHOST ###
### site1.laboratorio.com.br
### site2.laboratorio.com.br
### site3.laboratorio.com.br

NameVirtualHost *:80

<VirtualHost *:80>

#EFETUA O DIRECIONAMENTO DAS CONEXÕES HTTP PARA HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

NameVirtualHost *:443

### SITE1 ####
<VirtualHost *:443>
ServerName site1.laboratorio.cim.br
<Proxy balancer://mycluster>
BalancerMember http://10.196.1.1:80 route=1
BalancerMember http://10.196.1.2:80 route=2
ProxySet stickysession=ROUTEID
</Proxy>
ServerAdmin webmaster@localhost
SetEnv proxy-initial-not-pooled 1
####
DocumentRoot /var/www/
RewriteEngine On
#RewriteRule ^rest(.*)$ https://%{SERVER_NAME}/prototype/rest/$1 [QSA,L]
LimitRequestLine 32768
ProxyRequests off
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/cert.key
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/other_vhosts_access.log combined
LogLevel warn

SSLVerifyClient none
SSLVerifyDepth 10
SSLOptions +StdEnvVars +ExportCertData

Header add set-cookie “ROUTEID=PHPSESSION.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>

#######################

### SITE2 ####
<VirtualHost *:443>
ServerName site2.laboratorio.com.br
<Proxy balancer://mycluster>
BalancerMember http://10.196.2.1:80 route=1

BalancerMember http://10.196.2.2:80 route=2

ProxySet stickysession=ROUTEID

</Proxy>
ServerAdmin webmaster@localhost
SetEnv proxy-initial-not-pooled 1
####
DocumentRoot /var/www/
RewriteEngine On
#RewriteRule ^rest(.*)$ https://%{SERVER_NAME}/prototype/rest/$1 [QSA,L]
LimitRequestLine 32768
ProxyRequests off
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/cert.key
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/other_vhosts_access.log combined
LogLevel warn

SSLVerifyClient none
SSLVerifyDepth 10
SSLOptions +StdEnvVars +ExportCertData

Header add set-cookie “ROUTEID=PHPSESSION.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>

#######################

### SITE 3 ####
<VirtualHost *:443>
ServerName site3.laboratorio.com.br
<Proxy balancer://mycluster>
BalancerMember http://10.196.3.1:80 route=1
BalancerMember http://10.196.3.2:80 route=2
ProxySet stickysession=ROUTEID
</Proxy>
ServerAdmin webmaster@localhost
SetEnv proxy-initial-not-pooled 1
####
DocumentRoot /var/www/
RewriteEngine On
#RewriteRule ^rest(.*)$ https://%{SERVER_NAME}/prototype/rest/$1 [QSA,L]
LimitRequestLine 32768
ProxyRequests off
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/certs/cert.key
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/other_vhosts_access.log combined
LogLevel warn

SSLVerifyClient none
SSLVerifyDepth 10
SSLOptions +StdEnvVars +ExportCertData

Header add set-cookie “ROUTEID=PHPSESSION.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>