Mostrando postagens com marcador file. Mostrar todas as postagens
Mostrando postagens com marcador file. Mostrar todas as postagens

sexta-feira, 10 de abril de 2009

Como compartilhar pastas entre sistemas Linux

Um tutorial simples de como compartilhar diretórios no linux para estações linux. Primeiramente são necessários dois pacotes, um no servidor e um no cliente, lembrando que no servidor é onde eu vou compartilhar a pasta e no cliente é onde eu vou acessar a pasta compartilhada.
No servidor é preciso instalar o pacote nfs-kernel-server, para isso digite como root:
# apt-get install nfs-kernel-server

No cliente é preciso instalar o pacote nfs-common, para isso digite como root:
# apt-get install nfs-common

Após a instalação vem a parte da configuração, o que não é tão complicado.
No servidor temos que dizer qual o diretório estamos compartilhando, qual o nível de acesso a esse diretório e quem pode acessar esse compartilhamento.
Para isso basta editar o arquivo /etc/exports no servidor e configurá-lo da seguinte forma:
#exemplos
/home/fulano/Desktop 192.168.1.*(rw)
/var/log/ Desktop-01 (ro)

Na primeira linha o diretório Desktop do usuário fulano está sendo compartilhado com permissão de escrita para todos as estações com IP iniciando por 192.168.1.
Na segunda linha o diretório /var/log está sendo compartilhado apenas para a estação desktop-01 com permissão somente de leitura.

Para aplicar as alterações no arquivo exports, execute " exportfs -ra " ou reinicie o serviço NFS server (/etc/init.d/nfs-kernel-server restart).

E no cliente?
Bom, como o nfs é um tipo de sistema de arquivos, para o cliente acessar os diretórios compartilhados será preciso montar o diretório compartilhado pelo servidor em um diretório local, assim como é feito com discos rígidos, pendrives, mp3, cdrom, etc.... Supondo que o endereço IP do servidor seja 192.168.1.3 o comando a ser executado no cliente para montar o primeiro compartilhamento seria esse:

#mount -t nfs 192.168.1.3:/home/fulano/Desktop /mnt

A partir daí o diretório Desktop do usuário fulano da máquina de IP 192.168.1.3 (servidor) será acessado do diretório /mnt da estação cliente.

Para verificar quais diretórios estão compartilhados no servidor execute o comando:
# exportfs

Lembre-se de dar as devidas permissões de acesso local aos arquivos e diretórios a serem acessados via compartilhamento.

domingo, 1 de fevereiro de 2009

TAIL - Visualizando o final dos arquivos

Falando em logs segue abaixo a definição de um comando extremamente útil para visualização de logs, inclusive em tempo real, o tail.

Nome: tail
Definição: Mostra a última parte dos arquivos. Por padrão imprime as últimas 10 linhas de cada arquivo na saída padrão.
Sintaxe:tail [opções] [arquivos]
Opções:
--retry Tenta intermitentemente acessar o arquivo quando este não está disponível no momento. É normalmente utilizado junto com a opção --follow que significa perseguir por nome.
-c N Exibe na saída padrão os últimos N bytes. Mesmo que --bytes=N.
-F A mesma coisa que --follow=name –retry.
-n N Exibe na saída padrão as últimas N linhas no lugar das 10 últimas. Se utilizado o símbolo de + antes do N exibe a partir da enésima linha ex: tail -n +10 /var/log/syslog exibe a partir da décima linha até o final do arquivo.
--pid=PID Com a opção -f, termina após o processo PID terminar.
-s S Com a opção -f espera por aproximadamente S segundos entre as iterações. O padrão é 1)
-q Não exibe os cabeçalhos com o nome dos arquivos.
-v Sempre exibe os cabeçalhos com os nomes dos arquivos.

Exemplos:
#tail -f -s 3 /var/log/syslog –pid=3342 -v (Exibe em tempo real de 3 em 3 segundos as últimas linhas do arquivo /var/log/syslog inclusive com o nome do arquivo enquanto o processo 3342 estiver executando.

#tail -F $HOME/.xsession-erros /var/log/messages -n 30 (Faz várias tentativas para exibir as últimas 30 linhas dos arquivos '/home/”usuário corrente”/.xsession-erros' e '/var/log/messages' caso estes estejam inacessíveis no momento.

quinta-feira, 29 de janeiro de 2009

killall - O irmão mais velho do kill

Nome: killall
Definição: Mata um processo pelo nome. Ele envia um sinal a todos os processos, executando qualquer um dos comandos especificados. Se não for especificado nenhum nome de sinal, SIGTERM é enviado. Os sinais podem ser especificados quer pelo nome, quer pelo número ou pela opção -s.
Sintaxe: killall [opções] [-s sinal] [--user usuário] [nome do processo]
Opções:
-I Ignora se o nome do processo está em letras maiúsculas ou minúsculas.
-i Pergunta interativamente por uma confirmação antes de enviar o sinal TERM.
-r Interpreta NOME como uma expressão regular extendida.
-s sinal Envia sinal ao invés de SIGTERM.
--user usuário Mata somente processo(s) executados como 'usuário'.
-v Informa se o sinal foi enviado com sucesso;

