Todos os posts de minimedia

Contando linhas

Em muitos casos, pode ser necessário conhecimento da quantidade de linhas de um arquivo, como por exemplo,a quantidade de usuaŕios em nosso sistema com permissão ao shell /bin/bash, abaixo temos um exemplo prático com o comando wc juntamente com o grep:

host:~# grep bash /etc/passwd |wc -l
6

Neste exemplo, possuimos 6 usuários com permissão de utilizar o shell /bin/bash, da mesma forma, dependendo da necessidade podem ser utilizados outros critérios. A linha de comandos acima, filtrou utilizando o comando grep, o arquivo /etc/passwd buscando  por linhas que contém a palvra bash, em seguida a saída do comando foi redirecionada para o comando wc utilizando a opção -l, que tem a função de contar as linhas.

Editando arquivos

Neste artigo, será apresentada uma função interessante do comando sed, que é a possibilidade de editar arquivos em modo texto. Neste artigo, será apresentada uma função interessante do comando sed, que é a possibilidade de editar arquivos em modo texto. para maior entendimento o exemplo aqui descrito, tratará da edição de um arquivo de sistema, o arquivo /etc/resolv.conf. para isso, é necessário efetuar backup do arquivo original, e executar todos os comandos com o usuário root.

No primeito exemplo, iremos analisar como editar o arquivo /etc/resolv.conf, modificando o parâmetro nameserver, primeiramente, vamos listar o arquivo em seu formato original:

host:~# cat /etc/resolv.conf
domain minimedia.com.br
search   minimedia.com.br
nameserver 192.168.0.1

Em seguida executaremos a seguinte linha de comandos:

host:~# sed 's/192.168.0.1/192.168.0.200/' /etc/resolv.conf
domain minimedia.com.br
search  minimedia.com.br
nameserver 192.168.0.1
Podemos verificar que o parâmetro nameserver foi alterado de 192.168.0.1 para 192.168.0.200, porém desta forma não efetuamos a edição do arquivo, a seguir segue mais um exemplo de como alterar o arquivo /etc/resolv.conf:
host:~# sed 's/192.168.0.1/192.168.0.200/' /etc/resolv.conf >> /tmp/resolv.conf.tmp
Redirecionamos a saída do comando sed para o arquivo temporário /tmp/resolv.conf.tmp, isso utilizando o comando sed em apóstrofos.

Após a execução da linha de comandos acima, o próximo passo será copiar o arquivo temporário, para o arquivo original:

host:~# cp /tmp/resolv.conf/tmp /etc/resolv.conf

Com o comando acima, foi substituído o arquivo temporário pelo original, a seguir listamos o arquivo alterado:

host:~# cat /etc/resolv.conf
domain minimedia.com.br
search   minimedia.com.br
nameserver 192.168.0.200

Como podemos ver, o arquivo /etc/resolv.conf foi alterado, nosso próximo passo, é desenvolver um script para tal função, para tanto vamos iniciar a criação do script:

host:~# touch alter-resolv.sh
host:~# chmod +x  alter-resolv.sh

Acima com o comando touch, foi criado o script alter-resolv.sh e em seguida adicionada permissão de execução ao mesmo, o conteúdo do arquivo deve ser o seguinte:

#!/bin/bash

ATUAL=`grep nameserver /etc/resolv.conf |cut -d " " -f2`

sed s/$ATUAL/\/ /etc/resolv.conf > /tmp/resolv.conf.tmp

cp /tmp/resolv.conf.tmp /etc/resolv.conf

rm -rf /tmp/resolv.conf.tmp

Após criado e com permissão de execução, o script deve ser executado da seguinte forma:

host:~# ./alter-resolv.sh

Exemplo:

host:~# ./alter-resolv.sh 192.168.0.200

O comando sed possui diversas utilidades, para aqueles que desejam se aprofundar mais em programação em shell script, é fortemente recomendada uma visita ao site do sed ( http://sed.sourceforge.net ), e também de sua página de manual.

PHP – Sintaxe

Esta é uma pequena dica que é muito útil no desenvolvimento de aplicações em PHP, onde poderá ser  feita a checagem da sintaxe, seguiremos os passos a seguir:
$ php5 -l teste.php
Para que funcione corretamente é necessário o pacote php5-cli instalado, o que é bem simples:
# apt-get install php5-cli

Para maiores opções em linha de comando, utilize:

$ php5 --help

PostgreSQL – Backup

Neste artigo, serão demonstrados alguns exemplos de backup e restore de um banco de dados Postgrepsql, abaixo seguem os passos:

Efetuando backup de toda a base de dados

usuario@host:~$ pg_dump > base.dump

Efetuando backup de uma tabela específica

usuario@host:~$ pg_dump -t > base_tabela.dump

Efetuando restore de uma base de dados inteira

usuario@host:~$ psql -e < base.dump

Efetuando restore de uma tabela específica

usuario@host:~$ psql -e < base_tabela.dump