Todos os posts de minimedia

Apache – Gerenciando módulos

Os módulos do Apache servem para diversas utilizadades, tais como efetuar controle de banda, aumentar a segurança, gravar logs em bancos de dados, dentre muitas outras funcionalidades. Porém não basta apenas saber para que podemos utilizar os módulos, é preciso efetuar o gerenciamento dos mesmos, abaixo é exibida uma linha de comandos utilizando o utilizando o utilitário apachectl, que é um front-end para o Apache utilizado para facilitar seu gerenciamento:

host:~# apachectl -t -D DUMP_MODULES
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 log_sql_module (shared)
 log_sql_ssl_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 perl_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 setenvif_module (shared)
 status_module (shared)
 unique_id_module (shared)
 vhost_alias_module (shared)
Syntax OK

Como visto acima, o apachectl listou todos os módulos carregados no servidor utilizado neste teste e no final exibiu uma linha informando que a sintaxe está ok. Um dos mandamentos em segurança e desempenho de sistemas, é desabilitar qualquer funcionalidade que não esteja sendo executada, isso para que esta funcionalidade não consuma recursos de sistema e nao deixe brechas de segurança desconhecidas pelo administrador.  Por exemplo, para desabilitarmos o módulo vhost_alias, podemos utilizar o comando a2dismod:

host:~# a2dismod vhost_alias_module
ERROR: Module vhost_alias_module does not exist!
yoda:~# a2dismod vhost_alias
Module vhost_alias disabled.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Após desabilitar o módulo, é necessário reiniciar o Apache:

host:~# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

O comando a2dismod é uma facilidade presente na distribuição Debian, da mesma que forma que podemos desabilitar um módulo com facilidades, podemos também habilitar com o comando a2enmod utilizando o mesmo procedimento realizado para desabilitar um módulo. Repare que os módulos são listados através do apachectl com uma palara “_module” ao final, para executar o procedimento de habilitar ou desabilitar módulos, deve ser digitado somente o nome do módulo como no exemplo anterior.

MySQL – Backup e Restore

Tarefas como backup e restore de bancos de dados MySQL são extremamente úteis no dia-dia dos administradores de sistemas, seja qual for o motivo, como migração de servidores, migração de bases de dados ou diversos outros motivos. Abaixo descrevemos um exemplo simples e funcional do backup de uma base de dados  MySQL utilizando o comando mysqldump:

user@host:~$ mysqldump -h 192.168.1.20 -P 3306 -u teste --databases teste -p > /tmp/teste.sql

Com o comando mysqldump, primeiramente dizemos com a opção -h o host que queremos efetuar backup, se fosse nossa máquina local logicamente trataríamos como local host. Em seguida com a opção -P, informamos ao mysqldump qual a porta de comunicação deve ser utilizada, com a opção -u, é informado o nome de usuário com permissão a base de dados, com o parâmetro –databases é informado o nome da base de dados e finalmente com a opção -p solicitamos ao mysqldump que exiba o prompt de senha, solictando a senha do usuário. Finalizando ao final da linha de comandos redirecionamos a saída para o arquivo /tmp/teste.sql, este arquivo conterá o backup de toda a base de dados.

O restore de uma base de dados MySQL também é uma tarefa simples, bastando efetuar a linha de comandos abaixo utilizando o comando mysql informando a senha do usuário com acesso ao banco de dados e o arquivo de backup:

user@host:~$ mysql -h 192.168.1.20 -P 3306 -u teste < /tmp/teste.sql -p

Na linha de comandos acima, utilizamos algumas opções já conhecidas do mysqldump, após sua execução o banco de dados teste estará restaurado.

 

Comando df, analisando espaço em disco

Um dos comandos mais importantes para administradores de sistemas Linux é o comando df, com ele podemos analisar o espaço em discos e partições. Abaixo temos um exemplo de utilização do comando df sendo executados sem argumentos:

host:~# df
Sist. Arq.           1K-blocos      Usad Dispon.   Uso% Montado em
/dev/sda2             28834744   9757724  17612296  36% /
tmpfs                   513140         0    513140   0% /lib/init/rw
udev                    508860       212    508648   1% /dev
tmpfs                   513140         0    513140   0% /dev/shm
/dev/sda3             47596776  36389456   8789540  81% /home

Como podemos visualizar no exemplo acima, a primeira coluna exibe device utilizado, no caaso o disco rígido primário, secundário, área de troca (swap) ou dispositivo montado, como um pen-drive  ou um cartão de memória, na seunda coluna é exibido o tamanho do disco ou partição, na terceira coluna é possível visualizar a quantidadae  de espaço utilizado, na quarta coluna a quantidade de espaço disponível, na quinta coluna o percentual utilizado e finalmente na última coluna o ponto de montagem.

Embora o resultado do comando df no exemplo acima tenha nos dado muitas informações, as mesmas estão em formatos de bytes, porém podemos tomar a leitura mais fácil, para isso basta utilizar as opções -k ou –kilobytes para a exibição do resultdo em bytes, ou -m ou –megabytes para exibição do resultado em megabytes:

host:~# df -m
Sist. Arq.           1M-blocos      Usad Dispon.   Uso% Montado em
/dev/sda2                28159      9530     17200  36% /
tmpfs                      502         0       502   0% /lib/init/rw
udev                       497         1       497   1% /dev
tmpfs                      502         0       502   0% /dev/shm
/dev/sda3                46482     35537      8584  81% /home

Acima utilizamos o comando df com a opção -m, porém podemos melhorar a visualização dos resultados mais ainda com a opção -h ou –human-readable, que como o nome já diz facilita a leitura humana, convertendo o resultado para o formato mais conveniente como mega, giga, tera, etc:

host:~# df -h
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda2              28G  9,4G   17G  36% /
tmpfs                 502M     0  502M   0% /lib/init/rw
udev                  497M  212K  497M   1% /dev
tmpfs                 502M     0  502M   0% /dev/shm
/dev/sda3              46G   35G  8,4G  81% /home

Com os exemplos anteriores, é possível ter um total gerenciamento do espaço em disco com o comando df. Em caso de servidores que possuem compartilhamentos de redes montados como por exemplo NFS ou SMB, é possível exibir somente pontos de montagem locais adicionando a opção -l ou –local:

host:~# df -h -l -T
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda2     ext3     28G  9,4G   17G  36% /
tmpfs        tmpfs    502M     0  502M   0% /lib/init/rw
udev         tmpfs    497M  212K  497M   1% /dev
tmpfs        tmpfs    502M     0  502M   0% /dev/shm
/dev/sda3     ext3     46G   35G  8,4G  81% /home

Além das opções já conhecidas, no exemplo acima utilizamos a opção -T ou –print-type, que adicionou a coluna com o tipo do sistema de arquivos, no caso a segunda coluna. de possa da informação apresentada na segunda coluna, podemos incrementar ainda mais a saída do comando df com a opção -t ou –type, especificando o tipo de sistema de arquvos no qual desejamos obter informações:

host:~# df -h -l -T -t ext3
Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
/dev/sda2     ext3     28G  9,4G   17G  36% /
/dev/sda3     ext3     46G   35G  8,4G  81% /home

No exemplo acima, foi expecificado o tipo de sistema de arquivos ext3, com isso o resultado foi somente o sistema de arquivos especificado. O comando df é esencial na resolução de problemas no dia-dia,  portanto dominar suas opções e entender seus conceitos é fundamental para qualquer administrador de sistemas Linux.