Exemplos:
#killall -9 -I firefox (Envia o sinal de término para o programa firefox)

#killall --user tommy -v -i nautilus (Pergunta interativamente se deseja terminar com o processo de nome nautilus do usuário tommy e ao se escolher a opção 'y' de yes exibe uma mensagem com o número do processo e se ele foi morto com o sinal 15).#

Falando em processos, estes são utilizados também para disponibilizar acessos a um host através da rede por meio de portas. Para descobrirmos quais portas estão abertas numa máquina podemos utilizar o comando 'nmap' que possui também outras funcionalidades muito interessantes e é também utilizado por hackers para descobrir brechas em servidores.

quinta-feira, 22 de janeiro de 2009

Pesquisa de arquivos e diretórios

Para fazer pesquisas no sistema de arquivos do linux podemos utilizar basicamente dois comandos: locate e find. O locate depende de uma base de dados que é atualizada pelo comando updatedb. Já o find faz a busca em tempo real sem pesquisar em base de dados, ele varre o disco a procura da expressão passada como parâmetro, por isso é mais lento, porém mais preciso. Uma prática interessante é executar o comando updatedb toda vez que inicializar o sistema operacional, dessa forma a base de dados de pesquisa do comando “locate” estará sempre atualizada. Diferente do comando “find”, o comando locate não necessita do caminho inicial de pesquisa, como a pesquisa é feita numa base de dados, ele admite que a pesquisa é feita a partir da raiz.

Nome: locate
Definição: procura arquivos ou diretórios pelo nome. O locate pesquisa em uma ou mais bases de dados de informações de arquivos e diretórios em busca do nome passado como parâmetro.
Sintaxe: locate [opções] [expressão]
Opções:
-c Exibe apenas a quantidade de resultados da busca;
-e Exibe apenas os arquivos existentes no momento; Como a busca do locate é feita em uma base de dados, um arquivo que é apagado constará na base de dados até que seja executado o comando updatedb, no entanto, se for utilizada a opção -e o resultado só exibirá os arquivos existentes.
-i Ignora se as letras são maiúsculas ou minúsculas;
-0 Exibe os resultados um ao lado do outro ao invés de linha a linha;

Exemplos:
#locate home (Exibe linha a linha todos os resultados que contém a palavra home);
#locate -c *.conf (Exibe a quantidade de arquivos com a extensão .conf);
#locate -ie x11 (Exibe os resultados somente de arquivos existentes em disco da expressão x11 tanto maiúsculos como minúsculos);






Nome: find
Definição: Procura por arquivos em uma hierarquia de diretórios.
Sintaxe: find
Opções:
-mount Realiza a pesquisa somente no sistema de arquivo atual, excluindo outros tipos.
-empty Exibe o resultado da pesquisa somente com arquivos e diretórios em branco.
-name Especifica o nome a ser pesquisado. Aceita os metacaracteres ('*', '?', e '[]').
-iname Semelhante ao name porém ignorando se as letras estão em maiúsculas ou minúsculas;
-path Especifica um nome de diretório a ser pesquisado.
-executable Pesquisa por arquivos e diretórios com atributo de execução.
-perm Permite especificar qual a permissão que o arquivo ou diretório a ser pesquisado tem. Pode ser utilizada a notação em octal ex: 755 que equivale a (rwxr-xr-x)
-readable Pesquisa arquivos ou diretórios com permissão de leitura.
-writable Pesquisa arquivos com atributo de escrita.
-size n Pesquisa arquivos pelo tamanho em 'n' unidades. Essas unidades podem ser em bytes, Kilobytes, Megabytes ou Gigabytes utilizando-se respecitvamente os parâmetros c,w,k,M,G.
-user uname Onde uname é o nome do dono do arquivo.
-delete Apaga os arquivos encontrados.
-ls Exibe a saída semelhante a do comando ls -ls.
-type tipo Onde tipo é o tipo do arquivo que será especificado para a pesquisa. Os tipos podem ser 'd' para diretório, 'f' para arquivos regulares e 'l' para link simbólico.

Exemplos:
#find /etc -iname *.conf -ls -size +10k (Exibe no formato do comando 'ls -ls' todos os arquivos com extensão .conf no diretório /etc independente da terem ou não letras maiúsculas no nome e com tamanho maior que 10 Kilobytes).

#find / -user root -ls -empty -delete (Lista todos os arquivos com tamanho zero no formato do comando ls -ls e os apaga)

#find / -executable -type f -name arquivo (Procura por arquivos de nome arquivo no diretório raiz com atributo de arquivo executável).