|
Página seguinte
Página anterior
Índice
Edite o /etc/syslog.conf, e coloque a seguinte linha:
# Copia tudo em tty8
*.* /dev/tty8
Um detalhe: LEMBRE-SE DE USAR TAB ! syslog não gosta de espaços...
De um iniciante para outro, segue aqui um programa curto que facilita a visualização e pesquisa em documentos Como Fazer - HOWTO. Meus documentos estão em /usr/doc/faq/howto/ e estão compactadas com gzip. O nome dos arquivos são XXX-HOWTO.gz, sendo XXX o assunto. Eu criei o seguinte programa, chamado "howto" no diretório /usr/local/sbin:
#!/bin/sh
if [ "$1" = "" ]; then
ls /usr/doc/faq/howto | less
else
gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less
fi
Quando chamado sem argumentos, mostra o conteúdo do diretório que contém os COMO FAZER disponíveis. Então ao se informar a primeira parte do nome do arquivo (antes do hífen) como argumento, ele descompacta (mantendo o original intocado) e mostra o documento.
Por exemplo, para ver o documento Serial-HOWTO.gz , deve-se informar:
$ howto Serial
Segue aqui um pequeno programa que checa de tempos em tempos se há espaço em disco suficiente em qualquer dispositivo que esteja montado (discos, cdrom, disquetes, etc.).
Caso o espaço acabe, uma mensagem é apresentada a cada X segundos na tela e é enviado um email por dispositivo que esteja sem espaço.
#!/bin/sh
#
# $Id: Tips-HOWTO.pt_BR-240.html,v 1.1 2000/10/20 12:52:23 ricardo Exp $
#
#
# Desde que erros misteriosos ocorreram durante a compilação
# quando arquivos encheram o diretório tmp
# eu escrevi este programa para ser avisado de que os discos estavam cheios.
#
# Caso este utilitário evite que o seu servidor exploda mande uma
# mensagem de agradecimento para zocki@goldfish.cube.net.
#
# Caso você realmente saiba como lidar com o sed, por favor desculpe-me!
#
# Atire e esqueça: ponha 'check_hdspace &' no rc.local.
# Cheque o espaço livre nos dispositivos a cada $SLEEPTIME segundos.
# Pode-se verificar inclusive disquetes e fitas.
# Caso o espaço livre esteja abaixo de $MINFREE (kb), será apresentada
# uma mensagem e enviado um email por cada dispositivo em $MAIL_TO_ME.
# Caso haja mais espaço livre do que o limite definido, um email pode
# também ser enviado.
#
# TODO: Diferentes $MINFREE para cada dispositivo.
# Liberar diretórios /*tmp de coisas antigas e inúteis caso não haja mais espaço # livre.
DEVICES='/dev/sda2 /dev/sda8 /dev/sda9' # device; informe seus discos aqui
MINFREE=20480 # kb; abaixo daqui, avise-me
SLEEPTIME=10 # sec; tempo entre as checagens
MAIL_TO_ME='root@localhost' # fool; quem deve ser avisado
# ------ a partir daqui nenhuma alteração será necessária (eu espero :) ) ------
MINMB=0
ISFREE=0
MAILED=""
let MINMB=$MINFREE/1024 # sim, nós somos rígidos :)
while [ 1 ]; do
DF="`/bin/df`"
for DEVICE in $DEVICES ; do
ISFREE=`echo $DF | sed s#.\*$DEVICE" "\*[0-9]\*""\*[0-9]\*" "\*## | sed s#" ".\*##`
if [ $ISFREE -le $MINFREE ] ; then
let ISMB=$ISFREE/1024
echo "WARNING: $DEVICE only $ISMB mb free." >&2
#echo "more stuff here" >&2
echo -e "\a\a\a\a"
if [ -z "`echo $MAILED | grep -w $DEVICE`" ] ; then
echo "WARNING: $DEVICE only $ISMB mb free. (Trigger is set to $MINMB mb)" \
| mail -s "WARNING: $DEVICE only $ISMB mb free!" $MAIL_TO_ME
MAILEDH="$MAILED $DEVICE"
MAILED=$MAILEDH
# put further action here like cleaning
# up */tmp dirs...
fi
elif [ -n "`echo $MAILED | grep -w $DEVICE`" ] ; then
# Remove mailed marker if enough disk space
# again. So we are ready for new mailing action.
MAILEDH="`echo $MAILED | sed s#$DEVICE##`"
MAILED=$MAILEDH
fi
done
sleep $SLEEPTIME
done
Caso você seja como eu, deve manter uma lista com centenas de inscritos, mais de cem mensagens por dia chegando pelo UUCP. Bem, o que fazer para lidar com históricos enormes? Instalar chklogs. Chklogs foi escrito por Emilio Grimaldo, grimaldo@panama.iaehv.nl , e a versão atual é a 1.8 disponível em ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz. Ele é auto explicativo na instalação (obviamente você verificará o conteúdo do subdiretório info).
Uma vez instalado, adicione uma entrada ao crontab como esta:
# Executar chklogs as 3:00AM diariamente.
00 21 * * * /usr/local/sbin/chklogs -m
Enquanto você estiver lidando isso, avise ao autor quão bom seu software é. :)
Crie um arquivo chamado rmcores (o autor chama isso de trata-cores) com o seguinte conteúdo:
#!/bin/sh
USAGE="$0 <directory> <message-file>"
if [ $# != 2 ] ; then
echo $USAGE
exit
fi
echo Apagando...
find $1 -name core -atime 7 -print -type f -exec rm {} \;
echo email
for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24`
do
echo $name
cat $2 | mail $name
done
E adicione uma tarefa ao cron para executar este utilitário periodicamente.
Uma maneira rápida de mover uma árvore de diretórios e arquivos de um disco para outro.
(cd /origem/diretório && tar cf - . ) | (cd /destino/diretório && tar xvfp -)
[Mude de cd /origem/diretório: tar;.etc; para prevenir possíveis danos ao diretório em caso de problemas. Agradecimentos a Jim Dennis, jim@starshine.org, por avisar-nos.]
Quer saber quais são os maiores diretórios em seu computador? Veja como descobrir.
du -S | sort -n
Congratulações a John Fisk, criador do Linux Gazette. Esta é uma excelente revista eletrônica e é GRÁTIS!!! Agora o que mais você poderia perguntar? Visite A Gazeta Linux em:
http://www.linuxgazette.com
É bom saber que LG tem periodicidade mensal, e (2) John Fisk não mais a mantém e sim o pessoal da SSC.
Eu não sei se muita gente tem esse problema, mas há uma funcionalidade da versão 3.70 do GNU make que eu não gosto. É que o VPATH age estranhamento caso se informe um caminho de nome absoluto. Há uma atualização muito robusta que conserta isso em Paul D. Smith <psmith@wellfleet.com> . Ele também envia mensagens e documentação após cada revisão do GNU make em "gnu.utils.bug" geralmente, eu aplico as atualizações e compilo gmake em todos os sistemas nos quais trabalho.
P: Como evitar que e2fsck cheque o sistema de arquivos de meu disco a cada vez que o sistema for inicializado.
R: Ao reconstruir o kernel, o sistema de arquivos é marcado como ´sujo´ e então o disco será checado a cada inicialização do sistema. Para corrigir isso execute:
rdev -R /zImage 1
Isso avisa ao kernel de que os sistemas de arquivos não apresentam nenhum problema.
Nota: caso se esteja usando LILO, então adicione read-only à configuração do Linux no arquivo de configuração do LILO (normalmente /etc/lilo.conf) .
Caso você tenha erros de dispositivo ocupado ao desligar o sistema e que deixam os sistemas de arquivos com indicação para verificação de integridade em tempo de inicialização, segue uma correção simples:
Em /etc/rc.d/init.d/halt ou /etc/rc.d/rc.0 , adicione a linha
mount -o remount,ro /mount.dir
para todos os sistemas de arquivos montados, exceto /, antes de chamar o comando umount -a. Isto significa que, se por alguma razão, o desligamento falhar ao finalizar todos os processos e desmontar os discos, eles estarão limpos para reinicialização. Isso economiza bastante tempo durante a carga do sistema.
Simon Amor, simon@foobar.co.uk
ls -l | sort +4n
Ou, para aqueles que realmente necessitam de espaço, segue uma alternativa que demora um pouco mas funciona perfeitamente:
cd /
ls -lR | sort +4n
#!/bin/sh
# /usr/local/bin/print
# um formatador simples, que permite uma margem
# para encadernações
cat $1 | pr -t -o 5 -w 85 | lpr
Eu chamo este programa ´forall´. Pode-se usar da seguinte forma:
forall /usr/include grep -i ioctl
forall /usr/man grep ioctl
Aqui está forall:
#!/bin/sh
if [ 1 = `expr 2 \> $#` ]
then
echo Uso: $0 dir cmd [opcargs]
exit 1
fi
dir=$1
shift
find $dir -type f -print | xargs "$@"
Segue uma dica simples em duas linhas com recursividade em uma hierarquia de diretórios removendo arquivos emacs de salvamento automático (#) e cópias de segurança (~), arquivos .o e arquivos .log do Tex. Ele ainda comprime arquivos .tex e arquivos README. Eu chamo isso de encolhimento no meu sistema.
#!/bin/sh
#ENCOLHER remove arquivos desnecessários e comprime arquivos .tex e README
#De Barry tolnas, tolnas@sun1.engr.utk.edu
#
echo encolhendo $PWD
find $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec
rm -f {} \;
find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \;
ps -aux | sort +4n
-OU-
ps -aux | sort +5n
Eu programo bastante em C em meu tempo livre, e eu usei algum tempo para melhorar o vi para ser mais amigável com o C. Segue o meu arquivo .exrc:
set autoindent
set shiftwidth=4
set backspace=2
set ruler
Como isso funciona? Autoindent faz com que o vi automaticamente indente cada linha, saltando para direita a distância de ^T em 4 espaços, backspace configura o valor da tecla de retorno e ruler mostra a régua com os números. Lembre-se que para ir a uma linha especifica, digamos número 20, use:
vi +20 myfile.c
Muitos programadores já tem ctags em seus computadores, mas não as usam. Podem ser muito úteis em diversas ocasiões. Suponha que se tenha uma função, em um dos diversos arquivos de fontes em um diretório, para um programa que está em desenvolvimento, e se deseja editar a função para sua atualização. Chamaremos esta função de foo(). Porém não lembramos onde está o fonte. É aqui que ctags começa a ser muito útil. Ao executar ctags ele produz um arquivo chamado tags no diretório atual, o qual é uma lista de todas as funções, em quais arquivos eles estão presentes e onde elas estão naqueles arquivos. O arquivo de resultado se parece com algo como:
ActiveIconManager iconmgr.c /^void ActiveIconManager(active)$/
AddDefaultBindings add_window.c /^AddDefaultBindings ()$/
AddEndResize resize.c /^AddEndResize(tmp_win)$/
AddFuncButton menus.c /^Bool AddFuncButton (num, cont, mods, func, menu, item)$/
AddFuncKey menus.c /^Bool AddFuncKey (name, cont, mods, func, menu, win_name, action)$/
AddIconManager iconmgr.c /^WList *AddIconManager(tmp_win)$/
AddIconRegion icons.c /^AddIconRegion(geom, grav1, grav2, stepx, stepy)$/
AddStartResize resize.c /^AddStartResize(tmp_win, x, y, w, h)$/
AddToClientsList workmgr.c /^void AddToClientsList (workspace, client)$/
AddToList list.c /^AddToList(list_head, name, ptr)$/
Para editar, digamos AddEndResize() no vim, execute:
vim -t AddEndResize
Isto irá trazer o arquivo apropriado ao editor, com o cursor localizado no início da função.
Este é um problema muito comum, quase no ponto de tornar-se um FAQ. A Red Hat já deve ter corrigido este problema em sua distribuição, mas isso pode ser corrigido por você mesmo. Ao se verificar o conteúdo do arquivo /etc/hosts,
pode-se encontrar algo como:
127.0.0.1 localhost suamáquina
Quando sendmail é iniciado, ele procura pelo nome da máquina (neste exemplo suamáquina). Após, ele verifica que o IP de suamáquina é 127.0.0.1, porém ele não gosta desta definição e procura novamente, continuando neste processo por um longo período até desistir e finalizar. Corrigir este problema é muito simples, bastando editar o arquivo /etc/hosts e alterá-lo para algo como:
127.0.0.1 localhost
10.56.142.1 yourbox
A distribuição da Red Hat vem com o comando ls em cores, porém ele não é configurado automaticamente na instalação. Vejam como fazê-lo.
Primeiro, digite eval `DIRCOLORS`
Após, alias ls='ls --color=auto'
E deve-se incluir o 'alias.....' no arquivo /etc/bashrc
O que fazer quando se está compilando um programa e não se sabe a biblioteca que está faltando? Todas as informações geradas pelo gcc são com nomes de funções. Veja aqui como um simples comando pode encontrar o que você está procurando:
for i in *; do echo $i:;nm $i|grep nome_função 2>/dev/null;done
Onde nome_função é o nome da função que se está procurando.
Provavelmente o programa foi compilado em um binário chamado test. Porém Linux tem um programa de mesmo nome, o qual testa se determinada condição é verdadeira, e nunca produz resultados na tela. Para testar seu programa, estando no diretório onde ele está localizado, digite: ./test
Página seguinte
Página anterior
Índice
|