https://www.youtube.com/watch?v=U5__6cIN8gU
Mostrando postagens com marcador LInux. Mostrar todas as postagens
Mostrando postagens com marcador LInux. Mostrar todas as postagens
sábado, 25 de abril de 2015
domingo, 19 de abril de 2015
Pergunta LPI - SPLIT com exemplo
José tem um arquivo grande que excede a capacidade de armazenamento de um disquete. Ele quer colocar o arquivo em dois disquestes, para que possa ter com ele quando se juntar a uma competição. Qual comando ele pode executarr para que o arquivo caiba em dois disquetes?
Escolha uma das seguintes respostas:
Pergunta obrigatória.
1 fmt
2 split
3 cut
4 nl
resposta split
exemplo:
1) compactando uma revista em pdf com gzip: gzip 11_edicao_dezembro_20_12_2013.pdf
2) Checando o tamanho do arquivo com: ls -lha
-rw-rw-r-- 1 gustavofranco gustavofranco 15M Jun 4 2014 11_edicao_dezembro_20_12_2013.pdf.gz
3) Usando o comando split para dividir o arquivo em três parte de 5 megas.
root@TuX:/home/gustavofranco/Segurança Digital# split --bytes=5M 11_edicao_dezembro_20_12_2013.pdf.gz
4) Checando o que foi criado no diretório
root@TuX:/home/gustavofranco/Segurança Digital# ls
11_edicao_dezembro_20_12_2013.pdf 2_edicao_setembro_27_09_2011.pdf 5_edicao_marco_31_03_2012.pdf 8_edicao_setembro_30_09_2012.pdf xaa
11_edicao_dezembro_20_12_2013.pdf.gz 3_edicao_novembro_27_11_2011.pdf 6_edicao_maio_31_05_2012.pdf 9_edicao_novembro_30_11_2012.pdf xab
1_edicao_julho_01_07_2011.pdf 4_edicao_janeiro_29_01_2012.pdf 7_edicao_julho_31_07_2012.pdf teste.gz xac
Como podemos analisar foi criado no seguinte formato, XAA, XAB, XAC,
5)Gustavo como faço para montar agora que eu sei splitar( segregar) o arquivo
Fazemos isso com nosso velho amigo cat unido ao ( > )
Exemplo: root@TuX:/home/gustavofranco/Segurança Digital# cat x* > teste.gz
Usei expressões básicas com o X* (X QUALQUER COISA) e criamos o arquivo teste.gz
Desta maneira você tem seu arquivo de 15 megas novamente.
-rw-r--r-- 1 root root 15M Abr 19 19:06 teste.gz
Escolha uma das seguintes respostas:
Pergunta obrigatória.
1 fmt
2 split
3 cut
4 nl
resposta split
exemplo:
1) compactando uma revista em pdf com gzip: gzip 11_edicao_dezembro_20_12_2013.pdf
2) Checando o tamanho do arquivo com: ls -lha
-rw-rw-r-- 1 gustavofranco gustavofranco 15M Jun 4 2014 11_edicao_dezembro_20_12_2013.pdf.gz
3) Usando o comando split para dividir o arquivo em três parte de 5 megas.
root@TuX:/home/gustavofranco/Segurança Digital# split --bytes=5M 11_edicao_dezembro_20_12_2013.pdf.gz
4) Checando o que foi criado no diretório
root@TuX:/home/gustavofranco/Segurança Digital# ls
11_edicao_dezembro_20_12_2013.pdf 2_edicao_setembro_27_09_2011.pdf 5_edicao_marco_31_03_2012.pdf 8_edicao_setembro_30_09_2012.pdf xaa
11_edicao_dezembro_20_12_2013.pdf.gz 3_edicao_novembro_27_11_2011.pdf 6_edicao_maio_31_05_2012.pdf 9_edicao_novembro_30_11_2012.pdf xab
1_edicao_julho_01_07_2011.pdf 4_edicao_janeiro_29_01_2012.pdf 7_edicao_julho_31_07_2012.pdf teste.gz xac
Como podemos analisar foi criado no seguinte formato, XAA, XAB, XAC,
5)Gustavo como faço para montar agora que eu sei splitar( segregar) o arquivo
Fazemos isso com nosso velho amigo cat unido ao ( > )
Exemplo: root@TuX:/home/gustavofranco/Segurança Digital# cat x* > teste.gz
Usei expressões básicas com o X* (X QUALQUER COISA) e criamos o arquivo teste.gz
Desta maneira você tem seu arquivo de 15 megas novamente.
-rw-r--r-- 1 root root 15M Abr 19 19:06 teste.gz
quinta-feira, 16 de abril de 2015
Descobrindo a arquitetura do processador no Linux
Maneira 1
root@TuX:/home/gustavofranco# file /bin/bash | awk {'print $3'}
64-bit
Maneira 2
cat /proc/cpuinfo
ou cat /proc/cpuinfo | grep 64
Modo 3
cat /proc/cpuinfo | awk '/ 64/'
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
É isso abraços!
root@TuX:/home/gustavofranco# file /bin/bash | awk {'print $3'}
64-bit
Maneira 2
cat /proc/cpuinfo
ou cat /proc/cpuinfo | grep 64
Modo 3
cat /proc/cpuinfo | awk '/ 64/'
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
clflush size : 64
cache_alignment : 64
É isso abraços!
domingo, 29 de março de 2015
Variáveis da palavra-chave shell
Se divertindo com seu bash e deixando ele mais interativo!
Quando você usa um ''shell'' na linha de comando, provavelmente trata-se de um bash shell. Em um shell, você pode definir uma variável e atribuir-lhe um valor a ser recuperado posteriormente. Veja um
exemplo de uma variável chamada
ORACLE_HOME:
Depois, você recorrer à variável colocando um ''$'' como prefixo antes do nome da variável, por exemplo:
Essa é uma variável definida pelo usuário. Do mesmo modo, há diversas variáveis definidas no shell propriamente dito, com o nome predefinido no shell e que controlam o modo como você interage nele.
É interessante conhecer essas variáveis (pelo menos as mais importantes) para aprimorar a qualidade e a eficiência de seu trabalho.
PS1
Essa variável define o prompt de comando do Linux. No exemplo apresentado a seguir, tentaremos alterar o prompt de comando do padrão ''# '' para ''$ '':
# export PS1="$ "
$
Você viu como o prompt mudou para $? Você pode colocar qualquer caractere aqui para alterar o prompt padrão. As aspas duplas não são necessárias, mas como queremos colocar um espaço depois de ''$'',
tivemos de inserir esse caractere entre aspas.
É só isso – é só mostrar o prompt num sofisticado caractere ou string de caracteres predefinidos? De jeito nenhum. Você também pode colocar símbolos especiais na variável para mostrar valores especiais. Por exemplo, o símbolo \u mostra o nome de usuário que efetuou login e \h, o nome do host. Se usarmos esses dois símbolos, o prompt poderá ser personalizado para mostrar o usuário e o local onde foi efetuado login:
Aqui vemos o prompt quando o usuário Oracle efetuou login no servidor chamado oradba1 – o suficiente para que você se lembre quem é o usuário e em qual máquina ele efetuou login.
É possível personalizar ainda mais o prompt usando outro símbolo, \W, que mostra o nome base do diretório atual. Veja como ficou o prompt:
Como o diretório atual é HOME, aparece o símbolo ''~''. Quando você muda para outro diretório, o símbolo é alterado.
Adicionar o diretório atual é uma excelente maneira de lembrar-se onde você está e quais serão as implicações de suas ações. A execução de rm * causa um impacto no diretório /tmp diferente do que ocorreria em /home/oracle, certo?
Existe outro símbolo, o - \w. Há uma diferença muito importante entre \w e \W. Este produz o nome base do diretório atual, enquanto aquele mostra o diretório completo:
Notou a diferença? No prompt anterior, no qual a opção \W foi usada, foi apresentado somente o diretório db1, que é o nome base. No prompt seguinte, no qual a opção \w foi usada, foi exibido o diretório completo:
/opt/oracle/product/11gR2/db1.
Em muitos casos, um nome de diretório completo no prompt pode ser de grande ajuda. Imagine que existem três Oracle Homes, cada qual com um subdiretório chamado db1. Como você poderá saber ao certo em que diretório está se for exibida apenas a indicação ''db1''? Um diretório completo não deixa dúvidas.No entanto, a exibição por extenso torna o prompt muito longo, o que pode ser um pouco inconveniente.
O símbolo ''\@'' mostra o horário atual no formato horas:minutos AM/PM:
Eis alguns outros símbolos que você pode usar na variável shell do PS1:
Quando você usa um ''shell'' na linha de comando, provavelmente trata-se de um bash shell. Em um shell, você pode definir uma variável e atribuir-lhe um valor a ser recuperado posteriormente. Veja um
exemplo de uma variável chamada
ORACLE_HOME:
# export ORACLE_HOME=/opt/oracle/product/11gR2/db1
Depois, você recorrer à variável colocando um ''$'' como prefixo antes do nome da variável, por exemplo:
# cd $ORACLE_HOME
Essa é uma variável definida pelo usuário. Do mesmo modo, há diversas variáveis definidas no shell propriamente dito, com o nome predefinido no shell e que controlam o modo como você interage nele.
É interessante conhecer essas variáveis (pelo menos as mais importantes) para aprimorar a qualidade e a eficiência de seu trabalho.
PS1
Essa variável define o prompt de comando do Linux. No exemplo apresentado a seguir, tentaremos alterar o prompt de comando do padrão ''# '' para ''$ '':
# export PS1="$ "
$
Você viu como o prompt mudou para $? Você pode colocar qualquer caractere aqui para alterar o prompt padrão. As aspas duplas não são necessárias, mas como queremos colocar um espaço depois de ''$'',
tivemos de inserir esse caractere entre aspas.
É só isso – é só mostrar o prompt num sofisticado caractere ou string de caracteres predefinidos? De jeito nenhum. Você também pode colocar símbolos especiais na variável para mostrar valores especiais. Por exemplo, o símbolo \u mostra o nome de usuário que efetuou login e \h, o nome do host. Se usarmos esses dois símbolos, o prompt poderá ser personalizado para mostrar o usuário e o local onde foi efetuado login:
$export PS1="\u@\h# "
oracle@oradba1#
Aqui vemos o prompt quando o usuário Oracle efetuou login no servidor chamado oradba1 – o suficiente para que você se lembre quem é o usuário e em qual máquina ele efetuou login.
É possível personalizar ainda mais o prompt usando outro símbolo, \W, que mostra o nome base do diretório atual. Veja como ficou o prompt:
# export PS1="\u@\h \W# "
oracle@oradba1 ~#
Como o diretório atual é HOME, aparece o símbolo ''~''. Quando você muda para outro diretório, o símbolo é alterado.
Adicionar o diretório atual é uma excelente maneira de lembrar-se onde você está e quais serão as implicações de suas ações. A execução de rm * causa um impacto no diretório /tmp diferente do que ocorreria em /home/oracle, certo?
Existe outro símbolo, o - \w. Há uma diferença muito importante entre \w e \W. Este produz o nome base do diretório atual, enquanto aquele mostra o diretório completo:
oracle@oradba1 11:59 AM db1# export PS1="\u@\h \@ \w# "
oracle@oradba1 12:01 PM /opt/oracle/product/11gR2/db1#
Notou a diferença? No prompt anterior, no qual a opção \W foi usada, foi apresentado somente o diretório db1, que é o nome base. No prompt seguinte, no qual a opção \w foi usada, foi exibido o diretório completo:
/opt/oracle/product/11gR2/db1.
Em muitos casos, um nome de diretório completo no prompt pode ser de grande ajuda. Imagine que existem três Oracle Homes, cada qual com um subdiretório chamado db1. Como você poderá saber ao certo em que diretório está se for exibida apenas a indicação ''db1''? Um diretório completo não deixa dúvidas.No entanto, a exibição por extenso torna o prompt muito longo, o que pode ser um pouco inconveniente.
O símbolo ''\@'' mostra o horário atual no formato horas:minutos AM/PM:
# export PS1="\u@\h \@ \W# "
oracle@oradba1 11:59 AM db1#
Eis alguns outros símbolos que você pode usar na variável shell do PS1:
| \! | O número do comando no histórico (mais detalhes a seguir) |
| \d | A data no formato Dia da semana Mês e Data |
| \H | O nome do host com o nome do domínio. \h é o nome do host sem o domínio |
| \T | Igual à opção \@, porém sem exibir os segundos. |
| \A | O horário no formato horas:minutos, como ocorre com a opção \@, mas com o formato de 24 horas. |
| \t | Igual à opção \A, porém inclui os segundos. |
sábado, 28 de março de 2015
Comando SET salvando vidas
Quem não sobescreveu um arquivo erroneamente? Se você tivesse lido isso aqui antes não teria feito ;)
set
Este comando controla o comportamento do shell, conta com várias opções e argumentos, mas explicarei apenas os mais importantes.
Um erro muito comum que as pessoas cometem ao usar comandos de sobreposição, como o cp e o mv, é substituir arquivos corretos inadvertidamente. Para evitar o risco, use um ''alias'' (explicado na Parte 1 desta série), por exemplo, usando a opção mv –i em vez de simplesmente mv. Entretanto, como você pode impedir que alguém ou algum script substitua os arquivos pelo operador de redirecionamento (''>'')?
Vejam,os um exemplo. Imagine que você tem um arquivo chamado very_important.txt e alguém (ou algum script) acidentalmente usou uma linha de comando como:
O arquivo é substituído imediatamente e seu conteúdo original é perdido. Para evitar esse risco, você pode usar o comando set com a opção -o noclobber, conforme segue:
Depois da emissão desse comando, se alguém tentar sobrescrever o arquivo:
O shell agora impede a substituição do arquivo. Mas e se você quiser sobrescrevê-lo? Use o operador >|.
Para desativá-lo:
Outro comando muito funcional para usar o editor vi a fim de editar comandos. Mais adiante nesta parte da série, você aprenderá a verificar os comandos emitidos e como reexecutá-los. Uma maneira rápida de reexecutar o comando é recuperá-lo usando o editor vi. Para ativá-lo, execute o seguinte comando:
Agora, imagine que você está procurando um comando que contém a letra ''v'' (como vi, vim etc.). Para procurar o comando, digite esta sequência de caracteres. As teclas a serem pressionadas aparecem entre colchetes:
Essa sequência recuperará o último comando executado contendo a letra ''v''. Nesse caso, como o último comando foi –o vi, essa opção aparece no prompt de comando.
Se esse não for o comando procurado, pressione a tecla ''n'' para recuperar o comando seguinte. Desse modo, você poderá recuperar todos os comandos executados contendo a letra ''v''. Quando encontrar o comando desejado, pressione [a tecla ENTER] para executá-lo. A pesquisa poderá ser tão explícita quanto você quiser. Imagine que você está procurando um comando mpstat executado anteriormente. Para encontrá-lo, basta digitar esta string de pesquisa ''mpstat'':
Suponha que o comando acima mostra mpstat 5 5 e, na verdade, você quer executar o comando mpstat 10 10. Em vez de digitar a string novamente, você pode editar o comando em vi. Para tanto, pressione [a tela Esc] e a tecla [v], e o comando aparecerá no editor vi. Agora você poderá editar o comando como quiser. Quando salvá-lo no vi digitando :wq, o comando modificado será executado.
set
Este comando controla o comportamento do shell, conta com várias opções e argumentos, mas explicarei apenas os mais importantes.
Um erro muito comum que as pessoas cometem ao usar comandos de sobreposição, como o cp e o mv, é substituir arquivos corretos inadvertidamente. Para evitar o risco, use um ''alias'' (explicado na Parte 1 desta série), por exemplo, usando a opção mv –i em vez de simplesmente mv. Entretanto, como você pode impedir que alguém ou algum script substitua os arquivos pelo operador de redirecionamento (''>'')?
Vejam,os um exemplo. Imagine que você tem um arquivo chamado very_important.txt e alguém (ou algum script) acidentalmente usou uma linha de comando como:
# ls -l > very_important.txt
O arquivo é substituído imediatamente e seu conteúdo original é perdido. Para evitar esse risco, você pode usar o comando set com a opção -o noclobber, conforme segue:
# set -o noclobber
Depois da emissão desse comando, se alguém tentar sobrescrever o arquivo:
# ls -l > very_important.txt
-bash: very_important.txt: cannot overwrite existing file
O shell agora impede a substituição do arquivo. Mas e se você quiser sobrescrevê-lo? Use o operador >|.
# ls -l >| very_important.txt
Para desativá-lo:
# set +o noclobber
Outro comando muito funcional para usar o editor vi a fim de editar comandos. Mais adiante nesta parte da série, você aprenderá a verificar os comandos emitidos e como reexecutá-los. Uma maneira rápida de reexecutar o comando é recuperá-lo usando o editor vi. Para ativá-lo, execute o seguinte comando:
# set -o vi
Agora, imagine que você está procurando um comando que contém a letra ''v'' (como vi, vim etc.). Para procurar o comando, digite esta sequência de caracteres. As teclas a serem pressionadas aparecem entre colchetes:
# [Escape Key][/ key][v key][ENTER Key]
Essa sequência recuperará o último comando executado contendo a letra ''v''. Nesse caso, como o último comando foi –o vi, essa opção aparece no prompt de comando.
# set -o vi
Se esse não for o comando procurado, pressione a tecla ''n'' para recuperar o comando seguinte. Desse modo, você poderá recuperar todos os comandos executados contendo a letra ''v''. Quando encontrar o comando desejado, pressione [a tecla ENTER] para executá-lo. A pesquisa poderá ser tão explícita quanto você quiser. Imagine que você está procurando um comando mpstat executado anteriormente. Para encontrá-lo, basta digitar esta string de pesquisa ''mpstat'':
# [Escape Key][/ key]mpstat[ENTER Key]
Suponha que o comando acima mostra mpstat 5 5 e, na verdade, você quer executar o comando mpstat 10 10. Em vez de digitar a string novamente, você pode editar o comando em vi. Para tanto, pressione [a tela Esc] e a tecla [v], e o comando aparecerá no editor vi. Agora você poderá editar o comando como quiser. Quando salvá-lo no vi digitando :wq, o comando modificado será executado.
Identificando o processo ID do asterisk de formas diferentes e matando o mesmo se necessário
Identificando o processo ID do asterisk de formas diferentes e matando o mesmo se necessário.
Motivos: Saber o ID do processo asterisk que ajuda na identificação de problemas como processamento etc... matar processo.
A maiora das pessoas usam o ps aux, fazendo um grep ou seja um filtro exemplo:
ps aux | grep asterisk
Saida do comando no meu ubuntu pessoal:
root@TuX:/var/run/asterisk# ps aux | grep asterisk
asterisk 14391 0.5 0.8 2766512 33144 ? Ssl 20:38 0:00 /usr/sbin/asterisk -p -U asterisk
asterisk 14392 0.0 0.0 4192 356 ? S 20:38 0:00 astcanary /var/run/asterisk/alt.asterisk.canary.tweet.tweet.tweet 14391
Outra maneira para que gosta de conhecer mais o software é o arquivo que é gerado para processos no linux, ele é encontrado em /var/run/asterisk
Faça o seguinte teste.
root@TuX:/var/run# cat /var/run/asterisk/asterisk.pid
14391
O que me retornou foi o processo 14391, vamos ver o que é esse 14391?
root@TuX:/var/run# ps aux | grep 14391
asterisk 14391 0.4 0.8 2766512 33144 ? Ssl 20:38 0:01 /usr/sbin/asterisk -p -U asterisk
Nota-se que era o asterisk, outro coisa interessante é que se você matar o processo asterisk o asterisk.pid some da pasta /var/run/asterisk
Exemplo: Com asterisk Up dei um ls dentro da pasta /var/run/asterisk
Saída do comando: root@TuX:/var/run/asterisk# ls
alt.asterisk.canary.tweet.tweet.tweet asterisk.ctl asterisk.pid
Agora vamos matar o asterisk
root@TuX:/var/run/asterisk# killall asterisk
root@TuX:/var/run/asterisk# ls
alt.asterisk.canary.tweet.tweet.tweet
Bom pessoal era isso que queria mostrar hoje, duas formas de ver o processo do asterisk fisicamente e com comando de procura e como ele se comporta e como você pode identificar esse processo e matar o mesmo abraços.
Adendo: comandos básicos para iniciar/reiniciar/parar o asterisk
service asterisk stop
service asterisk restart
service asterisk start
usando o kill - killall asterisk ou ID do processo.
Motivos: Saber o ID do processo asterisk que ajuda na identificação de problemas como processamento etc... matar processo.
A maiora das pessoas usam o ps aux, fazendo um grep ou seja um filtro exemplo:
ps aux | grep asterisk
Saida do comando no meu ubuntu pessoal:
root@TuX:/var/run/asterisk# ps aux | grep asterisk
asterisk 14391 0.5 0.8 2766512 33144 ? Ssl 20:38 0:00 /usr/sbin/asterisk -p -U asterisk
asterisk 14392 0.0 0.0 4192 356 ? S 20:38 0:00 astcanary /var/run/asterisk/alt.asterisk.canary.tweet.tweet.tweet 14391
Outra maneira para que gosta de conhecer mais o software é o arquivo que é gerado para processos no linux, ele é encontrado em /var/run/asterisk
Faça o seguinte teste.
root@TuX:/var/run# cat /var/run/asterisk/asterisk.pid
14391
O que me retornou foi o processo 14391, vamos ver o que é esse 14391?
root@TuX:/var/run# ps aux | grep 14391
asterisk 14391 0.4 0.8 2766512 33144 ? Ssl 20:38 0:01 /usr/sbin/asterisk -p -U asterisk
Nota-se que era o asterisk, outro coisa interessante é que se você matar o processo asterisk o asterisk.pid some da pasta /var/run/asterisk
Exemplo: Com asterisk Up dei um ls dentro da pasta /var/run/asterisk
Saída do comando: root@TuX:/var/run/asterisk# ls
alt.asterisk.canary.tweet.tweet.tweet asterisk.ctl asterisk.pid
Agora vamos matar o asterisk
root@TuX:/var/run/asterisk# killall asterisk
root@TuX:/var/run/asterisk# ls
alt.asterisk.canary.tweet.tweet.tweet
Bom pessoal era isso que queria mostrar hoje, duas formas de ver o processo do asterisk fisicamente e com comando de procura e como ele se comporta e como você pode identificar esse processo e matar o mesmo abraços.
Adendo: comandos básicos para iniciar/reiniciar/parar o asterisk
service asterisk stop
service asterisk restart
service asterisk start
usando o kill - killall asterisk ou ID do processo.
sexta-feira, 27 de março de 2015
Comando CMP
cmp. O comando cmp é semelhante a diff:
O resultado é retornado como o primeiro sinal de diferença. Você pode usar isso para identificar os possíveis pontos diferentes dos arquivos. Como diff, cmp tem muitas opções, sendo a mais importante delas a opção -s, que meramente retorna um código:
A seguir está um exemplo:
A variável especial $? indica o código de retorno do último comando executado. Nesse caso, é 0, o que significa que os arquivos file1 e file2 são idênticos.
significa que file1 e file2 não são os mesmos.
Essa propriedade de cmp pode se provar útil em script de shell, em que você meramente quer verificar se dois arquivos são diferentes de alguma maneira, mas não necessariamente verificam qual é a diferença. Outro uso importante desse comando é comparar arquivos binários, em que diff pode não ser confiável.
# cmp file1 file2
file1 file2 differ: byte 10, line 1
O resultado é retornado como o primeiro sinal de diferença. Você pode usar isso para identificar os possíveis pontos diferentes dos arquivos. Como diff, cmp tem muitas opções, sendo a mais importante delas a opção -s, que meramente retorna um código:
- 0, se os arquivos forem idênticos
- 1, se forem diferentes
- Algum outro número diferente de zero, se não for possível fazer a comparação
A seguir está um exemplo:
# cmp -s file3 file4
# echo $?
0
A variável especial $? indica o código de retorno do último comando executado. Nesse caso, é 0, o que significa que os arquivos file1 e file2 são idênticos.
# cmp -s file1 file2
# echo $?
1
significa que file1 e file2 não são os mesmos.
Essa propriedade de cmp pode se provar útil em script de shell, em que você meramente quer verificar se dois arquivos são diferentes de alguma maneira, mas não necessariamente verificam qual é a diferença. Outro uso importante desse comando é comparar arquivos binários, em que diff pode não ser confiável.
Guia para dominar comandos avançados do Linux, Parte 5: Administrando o ambiente
Guia para dominar comandos avançados do Linux, Parte 5: Administrando o ambiente
Linux(continuação)
Arup Nanda
Nesta quinta e última parte da série, daremos destaque a mais comandos e técnicas para administrar um ambiente Linux, inclusive os virtualizados.
Publicado em julho de 2009
Variáveis da palavra-chave shell
Quando você usa um ''shell'' na linha de comando, provavelmente trata-se de um bash shell. Em um shell, você pode definir uma variável e atribuir-lhe um valor a ser recuperado posteriormente. Veja um
exemplo de uma variável chamada
ORACLE_HOME:
# export ORACLE_HOME=/opt/oracle/product/11gR2/db1
Depois, você recorrer à variável colocando um ''$'' como prefixo antes do nome da variável, por exemplo:
# cd $ORACLE_HOME
Essa é uma variável definida pelo usuário. Do mesmo modo, há diversas variáveis definidas no shell propriamente dito, com o nome predefinido no shell e que controlam o modo como você interage nele.
É interessante conhecer essas variáveis (pelo menos as mais importantes) para aprimorar a qualidade e a eficiência de seu trabalho.
PS1
Essa variável define o prompt de comando do Linux. No exemplo apresentado a seguir, tentaremos alterar o prompt de comando do padrão ''# '' para ''$ '':
# export PS1="$ "
$
Você viu como o prompt mudou para $? Você pode colocar qualquer caractere aqui para alterar o prompt padrão. As aspas duplas não são necessárias, mas como queremos colocar um espaço depois de ''$'',
tivemos de inserir esse caractere entre aspas.
É só isso – é só mostrar o prompt num sofisticado caractere ou string de caracteres predefinidos? De jeito nenhum. Você também pode colocar símbolos especiais na variável para mostrar valores especiais. Por exemplo, o símbolo \u mostra o nome de usuário que efetuou login e \h, o nome do host. Se usarmos esses dois símbolos, o prompt poderá ser personalizado para mostrar o usuário e o local onde foi efetuado login:
$export PS1="\u@\h# "
oracle@oradba1#
Aqui vemos o prompt quando o usuário Oracle efetuou login no servidor chamado oradba1 – o suficiente para que você se lembre quem é o usuário e em qual máquina ele efetuou login.
É possível personalizar ainda mais o prompt usando outro símbolo, \W, que mostra o nome base do diretório atual. Veja como ficou o prompt:
# export PS1="\u@\h \W# "
oracle@oradba1 ~#
Como o diretório atual é HOME, aparece o símbolo ''~''. Quando você muda para outro diretório, o símbolo é alterado.
Adicionar o diretório atual é uma excelente maneira de lembrar-se onde você está e quais serão as implicações de suas ações. A execução de rm * causa um impacto no diretório /tmp diferente do que ocorreria em /home/oracle, certo?
Existe outro símbolo, o - \w. Há uma diferença muito importante entre \w e \W. Este produz o nome base do diretório atual, enquanto aquele mostra o diretório completo:
oracle@oradba1 11:59 AM db1# export PS1="\u@\h \@ \w# "
oracle@oradba1 12:01 PM /opt/oracle/product/11gR2/db1#
Notou a diferença? No prompt anterior, no qual a opção \W foi usada, foi apresentado somente o diretório db1, que é o nome base. No prompt seguinte, no qual a opção \w foi usada, foi exibido o diretório completo:
/opt/oracle/product/11gR2/db1.
Em muitos casos, um nome de diretório completo no prompt pode ser de grande ajuda. Imagine que existem três Oracle Homes, cada qual com um subdiretório chamado db1. Como você poderá saber ao certo em que diretório está se for exibida apenas a indicação ''db1''? Um diretório completo não deixa dúvidas.No entanto, a exibição por extenso torna o prompt muito longo, o que pode ser um pouco inconveniente.
O símbolo ''\@'' mostra o horário atual no formato horas:minutos AM/PM:
# export PS1="\u@\h \@ \W# "
oracle@oradba1 11:59 AM db1#
Eis alguns outros símbolos que você pode usar na variável shell do PS1:
| \! | O número do comando no histórico (mais detalhes a seguir) |
| \d | A data no formato Dia da semana Mês e Data |
| \H | O nome do host com o nome do domínio. \h é o nome do host sem o domínio |
| \T | Igual à opção \@, porém sem exibir os segundos. |
| \A | O horário no formato horas:minutos, como ocorre com a opção \@, mas com o formato de 24 horas. |
| \t | Igual à opção \A, porém inclui os segundos. |
IFS
Essa variável pede para o shell tratar as respectivas variáveis como um todo ou separadas. Se você quiser separá-las, o valor definido para a variável IFS será usado como separador. IFS é justamente a sigla para Input Field Separator (separador de campo). Para demonstrar, vamos definir uma variável conforme segue.
# pfiles=initODBA112.ora:init.ora
Na verdade, há dois arquivos: initODBA112.ora e init.ora, e você deseja exibir a primeira linha de cada um deles. Para tanto, use o comando head -1.
# head -1 $pfiles
head: cannot open `initODBA112.ora:init.ora'
for reading: No such file or directory
O resultado fala por si; o shell interpretou a variável como um todo:
`initODBA112.ora:init.ora', que não é o nome de arquivo algum. É por isso que o comando head não dá certo. Se o shell tivesse interpretado o sinal de '':'' como algum tipo de separador, o comando teria funcionado corretamente. Sendo assim, veja o que podemos fazer definindo a variável IFS:
# export IFS=":"
# head -1 $pfiles
==> initODBA112.ora <==
# first line of file initODBA112.ora
==> init.ora <==
# first line of file init.ora
Muito bem – o shell expandiu o comando head -1 $pfiles para head -1 initODBA112.ora e head -1 init.ora. Portanto, o comando foi executado corretamente.
PATH
Quando você usa um comando no Linux, ele está em um shell, como vimos com o comando kill na parte 4 desta série, ou em um arquivo executável. Se for um executável, como você pode saber onde está o dito-cujo?
Vejamos, por exemplo, o comando rm, que remove algum arquivo e pode ser usado em qualquer diretório. Se, obviamente, o arquivo executável rm não existe em todos os diretórios, como o Linux sabe onde procurá-lo?
A variável PATH contém os locais onde o shell deve procurar por esse executável. Veja um exemplo de definição de PATH:
# echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:
Quando você emite um comando como o rm, o shell procura pelo arquivo rm nestes locais, na seguinte ordem:
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin
/usr/X11R6/bin
. (the current directory
Se o arquivo não for encontrado nesses locais, o shell retornará uma mensagem de erro -bash: comando não encontrado. Se você quiser adicionar mais locais à variável PATH, use o símbolo '':'' como separador.
Você observou um fato muito interessante acima? O local do ''diretório atual'' é definido no fim, não no início. O senso comum pode sugerir que se coloque o local no início para que o shell procure
pelo executável primeiro no diretório atual antes de buscá-lo em outro lugar. Se você colocá-lo no fim, instruirá o shell a procurar no diretório atual no fim do processo. Existe um método melhor?
Os especialistas recomendam colocar o diretório atual (.) no fim do comando PATH, não no início. Por quê? Por motivos de segurança. Imagine que você está experimentando algumas ideias para aprimorar os comandos shell e, inadvertidamente, deixa esse arquivo no seu diretório home. Ao efetuar login, você estará no diretório home e quando executar esse comando, não estará executando o comando comum, mas sim o arquivo executável no seu diretório home.
Isso pode ser desastroso em alguns casos. Suponha que está fazendo testes com uma nova versão do comando ''cp'' e que existe um arquivo chamado cp em seu diretório home. Esse arquivo pode fazer um estrago. Se você digitar ''cp somefile anotherfile'', sua versão do arquivo cp será executada e causará danos. Se você colocar o diretório atual no fim, executará o comando ''cp'' normalmente e evitará riscos.
Esta prática também afasta o risco de que algum hacker coloque um arquivo de comando nocivo na forma de comandos comuns. Alguns especialistas chegam a sugerir a remoção completa do ''.'' da variável PATH para evitar qualquer execução indesejada. Se tiver de executar alguma coisa no diretório atual, use apenas a opção ./ notation como a seguir:
# ./mycommand
Essa linha de comando executa um arquivo chamado mycommand no diretório atual.
CDPATH
Muito semelhante à variável PATH, CDPATH expande o escopo do comando cd além do diretório atual.
Por exemplo, quando você digita o comando cd command, conforme segue:
# cd dbs
-bash: cd: dbs: No such file or directory
Isso faz sentido, pois o subdiretório dbs não existe no diretório atual. Ela está em /opt/oracle/product/11gR2/db1. É por isso que o comando cd não dá certo. Naturalmente, você pode navegar até o diretório /opt/oracle/product/11gR2 e executar o comando cd com sucesso. Se quiser aumentar o escopo para incluir o diretório /opt/oracle/product/11gR2/db1, poderá emitir o comando:
# export CDPATH=/opt/oracle/product/11gR2/db1
No entanto, se você emitir o comando cd de qualquer diretório:
# cd dbs
/opt/oracle/product/11gR2/db1/dbs
# pwd
/opt/oracle/product/11gR2/db1/dbs
Agora o comando cd procura outros diretórios referentes a esse subdiretório.
Há inúmeras outras variáveis, mas como são amplamente utilizadas, você deve conhecê-las e dominá-las.
set
Este comando controla o comportamento do shell, conta com várias opções e argumentos, mas explicarei apenas os mais importantes.
Um erro muito comum que as pessoas cometem ao usar comandos de sobreposição, como o cp e o mv, é substituir arquivos corretos inadvertidamente. Para evitar o risco, use um ''alias'' (explicado na Parte 1 desta série), por exemplo, usando a opção mv –i em vez de simplesmente mv. Entretanto, como você pode impedir que alguém ou algum script substitua os arquivos pelo operador de redirecionamento (''>'')?
Vejam,os um exemplo. Imagine que você tem um arquivo chamado very_important.txt e alguém (ou algum script) acidentalmente usou uma linha de comando como:
# ls -l > very_important.txt
O arquivo é substituído imediatamente e seu conteúdo original é perdido. Para evitar esse risco, você pode usar o comando set com a opção -o noclobber, conforme segue:
# set -o noclobber
Depois da emissão desse comando, se alguém tentar sobrescrever o arquivo:
# ls -l > very_important.txt
-bash: very_important.txt: cannot overwrite existing file
O shell agora impede a substituição do arquivo. Mas e se você quiser sobrescrevê-lo? Use o operador >|.
# ls -l >| very_important.txt
Para desativá-lo:
# set +o noclobber
Outro comando muito funcional para usar o editor vi a fim de editar comandos. Mais adiante nesta parte da série, você aprenderá a verificar os comandos emitidos e como reexecutá-los. Uma maneira rápida de reexecutar o comando é recuperá-lo usando o editor vi. Para ativá-lo, execute o seguinte comando:
# set -o vi
Agora, imagine que você está procurando um comando que contém a letra ''v'' (como vi, vim etc.). Para procurar o comando, digite esta sequência de caracteres. As teclas a serem pressionadas aparecem entre colchetes:
# [Escape Key][/ key][v key][ENTER Key]
Essa sequência recuperará o último comando executado contendo a letra ''v''. Nesse caso, como o último comando foi –o vi, essa opção aparece no prompt de comando.
# set -o vi
Se esse não for o comando procurado, pressione a tecla ''n'' para recuperar o comando seguinte. Desse modo, você poderá recuperar todos os comandos executados contendo a letra ''v''. Quando encontrar o comando desejado, pressione [a tecla ENTER] para executá-lo. A pesquisa poderá ser tão explícita quanto você quiser. Imagine que você está procurando um comando mpstat executado anteriormente. Para encontrá-lo, basta digitar esta string de pesquisa ''mpstat'':
# [Escape Key][/ key]mpstat[ENTER Key]
Suponha que o comando acima mostra mpstat 5 5 e, na verdade, você quer executar o comando mpstat 10 10. Em vez de digitar a string novamente, você pode editar o comando em vi. Para tanto, pressione [a tela Esc] e a tecla [v], e o comando aparecerá no editor vi. Agora você poderá editar o comando como quiser. Quando salvá-lo no vi digitando :wq, o comando modificado será executado.
type
Na Parte 4 você aprendeu sobre o kill, um comando especial, que é tanto um utilitário (um executável em algum diretório) quanto um shell built-in. Em outras partes desta série, você também aprendeu sobre outros aliases. Às vezes, existem alguns comandos usados em scripts shell – ''do'', ''done'', ''while'', por exemplo que não são comandos propriamente ditos. Tratam-se de palavras-chave shell.
Como você saberá que tipo de comando é esse? O próprio tipo de comando indicará isso. Veja como usamos esse recurso para mostrar os tipos de comandos mv, do, fc e oh.
# type mv do fc oh
mv is /bin/mv
do is a shell keyword
fc is a shell builtin
oh is aliased to `cd $ORACLE_HOME'
Estas opções mostram muito claramente que mv é um utilitário (junto com o respectivo local). A opção do é uma palavra-chave usada em scripts, fc é integrada e oh é um alias (e indica o objeto que recebeu o alias).
history
Quando você entra no sistema Linux, normalmente executa vários comandos no prompt. Como saber quais comandos foram executados? Esse tipo de informação pode ser útil por vários motivos: se você quiser reexecutar um comando sem precisar digitá-lo de novo, para certificar-se de que executou o comando correto (por exemplo, se removeu o arquivo certo), se precisar verificar quais comandos foram emitidos, e assim por diante. O comando history fornece um histórico dos comandos executados.
# history
1064 cd dbs
1065 export CDPATH=/opt/oracle/product/11gR2/db1
1066 cd dbs
1067 pwd
1068 env
1069 env | grep HIST
… and so on …
Observe os números antes de cada comando. Eles representam o evento ou número do comando. Você aprenderá como usar esse recurso a seguir nesta seção. Se quiser exibir somente algumas linhas do histórico – digamos, apenas os últimos cinco comandos – em vez de todas as informações disponíveis:
# history 5
Na verdade, a maior utilidade do comando history é a capacidade de reexecutar um comando sem digitá-lo novamente. Para tanto, insira um ! seguido pelo evento ou número do comando que precede o respectivo nome no histórico. Para executar novamente o comando cd dbs mostrado no número 1066, digite o seguinte:
# !1066
cd dbs
/opt/oracle/product/11gR2/db1/dbs
O comando !! (dois pontos de exclamação) executa novamente o último comando aplicado. Você também podeinserir uma string após o comando ! para executar mais uma vez o último comando com o padrão da string inserida na posição inicial. O comando a seguir executa novamente o comando mais recente que comece com cd:
# !cd
cd dbs
/opt/oracle/product/11gR2/db1/dbs
E se você quiser reexecutar um comando contendo uma string – não necessariamente no início? O modificador ? estabelece uma correspondência de padrões nos comandos. Para procurar um comando contendo a palavra, emita o seguinte código:
# !?network?
cd network
/opt/oracle/product/11gR2/db1/network
Também é possível modificar o comando a ser reexecutado. Por exemplo, imagine que você emitiu um comando cd /opt/oracle/product/11gR2/db1/network e deseja reexecutá-lo, adicionando /admin ao fim da string. Basta digitar:
# !1091/admin
cd network/admin
/opt/oracle/product/11gR2/db1/network/admin
fc
Este comando é um shell built-in usado para mostrar o histórico de comandos, como acontece com a opção history. A opção mais comum é -l (a letra ''L'', não o número ''1'') que mostra os 16 comandos mais recentes:
# fc -l
1055 echo $pfiles
1056 export IFS=
... and so on ...
1064 cd dbs
1065 export CDPATH=/opt/oracle/product/11gR2/db1
1066 cd dbs
Você também pode usar fc para mostrar apenas alguns comandos numa determinada faixa de números de eventos, por exemplo, 1060 e 1064:
# fc -l 1060 1064
1060 pwd
1061 echo CDPATH
1062 echo $CDPATH
1063 cd
1064 cd dbs
A opção -l também abrange outros dois parâmetros – a string a executar uma correspondência de padrões. Segue um exemplo em que você deseja exibir o histórico de todos os comandos iniciados com a palavra echo, do registro até o comando mais recente que comece com pwd.
# fc -l echo pwd
1062 echo $CDPATH
1063 cd
1064 cd dbs
1065 export CDPATH=/opt/oracle/product/11gR2/db1
1066 cd dbs
1067 pwd
Se quiser reexecutar o comando cd dbs (comando número 1066), basta inserir esse número depois de fc com a opção -s:
# fc -s 1066
cd dbs
/opt/oracle/product/11gR2/db1/db
Outro uso muito interessante do comando fc -l é a substituição de comandos. Imagine que você quer executar um comando semelhante ao 1066 (cd dbs), mas pretende emitir um cd network, não o cd dbs.
Use o seguinte argumento de substituição:
# fc -s dbs=network 1066
cd network
/opt/oracle/product/11gR2/db1/network
Se você omitir a opção -s option, conforme segue:
# fc 1066
Abrirá um arquivo vi contendo o comando cd dbs, que pode ser editado e executado.
cpio
Imagine esta situação: você pretende enviar um conjunto de arquivos para alguém ou algum lugar e não quer correr o risco de perdê-los para não fragmentar o conjunto. O que pode ser feito para garantir a integridade da transmissão? É simples. Se você conseguir colocar todos os arquivos em um único arquivo e enviá-lo ao destinado, poderá ficar tranquilo que todos os arquivos serão enviados com segurança.
O comando cpio tem três opções:
- -o (create) cria um arquivo
- -i (extract) extrai arquivos de um arquivo compactado
- -p (pass through) copia arquivos em outro diretório
Cada opção tem seu próprio conjunto de subopções. Por exemplo, a opção -c é aplicável no caso de -i e –o, mas não no caso de -p. Então, vejamos os principais grupos de opções e como utilizá-las.
A opção -v é usada para exibir um resultado detalhado, o que poderá ser útil quando você quiser um feedback preciso do que está acontecendo.
Primeiro, vejamos como colocar vários arquivos em um arquivo compactado. Neste exemplo, colocaremos todos os arquivos com a extensão ''trc'' em um diretório específico, num arquivo compactado chamado myfiles.cpio:
$ ls *.trc | cpio -ocv > myfiles.cpio
+asm_ora_14651.trc
odba112_ora_13591.trc
odba112_ora_14111.trc
odba112_ora_14729.trc
odba112_ora_15422.trc
9 blocks
Como a opção -v foi usada para obtenção de um resultado detalhado, o comando cpio mostrou cada item adicionado ao arquivo compactado. A opção -o foi usada para criar um arquivo compactado. A opção -c foi usada para instruir o comando cpio a escrever as informações de cabeçalho em ASCII, a fim de facilitar a movimentação entre diferentes plataformas.
Outra opção é is –O, que aceita o arquivo compactado resultante como um parâmetro.
# ls *.trc | cpio -ocv -O mynewfiles.cpio
Para extrair os arquivos:
$ cpio -icv < myfiles.cpio
+asm_ora_14651.trc
cpio:odba112_ora_13591.trc not created:newer or same age version exists
odba112_ora_13591.trc
Aqui, as opções -v e –i são usadas para resultado detalhado e para extração do conteúdo de arquivos compactados. A opção –c foi usada para instruir o comando cpio a ler as informações do cabeçalho como ASCII. Quando extrai um arquivo já existente (como no caso de odba112_ora_13591.trc), o comando cpio não o substitui; simplesmente o ignora com a mensagem. Para forçar a substituição, use a opção -u.
# cpio -icvu < myfiles.cpio
Para exibir somente o conteúdo sem extrai-lo efetivamente, use a opção –t com –i (extração):
# cpio -it < myfiles.cpio
+asm_ora_14651.trc
odba112_ora_13591.trc
odba112_ora_14111.trc
E se você estiver extraindo um arquivo já existente? Poderá extrai-lo, mas talvez com um nome diferente. Por exemplo, caso você tente restaurar um arquivo chamado alert.log (arquivo de log de uma instância Oracle) e não queira substituir o atual alert.log.
Uma opção muito útil é –r, que permite renomear os arquivos a serem extraídos de modo interativo.
# cpio -ir < myfiles.cpio
rename +asm_ora_14651.trc -> a.trc
rename odba112_ora_13591.trc -> b.trc
rename odba112_ora_14111.trc ->[ENTER] which leaves the name alone
Se você criou compactou um diretório usando o comando cpio e desejar extrair o conteúdo na mesma estrutura de pastas, use a opção –d durante a extração.
Ao criar um arquivo compactado, você pode adicionar arquivos existentes (anexar) usando a opção –A, conforme segue:
# ls *.trc | cpio -ocvA -O mynewfiles.cpio
O comando tem várias outras opções, mas você precisa conhecer apenas as que lhe serão úteis.
tar
Outro mecanismo para criar um arquivo compactado é o comando tar. Originalmente criado para arquivamento em unidades de fita (portanto o nome Tape Archiver), o comando tar é muito difundido por sua simplicidade e tem três opções principais:
- -c.para criar um arquivo compactado
- -x para extrair o conteúdo de um arquivo compactado
- -t para exibir o conteúdo de um arquivo compactado
Veja como se cria um arquivo tar. A opção –f permite nomear o arquivo compactado resultante da aplicação do comando tar. Neste exemplo, criamos um arquivo compactado chamado myfiles.tar contendo todos os arquivos com a extensão ''trc''.
# tar -cf myfiles.tar *.trc
Depois de criar o arquivo compactado, você pode listar o conteúdo com a opção –t.
# tar tf myfiles.tar
+asm_ora_14651.trc
odba112_ora_13591.trc
odba112_ora_14111.trc
odba112_ora_14729.trc
odba112_ora_15422.trc
Para exibir os detalhes dos arquivos, use a opção –v (verbose):
# tar tvf myfiles.tar
-rw-r----- oracle/dba 1150 2008-12-30 22:06:39 +asm_ora_14651.trc
-rw-r----- oracle/dba 654 2008-12-26 15:17:22 odba112_ora_13591.trc
-rw-r----- oracle/dba 654 2008-12-26 15:19:29 odba112_ora_14111.trc
-rw-r----- oracle/dba 654 2008-12-26 15:21:36 odba112_ora_14729.trc
-rw-r----- oracle/dba 654 2008-12-26 15:24:32 odba112_ora_15422.trc
Para extrair o conteúdo de um arquivo compactado, use a opção –x. Veja um exemplo (a opção –v foi usada para mostrar o resultado detalhado):
# tar xvf myfiles.tar
zip
A compactação é uma parte muito importante na administração de um ambiente Linux. Talvez você precise compactar vários arquivos a fim de liberar espaço para novos dados ou para enviá-los por via email, etc.
O Linux oferece diversos comandos de compactação. Vejamos os mais comuns: zip e gzip.
O comando zip produz um único arquivo consolidando outros arquivos e compactando-os em um arquivo zip (compactado). Veja um exemplo do uso do comando:
# zip myzip *.aud
Aqui produzimos um arquivo chamado myzip.zip com todos os arquivos do diretório com a extensão .aud.
O comando zip aceita várias opções. A mais comum é a -9, que instrui o zip a compactar o máximo possível, mas sacrifica os ciclos da CPU (e, portanto, demora mais). A outra opção, a -1, instrui justament e o oposto: compactação mais rápida, porém reduzida.
Você também pode proteger o arquivo zip criptografando-o com uma senha. Sem a senha correra, o arquivo zip não poderá ser descompactado. Essa característica é atribuída em tempo de execução com a opção –e (encrypt):
# zip -e ze *.aud
Enter password:
Verify password:
adding: odba112_ora_10025_1.aud (deflated 32%)
adding: odba112_ora_10093_1.aud (deflated 31%)
... and so on ...
A opção -P permite fornecer a senha na linha de comando. Como permite que outros usuários vejam a senha em texto sem formatação, verificando processos ou procurando no histórico de comandos, essa opção não é tão recomendada quanto a -e.
# zip -P oracle zp *.aud
updating: odba112_ora_10025_1.aud (deflated 32%)
updating: odba112_ora_10093_1.aud (deflated 31%)
updating: odba112_ora_10187_1.aud (deflated 31%)
… and so on ..
Você pode verificar a integridade dos arquivos zip com a opção -T. Se o arquivo zip estiver criptografado por senha, será necessário fornecê-la.
# zip -T ze
[ze.zip] odba112_ora_10025_1.aud password:
test of ze.zip OK
Naturalmente, para usar o conteúdo de um arquivo compactado, é preciso descompactá-lo. Para tanto, o comando necessário nada mais é que o famoso unzip. Vejamos o uso simples desse comando para descompactar o arquivo ze.zip.
# unzip myfiles.zip
Se o arquivo zip estiver criptografado por senha, você receberá uma solicitação para digitar a senha. Ao inseri-la, ela não será reproduzida na tela.
# unzip ze.zip
Archive: ze.zip
[ze.zip] odba112_ora_10025_1.aud password:
password incorrect--reenter:
password incorrect--reenter:
replace odba112_ora_10025_1.aud? [y]es, [n]o, [A]ll, [N]one, [r]ename: N
Neste exemplo, como você digitou a senha incorreta inicialmente, terá de digitá-la novamente. Quando recebeu a senha correta, o comando unzip descobriu que já existe um arquivo chamado odba112_ora_10025_1.aud e solicitou sua interferência. Observe as alternativas – também existe a opção de renomear o arquivo descompactado.
Lembra-se do zip protegido por senha inserida na linha de comando zip com a opção –P? Você pode descompactar esse arquivo inserindo o comando na respectiva linha com a mesma opção –P.
# unzip -P mypass zp.zip
A opção -P é diferente de –p, que instrui a descompactação de arquivos na saída padrão que, posteriormente, pode ser redirecionada para outro arquivo ou programa.
O principal atrativo do comando zip é sua maior compatibilidade. Você pode compactar um arquivo com o comando zip no Linux e descompactá-lo no sistema operacional X ou no Windows. O utilitário unzip está disponível em várias plataformas.
Imagine que você compactou vários arquivos armazenados em diferentes subdiretórios de um diretório. Quando o arquivo for descompactado, serão criados os subdiretórios conforme necessário. Se quiser que todos os arquivos sejam descompactados no diretório atual, use a opção -j.
# unzip -j myfiles.zip
Uma das combinações mais úteis é usar o comando tar para consolidar os arquivos e compactar o arquivo resultante com o comando zip. Em vez de um processo de duas etapas (tar e zip), você passa o resultado do comando tar para o zip conforme segue:
# tar cf - . | zip myfiles -
adding: - (deflated 90%
O caractere especial ''-'' no zip significa o nome do arquivo. O comando acima submete todos os itens ao comando tar e cria um arquivo zip chamado myfiles.zip. Do mesmo modo, ao descompactar o arquivo e extrair o respectivo conteúdo, você pode eliminar o processo de duas etapas e executá-las de uma só vez:
# unzip -p myfiles | tar xf -
gzip
O gzip (abreviação de GNU zip) é outro comando usado para compactar arquivos, destinado a substituir o antigo utilitário de compactação da UNIX.
A principal diferença entre o zip e o gzip é que o primeiro cria um arquivo zip contendo vários itens e o segundo compacta cada arquivo separadamente. Veja este exemplo de utilização:
# gzip odba112_ora_10025_1.aud
Observe que você não recebeu uma solicitação para dar um nome ao arquivo zip. O comando gzip pega cada arquivo (por exemplo, odba112_ora_10025_1.aud) e simplesmente cria um arquivo zip com o nome de odba112_ora_10025_1.aud.gz. Além disso, é importante observar que ele remove o arquivo original odba112_ora_10025_1.aud. Se você passar um conjunto de arquivos como parâmetro para o comando:
# gzip *
Ele criará um arquivo zip com a extensão .gz para cada item presente no diretório. Inicialmente, o diretório continha os seguintes arquivos:
a.txt
b.pdf
c.trc
Após a aplicação do comando gzip *, o conteúdo do diretório será:
a.txt.gz
b.pdf.gz
c.trc.gz
O mesmo comando também é usado para descompactar arquivos. A opção -d ¾ aliás, bastante intuitiva ¾ e usada para descompactar arquivos agrupados com o gzip.
Para verificar o arquivo compactado pelo comando gzip e o grau de compactação, você pode usar a opção -l. Na verdade, essa opção não realiza nenhuma ação; ela apenas mostra o conteúdo do arquivo compactado.
# gzip -l *
compressed uncompressed ratio uncompressed_name
698 1150 42.5% +asm_ora_14651.trc
464 654 35.2% odba112_ora_13591.trc
466 654 34.9% odba112_ora_14111.trc
466 654 34.9% odba112_ora_14729.trc
463 654 35.3% odba112_ora_15422.trc
2557 3766 33.2% (totals)
Você também pode compactar os arquivos em um diretório usando a opção recursiva (-r). Para aplicar o comando gzip a todos os arquivos no diretório de log, use:
# gzip -r log
Para verificar a integridade de um arquivo compactado pelo gzip, use a opção -t:
# gzip -t myfile.gz
Quando você quiser criar um nome diferente do padrão .gz para o arquivo compactado pelo gzip, use a opção –c. Assim, o comando gzip gravará o arquivo na saída padrão que poderá ser direcionada para um arquivo. Você pode usar a mesma técnica para colocar mais de um item no mesmo arquivo gzip. Vamos compactar dois itens – odba112_ora_14111.trc, odba112_ora_15422.trc – no mesmo arquivo 1.gz.
# gzip -c odba112_ora_14111.trc odba112_ora_15422.trc > 1.gz
Observe o que acontece quando o conteúdo do arquivo compactado é exibido:
# gzip -l 1.gz
compressed uncompressed ratio uncompressed_name
654 -35.9% 1
A taxa de compactação exibida refere-se somente ao último arquivo na lista (é por isso que o original aparece com um tamanho inferior ao do arquivo compactado). Na descompactação, os dois originais são exibidos um após o outro e ambos são descompactados corretamente.
A opção -f força a sobreposição dos arquivos, se estiverem presentes. A opção –v mostra o resultado com mais detalhes. Veja este exemplo:
# gzip -v *.trc
+asm_ora_14651.trc: 42.5% -- replaced with +asm_ora_14651.trc.gz
odba112_ora_13591.trc: 35.2% -- replaced with odba112_ora_13591.trc.gz
odba112_ora_14111.trc: 34.9% -- replaced with odba112_ora_14111.trc.gz
odba112_ora_14729.trc: 34.9% -- replaced with odba112_ora_14729.trc.gz
odba112_ora_15422.trc: 35.3% -- replaced with odba112_ora_15422.trc.gz
Um comando relacionado é o zcat. Se quiser exibir o conteúdo do arquivo compactado com o comando gzip sem descompactá-lo, use o comando zcat:
# zcat 1.gz
O comando zcat é semelhante ao gzip -d | cat no arquivo, mas não o descompacta efetivamente.
A exemplo do comando zip command, o gzip também aceita opções de grau de compactação
# gzip -1 myfile.txt … Least compression consuming least CPU and fastest
# gzip -9 myfile.txt … Most compression consuming most CPU and slowest
Também existe o comando gunzip, que é equivalente ao gzip -d (para descompactar um arquivo gzip).
Administrando o Linux em um ambiente virtual
O Linux tem sido executado em data centers no mundo todo há um bom tempo. Tradicionalmente, o conceito de servidor implica uma máquina física diferente das outras. Pelo menos era o que acontecia antes da virtualização em que um único servidor pode ser subdividido em vários servidores virtuais como se cada parte um fosse um servidor independente na rede. Inversamente, um ''pool'' de servidores formado por várias máquinas físicas pode ser dividido de acordo com a necessidade.
Como não existe mais a obrigatoriedade de uma relação um-a-um entre um servidor físico e um lógico ou virtual, alguns conceitos podem parecer complicados. Por exemplo, qual é a memória disponível? É a disponibilidade do servidor virtual (1), do servidor físico individual (2) onde reside o servidor virtual ou do total do pool de servidores ao qual pertence o servidor virtual (3)? Sendo assim, os comandos Linux podem se comportar de maneira um pouco diferente quando operados em um ambiente virtual.
Além disso, como o ambiente virtual também precisa de administração, existem alguns comandos especializados para o gerenciamento da infraestrutura virtualizada. Nesta seção, você aprenderá sobre os comandos especializados e as atividades relacionadas ao ambiente virtual. Usaremos o Oracle VM como exemplo.
Um dos componentes principais da virtualização em um ambiente Oracle VM é o Oracle VM Agent, que deve estar operante para que o Oracle VM funcione plenamente. Para verificar o funcionamento do agente, é preciso acessar o servidor de administração (provm1, neste caso) e usar o comando service:
[root@provm1 vnc-4.1.2]# service ovs-agent status
ok! process OVSMonitorServer exists.
ok! process OVSLogServer exists.
ok! process OVSAgentServer exists.
ok! process OVSPolicyServer exists.
ok! OVSAgentServer is alive.
O resultado mostra claramente que todos os processos-chave estão operantes. Se não estiverem, pode haver uma configuração errada e convém reconfigurá-los (ou talvez eles nunca tenham sido configurados):
# service ovs-agent configure
O mesmo comando service também é usado para iniciar, reiniciar ou interromper processos do agente:
service ovs-agent start
service ovs-agent restart
service ovs-agent stop
No entanto, a melhor maneira de administrar o ambiente é pelo console da GUI baseado na Web. Por padrão, a página do administrador (Manager Webpage) está disponível no servidor Admin, porta 8888. Para ativá-la, você pode digitar o seguinte no navegador (presumindo que o nome do servidor admin seja oradba2).
http://oradba2:8888/OVS
Efetue login como admin, use a senha criada durante a instalação e será exibida a seguinte tela:
A parte inferior da tela mostra os servidores físicos do pool. Neste caso, o pool de servidores é chamado provmpool1 e o IP do servidor físico é 10.14.106.0. Nessa tela, você pode reiniciar, desligar ou retirar o servidor do pool, bem como editar os detalhes desse servidor. Também é possível adicionar um novo servidor físico ao pool clicando no botão Add Server.
Se você clicar no endereço IP do servidor, os detalhes desse servidor físico serão exibidos conforme segue:
Talvez o item mais útil seja a guia Monitor. Se você clicar nessa guia, serão exibidas as informações de utilização dos recursos do servidor – CPU, disco e memória, como demonstrado a seguir. Nessa página, você pode verificar visualmente se os recursos estão sub ou sobreutilizados, se precisa adicionar mais servidores físicos e assim por diante.
Voltando à página principal, a guia Server Pools mostra os diferentes pools de servidores definidos. Aqui você pode definir outro pool, interromper e restaurar o funcionamento do pool, entre outras ações:
Se quiser adicionar um usuário ou outro administrador, clique na guia Administration. Existe um administrador padrão chamado ''admin''. É possível verificar todos os administradores aqui, definir suas propriedades, como endereços de email, nomes etc.:
Talvez a atividade mais frequente que você vai executar é administrar cada máquina virtual (VM, na sigla em inglês). Quase todas as funções estão localizadas na guia Virtual Machines na homepage principal, que mostra as VMs criadas até o momento. Segue uma captura de tela parcial mostrando duas máquinas chamadas provmlin1 e provmlin2:
A VM chamada provmlin2 é exibida como ''powered off'', ou seja, aparece como desligada para os usuários finais. A outra, provmlin1, apresenta algum tipo de erro. Vamos começar com a VM provmlin2.
Selecione o botão de opção ao lado dela e clique no botão Power On. Depois de algum tempo, essa VM aparecerá como ''Running'' (em execução), conforme segue:
Se você clicar no nome da VM, conseguirá ver os respectivos detalhes, entre os quais:
A tela acima mostra que à VM foram alocados 512MB de RAM, que ela executa um Oracle Enterprise Linux 5, tem apenas um core, e assim por diante. Um das informações principais disponíveis na página é a porta VNC: 5900. Com esse dado, você pode ativar o terminal VNC dessa VM. Aqui, usei um VNV viewer com o nome de host provm1 e porta 5900:
Desse modo, a sessão VNC é ativada no servidor. Agora você pode iniciar uma sessão do terminal:
Como a porta 5900 do VNC apontou para a máquina virtual chamada provmlin4, o terminal nessa VM foi ativado. Agora, você pode emitir seus comandos Linux normalmente nesse terminal.
xm
No servidor que executa máquinas virtuais, os comandos de medição de desempenho, como o uptime (descrito na Parte 3 desta série) e o top (descrito na Parte 2) têm diferentes significados comparados aos seus equivalentes no servidor físico. Num servidor físico, o comando uptime refere-se ao período de atividade do servidor, enquanto no mundo virtual, ele pode ser ambíguo, referindo-se a cada servidor virtual no servidor em questão. Para avaliar o desempenho do pool de servidores físicos, use um comando diferente, o xm. Os comandos são emitidos com base nesse comando principal. Por exemplo, para relacionar os servidores virtuais, você pode usar o comando xm list:
[root@provm1 ~]# xm list
Name ID Mem VCPUs State Time(s)
22_provmlin4 1 512 1 -b---- 27.8
Domain-0 0 532 2 r----- 4631.9
Para medir o tempo de atividade, use o xm uptime:
[root@provm1 ~]# xm uptime
Name ID Uptime
22_provmlin4 1 0:02:05
Domain-0 0 8:34:07
Seguem os demais comandos disponíveis no xm. Muitos deles podem ser executados também por meio da GUI.
console Anexa ao console do <domínio>.
create Cria um domínio com base no <ConfigFile>.
new Adiciona um domínio à gestão de domínios Xend
delete Remove um domínio da gestão de domínios Xend.
destroy Encerra um domínio imediatamente.
dump-core Dump core (estado registrado) de um domínio específico.
help Exibe esta mensagem.
list Relaciona as informações sobre todos ou alguns domínios.
mem-set Define o uso de memória atual para um domínio.
migrate Migra um domínio para outra máquina.
pause Faz uma pausa na execução de um domínio.
reboot Reinicia um domínio.
restore Restaura um domínio de um estado salvo.
resume Retoma um domínio gerenciado por Xend.
save Salva o estado de um domínio a ser restaurado posteriormente.
shell Inicia um shell interativo.
shutdown Desativa um domínio.
start Inicia um domínio gerenciado por Xend.
suspend Suspende um domínio gerenciado por Xend.
top Monitora um host e os domínios em tempo real.
unpause Reativa um domínio em pausa.
uptime Exibe o tempo de atividade de um domínio.
vcpu-set Define o número de VCPUs ativas permitidas para o domínio.
Vejamos os comandos usados com maior frequência. Além de saber o tempo de atividade, talvez você queira verificar o desempenho do sistema usando o comando top. O comando xm top atua de modo bem parecido com o do top no shell regular de servidor – ele é atualizado automaticamente, tem algumas chaves que exibem diferentes tipos de medições como CPU, I/O, rede etc. Segue o resultado do comando xm top básico:
xentop - 02:16:58 Xen 3.1.4
2 domains: 1 running, 1 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 1562776k total, 1107616k used, 455160k free CPUs: 2 @ 2992MHz
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS
NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
22_provmlin4 --b 27 0.1 524288 33.5 1048576 67.1 1 1 9 154 1 06598 1207 0
Domain-0 -----r 4647 23.4 544768 34.9 no limit n/a 2 8 68656 2902548 0 0 0 0
Ele mostra estatísticas na forma de porcentagens de uso da CPU, memória etc. referentes a cada VM. Se você pressionar N, verá as atividades de rede mostradas a seguir:
xentop - 02:17:18 Xen 3.1.4
2 domains: 1 running, 1 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 1562776k total, 1107616k used, 455160k free CPUs: 2 @ 2992MHz
Net0 RX:180692bytes 2380pkts 0err 587drop TX:9414bytes 63pkts 0err 0drop
Domain-0 --r 4650 22.5 544768 34.9 no limit n/a 2 8 68665 2902570 0 0
0 0 0
Net0 RX:2972232400bytes 2449735pkts 0err 0drop TX:70313906bytes
Net1 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net2 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net3 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net4 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net5 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net6 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net7 RX: 0bytes 0pkts 0err 0drop TX: 0bytes ...
Net0 RX: 1017641pkts 0err 0drop
Net1 RX: 0pkts 0err 0drop
Net2 RX: 0pkts 0err 0drop
Net3 RX: 0pkts 0err 0drop
Net4 RX: 0pkts 0err 0drop
Net5 RX: 0pkts 0err 0drop
Net6 RX: 0pkts 0err 0drop
Net7 RX: 0pkts 0err 0drop
Se pressionar a letra V, serão exibidas as estatísticas da VCPU (Virtual CPU).
xentop - 02:19:02 Xen 3.1.4
2 domains: 1 running, 1 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 1562776k total, 1107616k used, 455160k free < CPUs: 2 @ 2992MHz
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS
NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
22_provmlin4 --b--- 28 0.1 524288 33.5 1048576 67.1 1 1 9 282 1 06598 1220 0
VCPUs(sec): 0: 28s
Domain-0 -----r 4667 1.6 544768 34.9 no limit n/a 2 8 68791 2902688 0 00 0 0
VCPUs(sec): 0: 2753s 1: 1913s
Vejamos algumas atividades bastante comuns. Uma delas é distribuir a memória disponível entre as VMs. Se você quiser definir 256 MB de RAM para cada VM, use o comando xm mem-set conforme segue. Depois, use o comando xm list para confirmar a distribuição de RAM.
[root@provm1 ~]# xm mem-set 1 256
[root@provm1 ~]# xm mem-set 0 256
[root@provm1 ~]# xm list
Name ID Mem VCPUs State Time(s)
22_provmlin4 1 256 1 -b---- 33.0
Domain-0 0 256 2 r----- 4984.4
Conclusão
Aqui termina a extensa série de cinco partes sobre comandos avançados do Linux. Como mencionei no início da série, o Linux tem milhares de comandos úteis em muitas ocasiões e novos comandos são desenvolvidos e adicionados regularmente. Não é importante conhecer todos os comandos disponíveis, mas sim saber quais são mais úteis para você
Nesta série, apresentei e expliquei alguns dos comandos necessários para realizar a maior parte de suas tarefas diárias. Se você colocar em prática alguns deles, junto com as respectivas opções e argumentos, conseguirá lidar com qualquer infraestrutura Linux sem problemas.
Obrigado pela leitura e tudo de bom!
FONTE: http://www.oracle.com/technetwork/pt/articles/linux/part5-087549-ptb.html
sábado, 21 de março de 2015
Dica TOP do dia - history
Todos que usam linux, usam o comando history diariamente... algumas(várias) vezes, a dica de hoje é como mudar o formato como você recebe history.
Comand:
export HISTTIMEFORMAT=' %F %T'
Explicação: você muda o formato atual do history para listar além do history ANO/MES/DIA HORA/MINUTO/SEGUNDO.
Para voltar seu history ao normal, use UNSET
Comand:
export HISTTIMEFORMAT=' %F %T'
Explicação: você muda o formato atual do history para listar além do history ANO/MES/DIA HORA/MINUTO/SEGUNDO.
Exemplo de como fica.
2009 2015-03-22 00:20:17nano .bashrc
2010 2015-03-22 00:27:10history
2011 2015-03-22 00:27:13history 1
2012 2015-03-22 00:27:19history 100
2013 2015-03-22 00:27:27history 1000
2014 2015-03-22 00:27:44history
Para voltar seu history ao normal, use UNSET
quinta-feira, 19 de março de 2015
quarta-feira, 18 de março de 2015
Criando aliases linux
Quando estiver mais preguiçoso ou cansar de digitar linhas de comandos completas e já usar algumas por padrão tipo, ls | grep "lala" // ou ps aux | grep fail2ban... vc pode usar os aliases para acelerar sua produção... segue.
=============
Uma boa dica para os usuários iniciante é usar a funcionalidade do comando "alias" para executar uma tarefa.
Ele funciona como um apelido para um comando, uma expressão regular e/ou instrução.
Exemplo: Quando instalamos algo no Linux, via linha de comando digitamos sudo apt-get install nomedoprograma.
Isto pode ser simplificado, em lugar de digitar sudo apt-get install você digita apenas get, por exemplo. Como fazer isto?
Há duas maneiras:
1) Colocando no /etc/bash.bashrc (com isso, todos os usuários vão ter acesso a esses aliases), digite:
$ sudo gedit /etc/bash.bashrc
E cole os comandos abaixo:
alias c='clear'
alias get='sudo apt-get install -y'
alias df='df -h'
alias ls='ls -la'
alias atualizar='sudo apt-get upgrade'
alias re='sudo reboot'
alias out='sudo shutdown -h now'
alias up='sudo apt-get update'
alias remove='sudo apt-get remove -y'
2)Colocando apenas no bash do usuário atual, no arquivo .bashrc através do comando:
$ gedit .bashrc
É importante frisar a diferença dentre as opções acima, pois na primeira opção você atribui a todos, no segundo, especificamente a um usuário.
Quando quero instalar algo no Ubuntu digito:
$ get programaX
E pronto. :)
fonte :http://www.vivaolinux.com.br/dica/Criando-aliases-uteis
=============
Uma boa dica para os usuários iniciante é usar a funcionalidade do comando "alias" para executar uma tarefa.
Ele funciona como um apelido para um comando, uma expressão regular e/ou instrução.
Exemplo: Quando instalamos algo no Linux, via linha de comando digitamos sudo apt-get install nomedoprograma.
Isto pode ser simplificado, em lugar de digitar sudo apt-get install você digita apenas get, por exemplo. Como fazer isto?
Há duas maneiras:
1) Colocando no /etc/bash.bashrc (com isso, todos os usuários vão ter acesso a esses aliases), digite:
$ sudo gedit /etc/bash.bashrc
E cole os comandos abaixo:
alias c='clear'
alias get='sudo apt-get install -y'
alias df='df -h'
alias ls='ls -la'
alias atualizar='sudo apt-get upgrade'
alias re='sudo reboot'
alias out='sudo shutdown -h now'
alias up='sudo apt-get update'
alias remove='sudo apt-get remove -y'
2)Colocando apenas no bash do usuário atual, no arquivo .bashrc através do comando:
$ gedit .bashrc
É importante frisar a diferença dentre as opções acima, pois na primeira opção você atribui a todos, no segundo, especificamente a um usuário.
Quando quero instalar algo no Ubuntu digito:
$ get programaX
E pronto. :)
fonte :http://www.vivaolinux.com.br/dica/Criando-aliases-uteis
segunda-feira, 9 de março de 2015
Modificando o TimeZone: Debian
Vamos dizer que estou no time zone de São Paulo, ou seja, estou no horário de Brasília. Mas cansei de toda esta agitação e consegui um bom projeto de pesquisa com uma altíssima remuneração e que vai exigir que fique morando por uns 5 anos em Fernando de Noronha (vai sonhando Lisandro...). Bom, chegando lá, como sou preciosista, vou querer alterar o timezone no meu portátil. Como farei isso?
Em algumas distribuições, como o Linux Mint e o Ubuntu por exemplo, o timezone é controlado por meio do arquivo /etc/timezone. Para ver meu timezone posso usar (no terminal) o comando:
# cat /etc/timezone
America/Sao_Paulo
A resposta foi certeira, estou no timezone America/Sao_Paulo.
Para trocar para o timezone de São Paulo para Fernando de Noronha vamos verificar qual o nome deste time zone fazendo:
# ls /usr/share/zoneinfo/America/
Agora é procurar na lista apresentada pelo timezone desejado. Também podemos buscar usando uma palavra chave de busca, por exemplo "Fernando" ou "Noronha", com o comando:
# ls /usr/share/zoneinfo/America/ | grep Noronha
Noronha
Veja que no caso procurei pela palavra "Noronha" e deu bem direitinho. A resposta ao comando indica que existe o arquivo de nome "Noronha".
Bem, agora que já sabemos o nome correto do arquivo, vamos alterar o conteúdo de /etc/timezone utilizando o seu editor de textos preferido, como em:
# vi /etc/timezone
ou
# gedit /etc/timezone
ou
# mcedit /etc/timezone
Altere então de America/Sao_Paulo para America/Noronha.
Agora para atualizar utilizando a variável TZ faça:
# export TZ=America/Noronha
----
INFO ADICIONAL
Em 24 de abril de 2008 a Lei Federal n° 11.662 reduziu a quantidade de fusos horários do Brasil para três. São eles:
Anterior à mencionada lei, um quarto fuso horário existia no território nacional brasileiro:
Retirado para consulta pessoal em: http://www.vivaolinux.com.br/artigo/Modificando-o-TimeZone-2-metodos
Em algumas distribuições, como o Linux Mint e o Ubuntu por exemplo, o timezone é controlado por meio do arquivo /etc/timezone. Para ver meu timezone posso usar (no terminal) o comando:
# cat /etc/timezone
America/Sao_Paulo
A resposta foi certeira, estou no timezone America/Sao_Paulo.
Para trocar para o timezone de São Paulo para Fernando de Noronha vamos verificar qual o nome deste time zone fazendo:
# ls /usr/share/zoneinfo/America/
Agora é procurar na lista apresentada pelo timezone desejado. Também podemos buscar usando uma palavra chave de busca, por exemplo "Fernando" ou "Noronha", com o comando:
# ls /usr/share/zoneinfo/America/ | grep Noronha
Noronha
Veja que no caso procurei pela palavra "Noronha" e deu bem direitinho. A resposta ao comando indica que existe o arquivo de nome "Noronha".
Bem, agora que já sabemos o nome correto do arquivo, vamos alterar o conteúdo de /etc/timezone utilizando o seu editor de textos preferido, como em:
# vi /etc/timezone
ou
# gedit /etc/timezone
ou
# mcedit /etc/timezone
Altere então de America/Sao_Paulo para America/Noronha.
Agora para atualizar utilizando a variável TZ faça:
# export TZ=America/Noronha
----
INFO ADICIONAL
Fusos horários brasileiros
Em 24 de abril de 2008 a Lei Federal n° 11.662 reduziu a quantidade de fusos horários do Brasil para três. São eles:
- UTC-2: Arquipélago de Fernando de Noronha e Ilha de Trindade.
- UTC-3 (horário de Brasília): regiões Sul, Sudeste e Nordeste, estados de Goiás, Tocantins, Pará e Amapá, e o Distrito Federal.
- UTC-4: estados do Mato Grosso, Mato Grosso do Sul, Amazonas, Rondônia, Acre e Roraima.
Anterior à mencionada lei, um quarto fuso horário existia no território nacional brasileiro:
- UTC-5: estado do Acre e porção oeste do estado do Amazonas.
- Em relação ao estado do Acre, o Decreto Legislativo n.° 900/2009[16] convocou referendo, a ser realizado juntamente com as eleições de 2010, para verificar a alteração do horário legal promovida no estado. O TRE-AC definiu que o pleito será realizado no dia 31 de outubro de 2010, juntamente com o segundo turno das eleições.
- Além disso, também anterior à dita lei, o estado do Pará possuía dois fusos horários diferentes, cabendo à parte oriental do estado o atual fuso de todo o estado de UTC-3, enquanto à parte ocidental cabia o fuso UTC-4
Retirado para consulta pessoal em: http://www.vivaolinux.com.br/artigo/Modificando-o-TimeZone-2-metodos
Modificando o TimeZone: cent OS
Em algumas distribuições, como no CentOS por exemplo, o timezone é controlado pelo arquivo /etc/localtime. Para fazer a alteração temos que apagar o arquivo com o comando:
# rm /etc/localtime
Identificamos o arquivo com o timezine desejado, no caso do nosso exemplo o timezone para Fernando de Noronha, podemos ver os arquivos disponíveis em /usr/share/zoneinfo/.
Como vimos na página anterior, é possível procurar pelo arquivo de Noronha da seguinte maneira:
# ls /usr/share/zoneinfo/America/
Agora é procurar na lista apresentada pelo timezone desejado. Também podemos buscar usando uma palavra chave de busca, por exemplo "Fernando" ou "Noronha", com o comando:
# ls /usr/share/zoneinfo/America/ | grep Noronha
Noronha
Veja que no caso procurei pela palavra "Noronha" e deu bem direitinho. A resposta ao comando indica que existe o arquivo de nome "Noronha".
Bem, agora que já sabemos o nome correto do arquivo, vamos fazer um link simbólico para ele com o comando:
# ln -s /usr/share/zoneinfo/America/Noronha /etc/localtime
Pronto, está feito. Agora vamos verificar com:
# date
Sáb Out 9 09:15:40 FNT 2010
# rm /etc/localtime
Identificamos o arquivo com o timezine desejado, no caso do nosso exemplo o timezone para Fernando de Noronha, podemos ver os arquivos disponíveis em /usr/share/zoneinfo/.
Como vimos na página anterior, é possível procurar pelo arquivo de Noronha da seguinte maneira:
# ls /usr/share/zoneinfo/America/
Agora é procurar na lista apresentada pelo timezone desejado. Também podemos buscar usando uma palavra chave de busca, por exemplo "Fernando" ou "Noronha", com o comando:
# ls /usr/share/zoneinfo/America/ | grep Noronha
Noronha
Veja que no caso procurei pela palavra "Noronha" e deu bem direitinho. A resposta ao comando indica que existe o arquivo de nome "Noronha".
Bem, agora que já sabemos o nome correto do arquivo, vamos fazer um link simbólico para ele com o comando:
# ln -s /usr/share/zoneinfo/America/Noronha /etc/localtime
Pronto, está feito. Agora vamos verificar com:
# date
Sáb Out 9 09:15:40 FNT 2010
domingo, 1 de março de 2015
Usando o find com mais precisão
Na realidade eu uso muito este comando para fazer limpezas de chamadas nas centrais que administro.
Exemplo: find /var/spool/asterisk/monitor/ -ctime +179 -exec ls {} \;
O comando faz uma busca no diretório find /var/spool/asterisk/monitor/ em arquivos criados com mais de 179 dias e executa um ls, você pode adicionar um rm -rf e desta forma excluirá arquivos com mais de 179 dias.
PS: para quem trabalha com asterisk este diretório é onde fica salvo as gravações, você poderia filtrar por gsm mp3 wav etc adicionando. -> monitor/*.wav monitor/*.mp3 desta forma filtrará mais ainda a busca por tipo especifico caso queira.
Dado importante:
-ctime = criado
-mtime = modificado
-atime = acessado
Exemplo: find /var/spool/asterisk/monitor/ -ctime +179 -exec ls {} \;
O comando faz uma busca no diretório find /var/spool/asterisk/monitor/ em arquivos criados com mais de 179 dias e executa um ls, você pode adicionar um rm -rf e desta forma excluirá arquivos com mais de 179 dias.
PS: para quem trabalha com asterisk este diretório é onde fica salvo as gravações, você poderia filtrar por gsm mp3 wav etc adicionando. -> monitor/*.wav monitor/*.mp3 desta forma filtrará mais ainda a busca por tipo especifico caso queira.
Dado importante:
-ctime = criado
-mtime = modificado
-atime = acessado
terça-feira, 16 de dezembro de 2014
Uma Introdução Básica ao SoX
Opa como adoro esse software e este é um belo tutorial que achei na net vou públicar aqui também =D
SoX (Sound eXchange) é, como o autor o chama, o "canivete Suíço dos programas de processamento de som". Ele é gratuito, livre/de código aberto e roda em Windows, Mac e Linux.
O SoX pode reproduzir, gravar, converter, editar, dividir, combinar e aplicar vários efeitos a arquivos de áudio de muitos formatos diferentes.
Em uma instalação padrão do Slackware Linux 13.37, os formatos suportados pelo SoX são:
8svx, aif, aifc, aiff, aiffc, al, amb, au, avr, caf, cdda, cdr, cvs, cvsd, cvu, dat, dvms, f32, f4, f64, f8, fap, flac, fssd, gsm, gsrt, hcom, htk, ima, ircam, la, lpc, lpc10, lu, mat, mat4, mat5, maud, mp2, mp3, nist, ogg, paf, prc, pvf, raw, s1, s16, s2, s24, s3, s32, s4, s8, sb, sd2, sds, sf, sl, smp, snd, sndfile (formatos suportados pela biblioteca Libsndfile), sndr, sndt, sou, sox ( formato interno), sph, sw, txw, u1, u16, u2, u24, u3, u32, u4, u8, ub, ul, uw, vms, voc, vorbis, vox, w64, wav, wavpcm, wv, wve, xa, xi
E mais alguns outros caso as bibliotecas associadas estejam instaladas.
Apenas alguns dos efeitos suportados:
bandpass (filtro passa-banda), chorus, delay, echo (eco), equalizer (equalizador), fade (fade in e out), highpass (filtro passa-alta), lowpass (filtro passa-baixa), pitch (altera apenas o tom), reverb (reverberação), reverse (inversão), riaa, speed (altera a velocidade e o tom), synth (gera formas básicas de onda), tempo (altera apenas a velocidade), tremolo, trim, vocoder
Para uma lista completa de formatos, efeitos e outras características, visite esta página (em Inglês).
Versões para Windows e Mac podem ser baixadas diretamente da página oficial de download. Para Linux, o SoX pode ser compilado do código-fonte (disponível na mesma página), ou instalado via repositórios de pacotes para distribuições específicas. No caso do Slackware (a distribuição Linux que eu uso), ele é instalado por padrão embora o suporte a geração de arquivos MP3 venha desabilitado, o que pode ser resolvido apenas executando novamente o script (SlackBuild) para compilá-lo, depois reinstalá-lo.
O SoX é uma ferramenta para linha de comando e vem com alguns mini programas (comandos) para execução de diferentes tarefas:
Reproduz arquivos de áudio nos formatos suportados, além de aplicar efeitos durante a reprodução caso desejado.
Grava de um dispositivo (microfone, placa de som etc) para um arquivo em um dos formatos suportados.
Exibe informações sobre arquivos de áudio nos formatos suportados.
É comumente usado para processar arquivo (s) e salvar os resultados em outro arquivo, mas na verdade ele é o núcleo do "play", do "rec" e do "soxi".
Nota: estes exemplos foram executados no Linux, não sei se há diferenças nos comandos para outros sistemas.
Nota: existem opções para controlar os parâmetros de reverb, trim etc., bem como vários outros efeitos. Leia a seção "Obtendo Ajuda" abaixo para mais informações.
Captura o som do dispositivo de gravação padrão (por exemplo, um microfone) e salva em um arquivo chamado "exemplo.wav":
Nota: primeiro você precisa definir o dispositivo de gravação (por exemplo, nas configurações de som no Windows, ou com programas como "alsamixer" ou "aumix" no Linux).
Para pausar a reprodução ou gravação, pressione Ctrl-z. O SoX vai pausar e ficar em segundo plano (background). Para retomar de onde parou e colocá-lo novamente em primeiro plano (foreground), digite o comando:
Nota: não sei se isso funciona da mesma forma (nem como/se funciona) no Windows.
Estes comandos processam arquivo(s) e salvam o resultado em outro arquivo, até mesmo convertendo-o para outro formato.
Dica: se quiser "pré-visualizar" (ou seria "pré-ouvir"?) os efeitos sem alterar o arquivo, você pode usar o "play" para aplicar os efeitos e ouvir:
Ajuste os parâmetros (neste exemplo, o volume, que é o número após a opção "-v") até encontrar os valores que julgar apropriados, então substitua o comando "play" por "sox" e especifique um arquivo de saída. Exemplo:
O SoX também pode gerar algumas formas básicas de áudio como ondas senoidais (sine waves), triangulares (triangular waves), quadradas (square waves) e "dente de serra" (sawtoot waves), além de algumas outras coisas como ruído "branco" ("white" noise), "marrom" ("brown" noise) e "rosa" ("pink" noise).
Se a quantidade de texto exibida na tela incomodar, você pode usar a opção "-q" para que o SoX não exiba nenhuma informação, exceto alertas e erros. Isso funciona tanto com o "play", quanto com o "rec" e o "sox". Exemplo:
Para mostrar todos os comandos do SoX, formatos e efeitos, digite:
Para "play", "rec" e "soxi", digite "play --help", "rec --help" e "soxi --help", respectivamente.
Nota: a ajuda é praticamente a mesma para o "sox", o "play" e o "rec", exceto pela ordem dos arquivos de entrada/saída e efeitos.
Há também os manuais do usuário (em Inglês), com explicações mais detalhadas dos comandos, parâmetros de efeito e exemplos. No Linux, se os manuais estiverem instalados, você pode lê-los offline digitando
para os manuais do "sox", do "play" e do "rec",
para todas as opções relacionadas aos formatos de arquivo suportados e
para o manual do "soxi". Há também o
para aqueles que querem mexer com código e a biblioteca da engine do SoX.
Você também pode ler os manuais online na página de documentação do SoX.
Site oficial do SoX (em Inglês)
fonte: http://aiyumi.warpstar.net/pt/blog/sox-basic-intro
O que é o SoX?
SoX (Sound eXchange) é, como o autor o chama, o "canivete Suíço dos programas de processamento de som". Ele é gratuito, livre/de código aberto e roda em Windows, Mac e Linux.
O SoX pode reproduzir, gravar, converter, editar, dividir, combinar e aplicar vários efeitos a arquivos de áudio de muitos formatos diferentes.
Formatos Suportados
Em uma instalação padrão do Slackware Linux 13.37, os formatos suportados pelo SoX são:
8svx, aif, aifc, aiff, aiffc, al, amb, au, avr, caf, cdda, cdr, cvs, cvsd, cvu, dat, dvms, f32, f4, f64, f8, fap, flac, fssd, gsm, gsrt, hcom, htk, ima, ircam, la, lpc, lpc10, lu, mat, mat4, mat5, maud, mp2, mp3, nist, ogg, paf, prc, pvf, raw, s1, s16, s2, s24, s3, s32, s4, s8, sb, sd2, sds, sf, sl, smp, snd, sndfile (formatos suportados pela biblioteca Libsndfile), sndr, sndt, sou, sox ( formato interno), sph, sw, txw, u1, u16, u2, u24, u3, u32, u4, u8, ub, ul, uw, vms, voc, vorbis, vox, w64, wav, wavpcm, wv, wve, xa, xi
E mais alguns outros caso as bibliotecas associadas estejam instaladas.
Apenas alguns dos efeitos suportados:
bandpass (filtro passa-banda), chorus, delay, echo (eco), equalizer (equalizador), fade (fade in e out), highpass (filtro passa-alta), lowpass (filtro passa-baixa), pitch (altera apenas o tom), reverb (reverberação), reverse (inversão), riaa, speed (altera a velocidade e o tom), synth (gera formas básicas de onda), tempo (altera apenas a velocidade), tremolo, trim, vocoder
Para uma lista completa de formatos, efeitos e outras características, visite esta página (em Inglês).
Instalação
Versões para Windows e Mac podem ser baixadas diretamente da página oficial de download. Para Linux, o SoX pode ser compilado do código-fonte (disponível na mesma página), ou instalado via repositórios de pacotes para distribuições específicas. No caso do Slackware (a distribuição Linux que eu uso), ele é instalado por padrão embora o suporte a geração de arquivos MP3 venha desabilitado, o que pode ser resolvido apenas executando novamente o script (SlackBuild) para compilá-lo, depois reinstalá-lo.
Programas Inclusos
O SoX é uma ferramenta para linha de comando e vem com alguns mini programas (comandos) para execução de diferentes tarefas:
Play
Reproduz arquivos de áudio nos formatos suportados, além de aplicar efeitos durante a reprodução caso desejado.
Rec
Grava de um dispositivo (microfone, placa de som etc) para um arquivo em um dos formatos suportados.
Soxi
Exibe informações sobre arquivos de áudio nos formatos suportados.
Sox
É comumente usado para processar arquivo (s) e salvar os resultados em outro arquivo, mas na verdade ele é o núcleo do "play", do "rec" e do "soxi".
Exemplos Básicos de Uso
Nota: estes exemplos foram executados no Linux, não sei se há diferenças nos comandos para outros sistemas.
Exibir Informações Sobre Arquivos
- Exibe informações como tamanho, duração, codificação, taxa de bits (bitrate), número de canais, taxa de amostragem (sample rate), comentários etc. de um arquivo chamado "musica.mp3":
$ soxi musica.mp3 - Exibe apenas a duração do arquivo acima:
$ soxi -d musica.mp3
Reproduzindo Arquivos
- Toca um arquivo chamado "exemplo.mp3":
$ play exemplo.mp3 - Toca um arquivo chamado "exemplo.mp3" com um efeito de reverberação (reverb):
$ play exemplo.mp3 reverb - Reproduz o arquivo "exemplo.mp3" de trás para frente:
$ play exemplo.mp3 reverse - Reproduz apenas os primeiros cinco segundos de "exemplo.mp3":
$ play exemplo.mp3 trim 0 5 - Toca o arquivo "exemplo.mp3", do quinto segundo em diante:
$ play exemplo.mp3 trim 5
Nota: existem opções para controlar os parâmetros de reverb, trim etc., bem como vários outros efeitos. Leia a seção "Obtendo Ajuda" abaixo para mais informações.
Gravando
Captura o som do dispositivo de gravação padrão (por exemplo, um microfone) e salva em um arquivo chamado "exemplo.wav":
<code>$ rec exemplo.wav
</code>
Nota: primeiro você precisa definir o dispositivo de gravação (por exemplo, nas configurações de som no Windows, ou com programas como "alsamixer" ou "aumix" no Linux).
Pausando e Continuando
Para pausar a reprodução ou gravação, pressione Ctrl-z. O SoX vai pausar e ficar em segundo plano (background). Para retomar de onde parou e colocá-lo novamente em primeiro plano (foreground), digite o comando:
<code>$ fg
</code>
Nota: não sei se isso funciona da mesma forma (nem como/se funciona) no Windows.
Processamento e Conversão de arquivos
Estes comandos processam arquivo(s) e salvam o resultado em outro arquivo, até mesmo convertendo-o para outro formato.
- Converte um arquivo chamado "exemplo.wav" para "exemplo.mp3":
$ sox exemplo.wav exemplo.mp3 - Aplica um efeito de reverb (com os parâmetros padrões do SoX) ao arquivo "exemplo1.wav" e salva o resultado em "exemplo2.wav":
$ sox exemplo1.wav exemplo2.wav reverb - Une os arquivos "exemplo-parte1.flac" e "exemplo-parte2.flac" para formar "exemplo-completo.flac":
$ sox exemplo-parte1.flac exemplo-parte2.flac exemplo-completo.flac - Salva os primeiros cinquenta segundos de "exemplo1.mp3" para "exemplo2.ogg":
$ sox exemplo1.mp3 exemplo2.ogg trim 0 50 - Mescla (para que toquem simultaneamente) uma música de fundo ("musica.mp3") com uma gravação de voz ("discurso.wav"), produzindo "apresentacao.ogg":
$ sox -m musica.mp3 discurso.wav apresentacao.ogg - Mescla o fundo ("musica.mp3") na metade do volume e a voz ("discurso.wav") com o dobro de volume, produzindo "apresentacao.ogg":
$ sox -m -v0.5 musica.mp3 -v2 discurso.wav apresentacao.ogg
Dica: se quiser "pré-visualizar" (ou seria "pré-ouvir"?) os efeitos sem alterar o arquivo, você pode usar o "play" para aplicar os efeitos e ouvir:
<code>$ play -m -v0.5 musica.mp3 -v2 discurso.wav
</code>
Ajuste os parâmetros (neste exemplo, o volume, que é o número após a opção "-v") até encontrar os valores que julgar apropriados, então substitua o comando "play" por "sox" e especifique um arquivo de saída. Exemplo:
<code>$ sox -m -v0.5 musica.mp3 -v1.2 discurso.wav apresentacao.ogg
</code>
Gerando Áudio
O SoX também pode gerar algumas formas básicas de áudio como ondas senoidais (sine waves), triangulares (triangular waves), quadradas (square waves) e "dente de serra" (sawtoot waves), além de algumas outras coisas como ruído "branco" ("white" noise), "marrom" ("brown" noise) e "rosa" ("pink" noise).
- Este comando reproduz uma onda senoidal em 440Hz (a nota Lá/A4) durante um segundo. O ganho (e volume do som) é diminuído para não ficar muito alto:
$ play -n synth 1 sine 440 gain -10 - Este faz a mesma coisa, mas usa o nome da nota em vez da frequência:
$ play -n synth 1 sine A4 gain -10 - Este outro comando salva o som para um arquivo chamado "senoide.wav" em vez de tocá-lo:
$ sox -n senoide.wav synth 1 sine A4 gain -10
Suprimindo Informações
Se a quantidade de texto exibida na tela incomodar, você pode usar a opção "-q" para que o SoX não exiba nenhuma informação, exceto alertas e erros. Isso funciona tanto com o "play", quanto com o "rec" e o "sox". Exemplo:
<code>$ play -q musica.mp3
</code>
Obtendo Ajuda
Para mostrar todos os comandos do SoX, formatos e efeitos, digite:
<code>$ sox --help
</code>
Para "play", "rec" e "soxi", digite "play --help", "rec --help" e "soxi --help", respectivamente.
Nota: a ajuda é praticamente a mesma para o "sox", o "play" e o "rec", exceto pela ordem dos arquivos de entrada/saída e efeitos.
Há também os manuais do usuário (em Inglês), com explicações mais detalhadas dos comandos, parâmetros de efeito e exemplos. No Linux, se os manuais estiverem instalados, você pode lê-los offline digitando
<code>$ man sox
</code>
para os manuais do "sox", do "play" e do "rec",
<code>$ man soxformat
</code>
para todas as opções relacionadas aos formatos de arquivo suportados e
<code>$ man soxi
</code>
para o manual do "soxi". Há também o
<code>$ man libsox
</code>
para aqueles que querem mexer com código e a biblioteca da engine do SoX.
Você também pode ler os manuais online na página de documentação do SoX.
Links Externos
Site oficial do SoX (em Inglês)
fonte: http://aiyumi.warpstar.net/pt/blog/sox-basic-intro
quarta-feira, 12 de novembro de 2014
tshark
Analisando uma chamada com pacotes Jitter acima de 30MS
### Filter on RTCP packets reporting any packet loss or jitter over 30ms:
tshark -i eth0 -o "rtcp.heuristic_rtcp: TRUE" -R 'rtcp.ssrc.fraction >= 1 or rtcp.ssrc.jitter >= 30' -V
### View a remote realtime capture with a local wireshark:
wireshark -k -i <(ssh -l root 192.168.10.98 tshark -w - not tcp port 22)
terça-feira, 28 de outubro de 2014
Como configurar o Samba no Ubuntu, LinuxMint, Debian e derivados!
Todos sabem que a tarefa de compartilhar arquivos através do samba é muito fácil no kde já que ele possue muitas configurações que facilitam este trabalho. Entretanto, no gnome, a ferramenta nativa shares-admin não é tão intuitiva e acaba exigindo configuração por comandos para poder compartilhar arquivos sem autenticação. Nos comentários deste bug tem vários relatos a respeito do que estou falando. Eu mesmo encontrei um erro. Quando uso o shares-admin a opção browseable é erroneamente definida como browsable. Enquanto não melhoram esta ferramenta, encontrei um ótimo artigo para configurar o samba.
"Antes de começar verifique se sua rede está OK. Para ter certeza, abra um Terminal (Acesse menu -> Aplicações -> Acessórios -> Terminal) e efetue o comando ping (Ex. ping 192.168.1.20). Este ip pode ser da máquina que você pretende acessar pela rede. Se o ping estiver respondendo, quer dizer que está tudo ok. Caso contrário, verifique as definições de IP, mascara, cabeamento, etc...
O SaMBa é o sistema responśavel pela comunicação entre máquinas Unix (Linux) e Windows, usando protocolo TCP/IP.
Quando se fala em servidores de arquivos em rede heterogêneas, na grande maioria dos casos o SaMBa será utilizado, pois ele permite compartilhamento de arquivos, diretório e impresoras, com ou sem controle de acesso (autenticação).
Bom... vamos ao que interessa. Neste tutorial irei explicar como configurar o samba no Ubuntu.
Abra um terminal. (menu -> Aplicações -> Acessórios -> Terminal)
Primeiramente devemos baixar o pacote samba.
$ sudo apt-get install samba
Depois de concluído o download/ instalação do pacote via APT, o sistema irá criar o arquivo smb.conf dentro da pasta "/etc/samba/". Este é responsável pela configuração do Samba.
Antes de mais nada, vamos fazer um back-up do arquivo:
Particularmente gosto do VI para editar os arquivos .conf, mas use um editor de sua preferência.
Para quem quiser usar o VI, execute o comando para editá-lo:
Comentarei somente os paramentros do arquivo smb.conf que precisaram ser alterados.
Em [global]
#nome do grupo de trabalho
workgroup = casa
#Como a máquina Linux irá aparecer na rede Windows
netbios name = servidor (está linha pode ser adicionada a baixo do workgroup)
####### Authentication #######
#Modo de acesso aos arquivos do Linux
security = "share" ou "user" (caso exista, remova o ; que está no início desta linha)
#share = para NÃO exigir autenticação
#user = para exigir autenticação
ex: security = user
Agora adicione estas linhas no final do arquivo:
#nome do compartilhamento
[arquivos]
# descrição do compartilhamento
comment = meus arquivos
# caminho da pasta, no Linux, que será compartilhada
path = /media/hdb5 #(Informe o caminho da pasta que você que quer compartilhar, pode ser /home/voce)
#se todos os compartilhamentos poderão ser acessados por todos os usuários
public = yes
# se o compartilhamento será visivel ou oculto na rede (yes para visível)
browseable = yes
# se permitirá escrita
writable = yes
# somente leitura
read only = no
# define a mascara em que os arquivos serão criados
create mask = 0700 #(terão a permissão rwx somente para o root)
# define a mascara em que os diretórios serão criados
directory mask = 0700
Salve o arquivo de configuração, e execute este comando para reiniciar o samba
$ sudo /etc/init.d/samba restart
Caso tenha colocado security = user, no momento que for acessar por uma máquina Windows será exibido uma tela de login e senha. Para cadastrar esta senha no linux execute os seguintes comandos.
Primeiramente adiciona na lista de usuarios do Linux
Este comando adiciona usuario teste na lista de usuários do Linux
$ sudo adduser teste
Este comando adiciona o usuario na lista de usuários do Samba
$ sudo smbpasswd -a teste
Com esta configuração do Samba no Ubuntu, não tem erro...!!!"
Fonte: Sidnei S. Alves sydhnney@4newbies.com.br
http://www.4newbies.com.br/?artigo&ver=62
A minha configuração ficou assim:
[global]
workgroup =SEMPREUPDATE
netbios name = LINUX
server string = SERVIDOR SAMBA
security = share
[Dicas]
comment = Minhas_Dicas
path = /home/sempreupdate/Dicas
read only = no
public = yes
writable = yes
create mask = 0777
directory mask = 0777
browseable = yes
Também dei permissão de escrita, leitura e execução recursiva para o diretório compartilhado home/jefferson/Dicas para outros usuários com o comando:
Desta forma, não é exigida autenticação e qualquer pessoa pode acessar o diretório e escrever nele.
Fonte: http://www.sempreupdate.com.br/2014/10/como-configurar-o-samba-no-ubuntu.html?utm_source=twitterfeed&utm_medium=facebook
"Antes de começar verifique se sua rede está OK. Para ter certeza, abra um Terminal (Acesse menu -> Aplicações -> Acessórios -> Terminal) e efetue o comando ping (Ex. ping 192.168.1.20). Este ip pode ser da máquina que você pretende acessar pela rede. Se o ping estiver respondendo, quer dizer que está tudo ok. Caso contrário, verifique as definições de IP, mascara, cabeamento, etc...
O SaMBa é o sistema responśavel pela comunicação entre máquinas Unix (Linux) e Windows, usando protocolo TCP/IP.
Quando se fala em servidores de arquivos em rede heterogêneas, na grande maioria dos casos o SaMBa será utilizado, pois ele permite compartilhamento de arquivos, diretório e impresoras, com ou sem controle de acesso (autenticação).
Bom... vamos ao que interessa. Neste tutorial irei explicar como configurar o samba no Ubuntu.
Abra um terminal. (menu -> Aplicações -> Acessórios -> Terminal)
Primeiramente devemos baixar o pacote samba.
$ sudo apt-get install samba
Depois de concluído o download/ instalação do pacote via APT, o sistema irá criar o arquivo smb.conf dentro da pasta "/etc/samba/". Este é responsável pela configuração do Samba.
Antes de mais nada, vamos fazer um back-up do arquivo:
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bkp
Particularmente gosto do VI para editar os arquivos .conf, mas use um editor de sua preferência.
Para quem quiser usar o VI, execute o comando para editá-lo:
$ sudo vi /etc/samba/smb.conf
Comentarei somente os paramentros do arquivo smb.conf que precisaram ser alterados.
Em [global]
#nome do grupo de trabalho
workgroup = casa
#Como a máquina Linux irá aparecer na rede Windows
netbios name = servidor (está linha pode ser adicionada a baixo do workgroup)
####### Authentication #######
#Modo de acesso aos arquivos do Linux
security = "share" ou "user" (caso exista, remova o ; que está no início desta linha)
#share = para NÃO exigir autenticação
#user = para exigir autenticação
ex: security = user
Agora adicione estas linhas no final do arquivo:
#nome do compartilhamento
[arquivos]
# descrição do compartilhamento
comment = meus arquivos
# caminho da pasta, no Linux, que será compartilhada
path = /media/hdb5 #(Informe o caminho da pasta que você que quer compartilhar, pode ser /home/voce)
#se todos os compartilhamentos poderão ser acessados por todos os usuários
public = yes
# se o compartilhamento será visivel ou oculto na rede (yes para visível)
browseable = yes
# se permitirá escrita
writable = yes
# somente leitura
read only = no
# define a mascara em que os arquivos serão criados
create mask = 0700 #(terão a permissão rwx somente para o root)
# define a mascara em que os diretórios serão criados
directory mask = 0700
Salve o arquivo de configuração, e execute este comando para reiniciar o samba
$ sudo /etc/init.d/samba restart
Caso tenha colocado security = user, no momento que for acessar por uma máquina Windows será exibido uma tela de login e senha. Para cadastrar esta senha no linux execute os seguintes comandos.
Primeiramente adiciona na lista de usuarios do Linux
Este comando adiciona usuario teste na lista de usuários do Linux
$ sudo adduser teste
Este comando adiciona o usuario na lista de usuários do Samba
$ sudo smbpasswd -a teste
Com esta configuração do Samba no Ubuntu, não tem erro...!!!"
Fonte: Sidnei S. Alves sydhnney@4newbies.com.br
http://www.4newbies.com.br/?artigo&ver=62
A minha configuração ficou assim:
[global]
workgroup =SEMPREUPDATE
netbios name = LINUX
server string = SERVIDOR SAMBA
security = share
[Dicas]
comment = Minhas_Dicas
path = /home/sempreupdate/Dicas
read only = no
public = yes
writable = yes
create mask = 0777
directory mask = 0777
browseable = yes
Também dei permissão de escrita, leitura e execução recursiva para o diretório compartilhado home/jefferson/Dicas para outros usuários com o comando:
$ sudo chmod -R o+rwx /home/sempreupdate/Dicas
Desta forma, não é exigida autenticação e qualquer pessoa pode acessar o diretório e escrever nele.
Fonte: http://www.sempreupdate.com.br/2014/10/como-configurar-o-samba-no-ubuntu.html?utm_source=twitterfeed&utm_medium=facebook
quinta-feira, 9 de outubro de 2014
terça-feira, 7 de outubro de 2014
LPI1 checagem de disco
Qual o comando mais simples e direto para checar a integridade um sistema de arquivos ext2?
a. ext2fsck
b. fsck.ext2
c. fsck -t ext2
d. e2fsck
e. Nenhuma das alternativas
Essa questão é decoreba mas chatinha e eu não tenho costume de ter problemas com discos graças ao vmware onde podemos fazer backups e migrar conteúdos dos discos e apenas comprar outro hehehehe, mas para o lp1... é importante.
Lembrando que o e2fsck é apenas um alias o comando que verifica a integridade é o fsck outros tipos de partição usam o fsck mas tem outros alias segue link para referência do assunto e cuidado na hora de testar..
http://www.vivaolinux.com.br/artigo/Checando-seu-sistema-de-arquivos-com-fsck
a. ext2fsck
b. fsck.ext2
c. fsck -t ext2
d. e2fsck
e. Nenhuma das alternativas
Essa questão é decoreba mas chatinha e eu não tenho costume de ter problemas com discos graças ao vmware onde podemos fazer backups e migrar conteúdos dos discos e apenas comprar outro hehehehe, mas para o lp1... é importante.
Lembrando que o e2fsck é apenas um alias o comando que verifica a integridade é o fsck outros tipos de partição usam o fsck mas tem outros alias segue link para referência do assunto e cuidado na hora de testar..
http://www.vivaolinux.com.br/artigo/Checando-seu-sistema-de-arquivos-com-fsck
Assinar:
Postagens (Atom)