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

quinta-feira, 13 de janeiro de 2011

How-to: Proteja sua CPU com Python e festival

Você sabe quando o cooler de sua CPU vai falhar?
Nem eu.

Usando um modelo probabilístico adequado, como o Exponencial, podemos ter uma boa noção de quando esse evento ocorrerá,mas que não é nada prático, já que provavelmente você vai trocar o cooler antes do tempo, ou depois que ele queimar. O que quase aconteceu comigo semana passada. A base que prende o cooler quebrou, o dissipador se afastou da CPU, o suficiente para ela chegar à 87°C, quase queimando-a. Soou o alarme e eu desliguei o micro à tempo, evitando maiores danos.

Minha sorte foi ter escrito um script na semana anterior que aproveita as funcionalidades do lm-sensors para avisar verbalmente que algo não está bem. É bem simples e tem espaço para muitas melhorias que irei acrescentando aos poucos. Funciona e tem me atendido bem todo esse tempo.

Tem dois pré-requisitos:
lm-sensors: tutorial de uso e configuração por Carlos Morimoto.
festival: meu tutorial.

Daí, é só baixar esse arquivo, salvá-lo em uma pasta de sua preferência, dar permissão de execução com:

$chmod +x sentinel.py

E depois adicioná-lo ao crontab, com o seguinte comando:

crontab -e

0-59/10 * * * * /home/gama/scripts/sentinel.py 



O que fará o cron rodar o comando a cada 10 minutos.
E pronto, se o cooler falhar ou a CPU sobreaquecer, o sistema vai reclamar.

See ya!

quinta-feira, 20 de maio de 2010

Serviço: workaround para pendrive no Squeeze

Os meus pendrives estavam desmontando repentinamente no Squeeze, não permitindo a cópia ou mesmo a leitura de arquivos dos mesmos.

Considerando que os dois funcionam perfeitamente em máquinas Windows, e falham da mesma forma no Debian, descartei a possibilidade de um problema de hardware.

Pesquisando bastante, a maioria dos posts em fóruns mandavam jogar fora o pendrive, mas eu, como bom pão-duro que sou, me recusei. Boa idéia, já que com um pouco mais de Google, achei a resposta.

Aparentemente é um bug do módulo ehci_hcd, que ocorre há bastante tempo, já que há relatos dele em 2007, com a mesma solução.

Como resolver? Simples e rápido.

#rmmod ehci_hcd
#modprobe ehci_hcd


Coloquei estes dois comandos no final do /etc/rc.local
Agora o pendrive está decente, vamos ver até quando...

Porque isso está acontecendo, eu realmente ignoro, e porque só recarregar o módulo resolve o problema, idem. Enfim...

UPDATE: Os dois comandos só funcionam após o perfil de usuário ser carregado. Reze para ser o root e poder rodar os comandos após logar. A luta continua!

sábado, 3 de abril de 2010

Gravação de DVDs via linha de comando

Poderia dar um monte de explicações sobre as vantagens de se saber manipular um CD ou DVD na linha de comando, mas não. Vou só dizer que é muito mais rápido e prático.

Para apagar um disco regravável:

$ wodim -blank=fast -v dev=/dev/<unidade de cd/dvd>

Para gravar uma imagem iso no disco:

$ wodim dev=/dev/<unidade de cd/dvd> fs=14M speed=8 -dao -eject -v imagem.iso

Para gerar uma imagem iso de um diretório

$ genisoimage -o myImage.iso -r -J -l pasta

A flag -J habilita extensões Joliet, para uso em máquinas Windows, e a flag -l habilita nomes com 31 caracteres, bem melhor que o 8.3 do DOS.

Para gravar uma imagem iso no DVD:

$ growisofs -dvd-compat -Z /dev/dvd=image.iso

Para gravar diversos arquivos avulsos no DVD:

$ growisofs -Z /dev/dvd -R -J arquivo1 arquivo2 arquivon

Para adicionar mais arquivos ao DVD:

$ growisofs -M /dev/dvd -R -J arquivo1 arquivo2 arquivon

Para fechar a sessão:

$ growisofs -M /dev/dvd=/dev/zero

E é isso. Para não ter de decorar tudo, basta fazer uns scripts e adicionar ao .bashrc.

sábado, 27 de fevereiro de 2010

How-to: Multiboot com Hiren's, DSL e Clonezilla

Já tínhamos o pendrive dual-boot com Hiren's e DSL. Não satisfeito, resolvi acrescentar o Clonezilla Live.

