Entries Tagged 'Tips' ↓

Como automatizar as entradas de teclado no Linux

Volta e meia se faz necessário criar algo um pouco mais automatizado. Como podemos fazer isso em Linux?
Se lembrarmos da máxima “Em UNIX tudo é um arquivo”, a coisa fica um pouco mais simples. Por tudo, é realmente TUDO, inclusive o teclado ;)

Já entendeu como? Basta utilizar um redirect ;)
Como exemplo, vamos tentar automatizar o fdisk, algo um tanto quanto complexo não? Vamos supor que você queira criar uma partição primária com todo o espaço disponível em /dev/sdb, pode fazer com o seguinte script:

#!/bin/sh
cat << EOF | fdisk /dev/sdb
n
p
1

w
EOF
partprobe

Agora basta  salvar e executar o script, ele ira inserir os comandos ‘n’,'p’,’1′,’Enter’,'w’ no fdisk, como faria uma pessoa de forma iterativa. No final irá chamar o partprobe para reler as tabelas dos discos.

Como utilizar mutex para evitar race-conditions em pThreads?

Apenas uma dica rápida, outro dia me peguei programando em pThreads e, como qualquer coisa um pouco mais complexa, cai no famoso “race-condition”, quando uma thread tenta utilizar dados ao mesmo tempo em que outra thread tenta (por exemplo) criar os dados.
Existem várias formas de se resolver isso, porém acredito que a mais simples é a utilização de mutex (atenção, isso é exclusivo do SO, no nosso caso sistemas baseados em UNIX como Linux ou FreeBSD). A idéia do mutex é:

  1. Cria uma variável do tipo pthread_mutex_t
  2. Inicializa
  3. Dentro da thread, efetue um lock na área crítica da memória
  4. Trabalhe na memória
  5. Efetue um unlock da área crítica.

Vamos ao exemplo mais simples possível: Continue reading →

Mudando as cores do ViM

Ok, dica rápida.

Para quem não sabe, é possível trocar as cores do ViM (Vi-iMproved) para alguns temas. Primeiramente veja quais são os temas disponíveis em /usr/share/vim/vim72/colors (ou diretório equivalente).
Para escolher algum tema, coloque em seu .vimrc (ou no /etc/vimrc) o comando

:colorscheme <tema>

Por exemplo, para utilizar o tema “darkblue”, coloque:

:colorscheme darkblue

O mesmo pode ser feito apenas para uma seção, porém não ira ser permanente.

Fica a dica.

Habemus Youtube

Não é nenhuma novidade que a Apple cancelou o contrato com a Google (em partes, ainda bem, uma vez que os apps da Google estavam esquecidos no mundo iOS), no meio disso tudo, no iOS 6 não temos mais Google Maps por padrão (agora é a versão da Apple) e, recentemente, o YouTube também saiu dos pequenos dispositivos. Pois bem, ontem a Google lançou o app oficial (again) do YouTube, apenas para o iPhone por enquanto, mas uma versão do iPad está para vir.

Pessoalmente ainda não fiz o download (falta de tempo para analisar direito), mas para quem quiser, você pode fazer o download diretamente da App Store.

Como efetuar um reduce em LVM

Ok, quem conhece LVM sabe de sua praticidade, quem não conhece pode ir aqui para ver o quão prático ele pode ser. O LVM nos traz vários benefícios, um deles é justamente aumentar e reduzir um volume, com um sistema em LVM podemos por exemplo adicionar um HD em algum volume lógico e adicionar espaço (um stripping), e também podemos fazer o oposto, diminuir para, por exemplo, colocar em algum outro volume lógico.
Enquanto adicionar é fácil, remover para colocar em outro local pode ser um pouco complicado, ou até mesmo desafiador, já que TEMOS dados nos volumes, como fazer isso SEM perdê-los? É sobre isso que é essa dica. Continue reading →

Problema ao conectar via sqlplus em uma base local, porém com outro usuário.

Recentemente em uma máquina de testes, alguns usuários além do usuário de instalação do Oracle estavam precisando utilizar o sqlplus para se conectar ao banco local. Normalmente para fazer isso baste adicioná-los nos grupos de dba, oper, oinstal, etc…, porém dessa vez não funcionou, eles conseguiam executar o sqlplus, porém não conectavam, o problema sempre sendo “ORA-27123: unable to attach to shared memory segment “.
Sabendo que a Shared Memory estava OK, fiz uma rápida busca e encontrei esse post no blog do Sabdar Syed, onde diz basicamente para verificar a permissão do binário ‘$ORACLE_HOME/bin/oracle’, ele deve ser setuid 751, ou seja, rode como o usuário oracle (ou root) ‘chmod 6751 $ORACLE_HOME/bin/oracle’. E não é que deu certo?
Fica a dica e o agradecimento ao DBA Sabdar.

Utilizando os pacotes do CentOS no RHEL

Pelo motivo que seja, volta e meia é necessário “esquecer” os pacotes da RedHat e utilizar os pacotes comunitários (CentOS). Recentemente me deparei com esse caso, a busca não foi das mais simples (o processo é fácil, mas a busca pelo processo correto não), encontrei no blog do LinuxDaemon um passo a passo que, com alguns arrumes ficou perfeito.
A idéia é simples, retire tudo que diga que é um RHEL e troque por tudo que diz que é um CentOS, bom, nem tudo precisa (ou deve) ser retirado ;) Continue reading →

Slackbuilds

Voltando a vida e voltando à antiga escola, mandei o Ubuntu praquele lugar (não que eu não tenha gostado, mas apenas não atendia mais minhas necessidades), e voltei ao bom e velho Slackware. Para quem não conhece o Slackware é a distribuição mais antiga de Linux, que ainda é mantida. Isso significa fazer as coisas na unha, na raça certo? Bem, mais ou menos. Continue reading →

Saiba como está seu linux utilizando sysstat

Para quem é antigo de UNIX/Linux, sabe quão importante é saber exatamente como está se comportando o seu sistema, em windows existe o famigerado Task Manager, mas em Linux, bem, em Linux temos um maravilhoso conjunto de ferramentas chamado sysstat.
Obviamente é para linha de comando e pode mostrar dese I/O de disco (partição a partição), até utilização de RAM e CPU e muito mais. Como é uma suite, existem vários comandos, aqui vai um exemplo bem simples de um deles, o chamado vmstat: Continue reading →

Atualização da Oracle VirtualBox

É, realmente a Oracle está dando o que falar, ela lançou a nova versão do sistema de virtualização que era da Sun o VirtualBox, agora em sua versão 2.8, com vários upgrades para melhorar a performance, compartilhar discos em várias máquinas virtuais, melhor suporte para 3D, USB, etc. Ainda mantendo o mesmo em OpenSource, realmente não está fácil entender qual é a da Oracle.
Leia mais aqui (The H).