Muito simples:
  • Siga esse tutorial.
  • Baixe o Clonezilla Live.
  • Abra o arquivo menu.lst que está na raiz do pendrive e acrescente essas linhas ao final.

title Clonezilla Live

kernel /live/vmlinuz boot=live union=aufs noswap nolocales noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=791 toram=filesystem.squashfs ip=frommedia
initrd /live/initrd.img


Ou então, pelo terminal, use
$cat >> menu.lst
e cole as linhas, fechando o arquivo com Ctrl + C.

Atenção: de 'kernel' até 'frommedia' é apenas uma linha, se houver caracteres CR/LF o grub não reconhece os comandos e o Clonezilla não vai subir.

Pronto!

No arquivo syslinux.cfg do Clonezilla tem mais opções de boot. Se quiser colocar mais opções é só adaptar as linhas de comando à sintaxe do grub e inserí-las no menu.lst.

Posts relacionados:
How-to: Dual-boot no pendrive com Hiren's e DSL.

domingo, 14 de fevereiro de 2010

The Dead Link Sketch Reloaded.

Motivação


O script Dead Link na sua versão pré-alfa, apresenta alguns efeitos colaterais:
  • De 5 em 5 minutos ele te avisa que o link caiu. Fica meio chato, para dizer o mínimo.
  • Ele não avisa que o link voltou, simplesmente ele para de avisar que o link está fora.
  • Se alguma aplicação usa o link no talo, ele dá um falso positivo. Essa resolução fica para a próxima versão.
Era só rodar o jDownloader que o nosso HAL disparava a avisar que "The link is no more...", que Deus nos livre.

Agora ele está um pouco mais inteligente, avisando apenas uma vez que o link caiu e avisando novamente quando o link está ok. Melhorou muito, não?

Segue abaixo a nova versão. É só substituir o texto no script anterior e pronto, não precisa nem alterar no crontab.

Implementação


#!/bin/sh
HOST_PING=208.67.222.222
ping $HOST_PING -c 1 &>/dev/null
if [ "$?" != "0" ] ; then
RESP=0
else
RESP=1
fi
if [ $RESP == 0 ]; then
if [ ! -e linkdown.lck ]; then
sh /home/oswaldo/scripts/speak.sh "The link is no more! The link ceased to be! It expired and gone to meet its maker! This is an ex link!"
touch linkdown.lck
fi
else
if [ -e linkdown.lck ]; then
sh /home/oswaldo/scripts/speak.sh "The link is up, sir!"
rm linkdown.lck
fi
fi
exit


Edite o seu script para que ele aponte para o speak.sh em sua máquina.
Pronto. Long life and prosper!

Posts relacionados:

The Dead Link Sketch, ou como saber se o link caiu.
Tenha seu próprio HAL com o festival
Novos arquivos de voz para o festival

sábado, 13 de fevereiro de 2010

Adicionar legendas com o MEncoder

O meu DVD Player, um DVP642k, é um enjoamento para aceitar legendas externas. O arquivo .srt tem de ser salvo e gravado no Windows, seja qual for, para que o mesmo seja reconhecido como um arquivo de legendas. Mesmo adicionando o par CR/LF para fim de linha, ele simplesmente as ignora solenemente. So, fuck off!

Após brigar muito com as 2^56 opções do MEncoder, parece que cheguei à uma configuração decente para adicionar legendas em vídeos com codec xvid. O script abaixo é receita de bolo, não vou ficar explicando o que cada opção faz, leia nesse ótimo mini-tutorial.

Fiquei muito tentado a usar a opção -oac copy, mas todas as vezes ele gerava um atraso insuportável no áudio, então mp3lame nele.

Ao trabalho, então:

$cat > subtitleall.sh
#!/bin/sh
for i in `ls *.srt`
do j=`echo $i | sed 's/\.srt//'`
mencoder -quiet -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=5
-sub $j.srt -subpos 90 -subfont-text-scale 3 -subfont-outline 2 -subcp ISO-8859-1 -sub-bg-alpha 200 -o $j\_sub.avi $j.avi
echo "Encoding of $j.avi " 'complete!'|festival --tts
done
exit
^C
$chmod +x subtitleall.sh


A linha mencoder é única até a instrução echo.

Esse script adiciona legendas srt aos vídeos avi xvid e avisa quando terminou cada conversão, DESDE que os arquivos estejam com o mesmo nome e SEM caracteres especiais.

Falando em caracteres, preciso de um script de uma linha para remover os []() dos nomes de arquivo. Quando conseguir, posto aqui.