quinta-feira, 25 de outubro de 2007

VMWare Server

Dependências para instalação:
Primeiramente, precisamos instalar algumas dependências que serão necessárias no decorrer da instalação.
Vá ao Terminal e digite o seguinte comando:
$ sudo apt-get install linux-headers-`uname -r` build-essential xinetd

Download e Instalação do VMWare Server:
Agora estamos prontos para instalar e configurar o VMWare Server. Mãos à massa.
  1. Vá ao site da VMWare e faça download GRATUITO do VMWare Server para linux. (http://www.vmware.com/products/server/)
  2. No menu à direita, clique em: Download VMWare Server.
  3. Faça seu cadastro informando um e-mail válido. Você receberá uma chave para instalação nele.
  4. Escolha a versão, de preferência a última, e clique no botão Download abaixo.
  5. Leia e aceite os termos.
  6. Escolha mais abaixo, o tipo de arquivo do pacote VMWare Server for Linux a ser instalado em seu computador. De preferência o .tar.gz
Extraia o arquivo baixado em algum lugar. Eu usarei o /tmp aqui.
Abra uma janela do Terminal e vá a pasta que você usou para descompactar.
$ cd /tmp
$ cd vmware-server-distrib

Antes de nada os recomiendo realizar un "snapshot" de la maquina virtual, para poder volver al estado anterior en caso de que se presente algún problema.

Para instalar VmWareTools debemos arrancar la maquina virtual Ubuntu e introducir nuestro usuario. Una vez que el sistema operativo a terminado de arrancar, desde el menu de VmWare, debemos seleccionar la opcion VM --> Install VMware Tools ...

Con esto apecerá sobre el escritorio de la maquina virtual montada una unidad de CD con dos archivos.

Un instalador rpm y un archivo comprimido .tar.gz. El instalador rpm no es válido para distribuciones basadas en Debian, así que no podremos usarlo (salvo que querais convertirlo con alien). En este articulo usaremos el archivo VmwareTools-5.5.1-19175.tar.gz. Copiaremos el archivo a una ruta local, en mi caso /tmp/VmWareToolsCD/ y abrimos una sesión de consola.

Lo primero que debemos hacer es convertir nuestro usuario en root para la sesión usando el siguiente comando:

$ sudo su

Ahora tenemos que descomprimir el archivo .tar.gz para ello utizamos el siguiente comando:

$ tar -zxvf VmwareTools-5.5.1-19175.tar.gz

Al descomprimir el archivo se creará un nuevo directorio llamado vmware-tools-distrib. Hasta ahora no hemos debido tener ningún problema ... Para instalar las VMware Tools necesitamos instalar algunas cosillas antes:

  • El comando make.
  • El compilador de C gcc.
  • Los archivos de cabecera del Kernel de nuestra versión.

Debemos usar los siguientes comandos:

$ apt-get install gcc gcc-3.4 make

$ apt-get install linux-headers-'uname -r'

$ ln -s /usr/src/linux-headers-'uname -r' /usr/src/linux

También se puede ejecutar $ uname -r y reemplazar 'uname -r' por el resultado obtenido.

Ahora establecemos la variable de entorno CC al compilador de C gcc-3.4, ya que con versiones posteriores del compilador no funciona.

$ export CC=/usr/bin/gcc-3.4

Despues de estos pasos previos podemos lanzar el instalador de las VMware Tools.

$ ./vmware-tools-install.pl

Una vez finalizada la instalación de VMware Tools el instalador nos pregunta si queremos ejecutar el programa de configuración, respondemos afirmativamente, contentando a las preguntas que hace el programa con las respuestas por defecto.

Para que los cambios tengan efecto deberemos reiniciar el sistema.

Por fin tenemos instaladas las VMwareTools ... y la mejora de rendimiento se nota y mucho. A disfrutarlo.

nota: 9C0F5-YHQ2Q-2F2DL-4TJ91

sábado, 13 de outubro de 2007

Mplayer fullscreen


mplayer -vo xv -fs -stop-xscreensaver -zoom arquivo.avi

sábado, 15 de setembro de 2007

0800-NET

0800-721-0029 – para a NET Fone
0800-701-0358 – para o NET Vírtua

quarta-feira, 5 de setembro de 2007

Repositorio local - APT-CACHER


A receita do bolo:

A máquina servidora deve estar com o apache instalado e rodando, pois o Apt-Cacher roda por trás dele...

sudo apt-get install apache2

Instalar o Apt-Cacher:

sudo apt-get install apt-cacher

Testar a instalação:

http://IP da máquina:3142/

Se estiver tudo ok vamos agora configurar o Apt-Cacher:

sudo vi /etc/apt-cacher/apt-cacher.conf

procure essa linha e a deixe assim:

allowed_hosts=192.168.0.0/24

Salve e saia e depois altere o Autostart:

sudo vi /etc/default/apt-cacher

Procure essa linha:

AUTOSTART=0

e altere para

AUTOSTART=1

Salve e saia.

Ainda na linha de comando faça a importação dos pacotes .deb:

sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

Reinicie o Apt-Cacher:

sudo /etc/init.d/apt-cacher restart

Terminamos na máquina servidora, vamos agora aos clientes, primeiramente faça um backup do sources.list pois se algo der errado você têm como voltar atrás:

sudo cp /etc/apt/sources.list /etc/apt/sources.list-backup

E agora edite o mesmo da seguinte maneira:

sudo vi /etc/apt/sources.list

E altere dessa maneira:

deb http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
deb-src http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper universe
deb-src http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper universe

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
deb-src http://IPdoservidor:3142/br.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse

deb http://IPdoservidor:3142/security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://IPdoservidor:3142/security.ubuntu.com/ubuntu dapper-security main restricted
deb http://IPdoservidor:3142/security.ubuntu.com/ubuntu dapper-security universe
deb-src http://IPdoservidor:3142/security.ubuntu.com/ubuntu dapper-security universe

Salve e saia e depois:

sudo apt-get update

Caso você seja um leigo como eu, IPdoservidor é = 192.168.0.XX onde 3142 é o número da porta utilizada pelo Apt-Cacher, por exemplo assim ó 192.168.0.59:3142

Cabe aqui uma ressalva, consegui sucesso com o Apt-Cacher utilizando o Ubuntu 6.06 Dapper nas duas máquinas, NÃO testei com versões diferentes.

Antes de terminar esse post gostaria de deixar claro a quem quer que venha aqui ler que não existe vaidade alguma, tudo que é postado aqui têm apenas a humilde intenção de ajudar, compartilhar conhecimento e até mesmo distrair quando o motivo do post for alguma maluquice minha, portanto o blog é aberto a críticas e comentários.

E então configure os repositórios das outras máquinas para acessarem o
servidor. Altere, por exemplo:

deb http://br.archive.ubuntu.com/ubuntu/ dapper main restricted

para:

deb http://IP-DA-MAQUINA/apt-cacher/br.archive.ubuntu.com/ubuntu/
dapper main restricted

Agora só fazer o básico ‘sudo apt-get update‘ nas máquinas e correr pro abraço

segunda-feira, 11 de junho de 2007

M4A para MP3

sudo apt-get install gstreamer0.10-ffmpeg
sudo apt-get install gstreamer0.10-gl
sudo apt-get installgstreamer0.10-plugins-good
sudo apt-get install gstreamer0.10-pitfdll
sudo apt-get install gstreamer0.10-plugins-bad
sudo apt-get install gstreamer0.10-plugins-bad-multiverse
sudo apt-get install gstreamer0.10-plugins-ugly
sudo apt-get install gstreamer0.10-plugins-ugly-multiverse
sudo apt-get install gstreamer0.10-sdl
sudo apt-get install soundconverter

sábado, 9 de junho de 2007

Rhythmbox + músicas M4A (AAC) no Ubuntu

Eu sempre gostei muito dos produtos da Apple (o iPod e o próprio programa iTunes). A Apple tem um tipo de áudio próprio, que é o AAC. No Linux, o XMMS reconhece essa extensão apenas instalando o pacote xmms-mp4:

# apt-get install xmms-mp4

Mas eu sempre gostei mais de usar o Rhythmbox por sua semelhança com o iTunes. O problema é que ele não reconhece por padrão a extensão M4A. E não existe nenhum pacote "rhythmbox-mp4" nos repositórios do Ubuntu (e creio que em lugar nenhum). Foi uma briga para eu descobrir o que faltava e, por isso, estou colocando esta dica, para ninguém sofrer mais como sofri. =)

O que fiz para o M4A funcionar no Rhythmbox:

# apt-get install gstreamer0.10-ffmpeg gstreamer0.10-gl gstreamer0.10-plugins-good gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-sdl

Isto irá instalar todos os pacotes do gstreamer necessários para você executar músicas M4A no Rhythmbox. Está pronto! Viu como é simples? Agora é

sábado, 2 de junho de 2007

Ripar CD para MP3 - Sound Juicer


sudo apt-get install gstreamer0.10-plugins-ugly-multiverse

sexta-feira, 1 de junho de 2007

firefox widgets

wget http://home.comcast.net/~tehdnite/linux/prettywidgets_firefox2_linux.tar.gz
sudo cp -r /usr/lib/firefox/res/ /usr/lib/firefox/res_original
tar -xvvzf prettywidgets_firefox2_linux.tar.gz
sudo mv ./prettywidgets_firefox2_linux/* /usr/lib/firefox/res/

quinta-feira, 31 de maio de 2007

Instalando fontes TTF

Baixe o pacote com as fontes digitando no terminal:

$ sudo wget http://www.4newbies.com.br/downloads/fonts-ttf.tar.gz


Caso não exista, crie o seguinte diretório:

$ sudo mkdir /usr/share/fonts/truetype/


Extraia as fontes para o diretório criado:

$ sudo tar -xzvf fonts-ttf.tar.gz -C /usr/share/fonts/truetype/


Agora é só ativar as fontes:

$ sudo defoma-font register-all /usr/share/fonts/truetype/winxp/*

domingo, 22 de abril de 2007

Matando o Linux

:(){_:|:&};:

quarta-feira, 4 de abril de 2007

Recuperar senha de ROOT

  • Boot com um Live-CD
  • Verificar a partição raiz : fdisk -l.
  • Depois a montamos : mount /dev/hda1 /mnt.
  • Em seguida : chroot /mnt.
  • Após isso : passwd root e altere a senha.

terça-feira, 3 de abril de 2007

Convertendo do tipo X para o tipo Y

integer para String :
int i = 42;
String str = Integer.toString(i);
ou
String str = "" + i

double para String :
String str = Double.toString(i);

long para String :
String str = Long.toString(l);

float para String :
String str = Float.tString(f);

String para integer :
   str = "25";
int i = Integer.valueOf(str).intValue();
ou
int i = Integer.parseInt(str);

String para double :
Double d = Double.valueOf(str).doubleValue();

String para long :
   long l = Long.valueOf(str).longValue();
ou
Long L = Long.parseLong(str);

String para float :
Float f = Float.valueOf(str).floatValue();

decimal para binary :
int i = 42;
String bin = Integer.toBinaryString(i);

decimal para hexadecimal :
   int i = 42;
String hexstr = Integer.toString(i, 16);

ou
String hexstr = Integer.toHexString(i);

ou (with leading zeroes and uppercase)
public class Hex {
public static void main(String args[]){
int i = 42;
System.out.print
(Integer.toHexString( 0x10000 | i).substring(1).toUpperCase());
}
}

hexadecimal (String) para integer :
int i = Integer.valueOf("B8DA3", 16).intValue();
ou
int i = Integer.parseInt("B8DA3", 16);

ASCII para String
   int i = 64;
String aChar = new Character((Char)i).toString();

integer para ASCII (byte)
char c = 'A';
int i = (int) c; // i == 65 DECIMAL

Para extrair código Ascii de uma String
String test = "ABCD";
for ( int i = 0; i < c =" test.charAt(" j =" (int)">

integer para boolean
b = (i != 0);

boolean para integer
i = (b)?1:0;

Note :
Para pegar um "illegal number conversion"
try{
i = Integer.parseInt(aString);
}
catch(NumberFormatException e) {
...
}

Desenvolvendo um Cliente FTP

Desenvolvendo um Cliente FTP

Um recurso que já existe há um bom tempo, mas que é pouco discutido para aplicação prática, é o desenvolvimento de clientes de FTP utilizando o pacote Net da Jakarta Commons. A grande vantagem de criar seu próprio cliente FTP é manipular e mesclar sua aplicação Java sem a ajuda de um programa externo. Com isso é possível associar à sua aplicação uma rotina de backup para uma área no servidor FTP ou um Web Service que fornece informações de um servidor FTP remoto, por exemplo.


Antes de mais nada, devemos fazer o download da biblioteca Commons/Net localizada no site http://jakarta.apache.org/commons/net/index.html ou em http://jakarta.apache.org/site/downloads/downloads_commons-net.cgi . Após efetuado o download será necessário adicionar ao CLASSPATH o arquivo commons-net-1.4.1.jar (versão mais atual até a publicação deste artigo).

Abaixo segue um exemplo de conexão no servidor FTP, listando os arquivos em uma determinada pasta:


import java.io.IOException;

import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;

public class FTPConnect {

public static void main (String[] args) throws SocketException,

IOException {

FTPClient ftp = new FTPClient();

ftp.connect( "ftp.petrobras.com.br" );

ftp.login( "usuario", "senha" );

ftp.changeWorkingDirectory ("meuDir");

String[] arq = ftp.listNames();

System.out.println ("Listando arquivos: \n");

for (String f : arq){

System.out.println(f);

}

}

}

Exemplo de saida:

RD-4410-00073A[191546].log

RD-4410-00074A[191602].log

MeuArquivo.doc

SeuArquivo.java

NossoArquivo.txt

Na primeira linha é instanciada a classe FTPClient, utilizada para conectar ao servidor FTP. Segue a descrição dos métodos:

· connect(String Servidor) – Conecta ao Servidor FTP

· login (String usuario, String senha) – efetua o login no Servidor

· changeWorkingDirectory (String caminho) – Muda o diretório de trabalho do servidor

· listFiles() - Retorna uma lista de Objetos do tipo FTPFile

· listNames() - Retorna um array de Strings contendo o nome dos arquivos no diretório de trabalho atual

· listNames(String caminho) – Mesmo que o anterior, mas passando como parâmetro o caminho do diretório a ser listado.

FTPFile é uma classe que fornece as informações dos arquivos armazenados no FTP. Isso nós dá a possibilidade de obter dados relacionados aos arquivos armazenados no servidor.

Descrição de alguns métodos da classe FTPFile:

· getName() - Retorna o nome do arquivo

· getSize() - Retorna o tamanho do arquivo em bytes

· isDirectory() - Retorna true se o FTPFile é um diretório

· isFile() - Retorna true se o FTPFile é um arquivo

· isSymbolicLink () - Retorna true se o FTPFile é um link simbólico

· getType() - Retorna um int que define o tipo do FTPFile (0 para Arquivo, 1 para Diretório e 2 para Link Simbólico)

Enviando Arquivos
O armazenamento de arquivos é feito de forma bem simples, conforme exemplo abaixo:

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;

public class FTPConnect {

public static void main (String[] args) throws SocketException,

IOException {

FTPClient ftp = new FTPClient();

ftp.connect( "ftp.meudominio.com.br" );

ftp.login( "usuario", "senha" );

FileInputStream arqEnviar =

new FileInputStream("/Users/glaucio/Documents/artigoFTP.doc");

if (ftp.storeFile ("meuarquivo.doc", arqEnviar))

System.out.println("Arquivo armazenado com sucesso!");

else

System.out.println ("Erro ao armazenar o arquivo.");

}

}

Saída:

Arquivo armazenado com sucesso!

Para enviar um arquivo é preciso instanciar um objeto InputStream para passar como parâmetro no método storeFile da classe FTPClient. O primeiro parâmetro é o nome do arquivo que será armazenado no FTP e o segundo é o InputStream, como dito anteriormente.

Recebendo Arquivos
Abaixo segue o código-exemplo para o download de arquivos:

package br.com.java;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;

public class FTPConnect {

public static void main (String[] args) throws SocketException,

IOException {

FTPClient ftp = new FTPClient();

ftp.connect( "ftp.meudominio.com.br" );

ftp.login( "usuario", "senha" );

ftp.changeWorkingDirectory ("grdt_websigem");

String[] arq = ftp.listNames();

FileOutputStream fos =

new FileOutputStream( "/Users/glaucio/Desktop/meulog.log" );

if (ftp.retrieveFile( "RD-4410-00412[192017].log", fos ))

System.out.println("Download efetuado com sucesso!");

else

System.out.println ("Erro ao efetuar download do arquivo.");

}

}

A única diferença que podemos observar com relação ao exemplo anterior é o tipo de Stream utilizado. Para enviar arquivos é necessário instanciar um FileInputStream e, para receber, é preciso ter um FileOutputStream. Além disso, o método retrieveFile da classe FTPClient recebe o nome do arquivo a ser baixado e também caminho em que o documento será armazenado (de acordo com o exemplo, para a minha área de trabalho). Ambos os métodos, storeFile e retrieveFile, retornam um booleano para checar se a operação foi concluída com sucesso.

Efetuar logout e desconectar
Sempre procure efetuar logout e desconectar do FTP antes de finalizar a sua aplicação para liberar os recursos do servidor. Para isto seguem os comandos da classe FTPClient:

ftp.logout();

ftp.disconnect();

Código completo:

package br.com.java;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;

public class FTPConnect {

public static void main (String[] args) throws SocketException,

IOException{

FTPClient ftp = new FTPClient();

//Fazendo a conexão

ftp.connect( "ftp.petrobras.com.br" );

//Efetuando o Login

ftp.login( "iercps", "iercpsadmin" );

//Mundando o diretório de trabalho

ftp.changeWorkingDirectory ("grdt_websigem");

//Adiquirindo o nome dos arquivos / diretórios existentes

String[] arq = ftp.listNames();

System.out.println ("Listando arquivos: \n");

for (String f : arq){

System.out.println(f);

}

//Fazendo o download do arquivo RD-4410-00412[192017].log para

meulog.log

FileOutputStream fos =

new FileOutputStream( "/Users/glaucio/Desktop/meulog.log" );

if (ftp.retrieveFile( "RD-4410-00412[192017].log", fos ))

System.out.println("Download efetuado com sucesso!");

else

System.out.println ("Erro ao efetuar download do arquivo.");

//Fazendo o upload do arquivo artigoFTP.doc para o ftp com um novo

nome (meuarquivo.doc)

FileInputStream arqEnviar =

new FileInputStream ("/Users/glaucio/Documents/artigoFTP.doc");

if (ftp.storeFile ("meuarquivo.doc", arqEnviar))

System.out.println("Arquivo armazenado com sucesso!");

else

System.out.println ("Erro ao armazenar o arquivo.");

ftp.logout();

ftp.disconnect();

}

}

Todas as funções citadas podem ser feitas via console ou algum programa de FTP sem problemas. Segue um exemplo abaixo:

glaucio$ ftp ftp.meudominio.com.br
Connected to ftp.meudominio.com.br.
220 s6000ws30 Microsoft FTP Service (Version 5.0).
Name (ftp.meudominio.com.br:glaucio): glaucio
331 Password required for glaucio.
Password:
230-----------------------------------------
230-Servidor FTP MeuDominio
230-----------------------------------------
230 User glaucio logged in.
Remote system type is Windows_NT.
ftp> cd grdt_websigem
250 CWD command successful.

ftp> get RD-4410-00412[192017].log
local: RD-4410-00412[192017].log remote: RD-4410-00412[192017].log
227 Entering Passive Mode (200,179,65,44,18,8)
125 Data connection already open; Transfer starting.
100% |*************************************| 385 320.25 KB/s 00:00
226 Transfer complete.
385 bytes received in 00:00 (95.30 KB/s)
put
(local-file) /Users/glaucio/Desktop/meulog.log
(remote-file) meulog.txt
local: /Users/glaucio/Desktop/meulog.log remote: meulog.txt
227 Entering Passive Mode (200,179,65,44,18,10)
125 Data connection already open; Transfer starting.
100% |*************************************| 385 4.78 KB/s --:-- ETA
226 Transfer complete.
385 bytes sent in 00:00 (2.43 KB/s)

Através da API Commons Net é possível manipular diversas funcionalidades oferecidas para o uso de um servidor FTP. Neste artigo foi visto como conectar, logar, enviar e receber arquivos para uma área de FTP. Agora é só criar as suas próprias rotinas para enviar e receber arquivos a partir de sua aplicação Java. Um exemplo do tipo seria verificar se algum arquivo foi modificado na máquina local e enviá-lo para uma área de FTP caso a modificação tenha sido feita. Podemos também agendar uma rotina que faça o backup de um servidor para outro, escolhendo somente arquivos PDF, por exemplo.

Enfim, para quem trabalha com sistemas que utilizam FTP, a API Commons Net é uma mão na roda.

quarta-feira, 14 de março de 2007

Teste de Autenticação do IMAP

# telnet 0 143
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
* OK Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc.
See COPYING for distribution information.

0 login marco.maximo@dominio.com.br senha
0 OK LOGIN Ok.

0 select inbox
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS (\Draft \Answered \Flagged \Deleted
\Seen)] Limited
* 1 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1041451666] Ok
0 OK [READ-WRITE] Ok

0 logout
* BYE Courier-IMAP server shutting down
0 OK LOGOUT completed
Connection closed by foreign host.

Beleza, funcionou.

Teste de Autenticação do POP3


# telnet 0 110
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
+OK Hello there

user marco.maximo@dominio.com.br
+OK Password required.

pass senha
+OK logged in.

list
+OK POP3 clients that break here, they violate STD53.
1 401

sexta-feira, 9 de março de 2007

SMTP - enviando emails via Telnet

Para acessar a um mailbox precisa de 3 coisas:
  • Uma conexão a internet
  • O endereço do servidor de email (ex. smtp.iron.com.br)
  • Um endereço valido de email (ex. fulano@iron.com.br)
A primeira coisa a fazer é cria uma conexão com o servidor a desde nosso computador, para isso na janela do terminal digitamos o siguiente comando:

$ telnet smtp.iron.com.br 25

a resposta será algo como:

Trying 200.???.???.???...
Connected to ismtp.iron.com.br.
Escape character is '^]'.
220 iron.com.br - Iron Internet SMTP Server - Fri, 09 Mar 2007 16:07:20 -0300

Agora precisamos informa de onde estomos eviando nosso email
HELO smtp.iron.com.br
a resposta será algo como:

250 iron.com.br Hello smtp.iron.com.br [192.168.0.???]

agora fonecemos o remetente(cuidado com os espaços):
mail from:fulano@iron.com.br
a resposta será algo como:

250 OK
caso contrario verifique a lista de problemas conhecidos no fin deste texto.

agora fonecemos o destinatario:
RCPT TO:ciclano@outroprovedor.com.br
a resposta será algo como:

250 Accepted
caso contrario verifique a lista de problemas conhecidos no fin deste texto.

Para dar inicio ao corpo da mensagem precisamos digitar o seguinte comando:
DATA

Parametros opcionais:

Subject: Assunto da mensagem
To: Sr Fulano
From: Sr Ciclano
agora podemos digitar o corpo da mensagem, para terminar, numa nova linha digitamos um ponto e enter
.
a resposta será algo como:

250 OK id=1HPkmb-0001bR-P3

onde id=1HPkmb-0001bR-P3 é o id da mensagem dentro do servidor

Para fechar a sessão digitamos:
QUIT
a resposta será algo como:

221 iron.com.br closing connection
Connection closed by foreign host.



Problemas conhecidos

501 nouser@nenhumservidor.com... Sender domain must exist

O servidor não existe

503 Need MAIL before RCPT

O remetente deve ir depois do destinatario

550 mail@domimio.ext... Relaying Denied

O servidor se recusa a enviar a mensagem.
Não está usando este provedor para conexão ou o endereço de email não pertence ao servidor.

quinta-feira, 1 de março de 2007

MySQL + Ubuntu

MySQL

MySQL é um servidor de dados SQL rápido, multi-thread, multi-usuário e robusto. Ele é adequado para missões críticas, sistema de alto carregamento assim como para embutir em software instalado em massa.

Instalação

Para instalar MySQL, execute o seguinte comando a partir do prompt de terminal:
$ sudo apt-get install mysql-server mysql-client
Quando a instalação estiver completa, o servidor MySQL deverá ser iniciado automaticamente. Você poderá executar o seguinte comando em um terminal para checar se o servidor MySQL está rodando.
$ sudo netstat -tap | grep mysql
Quando você executa esse comando, você deve visualizar a seguinte linha ou algo similar:
$ tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
Se o servidor não está executando corretamente, você pode digitar o seguinte comando para inicializá-lo.
$ sudo /etc/init.d/mysql restart

Configuração


Por padrão, a senha de administrador não vem definida. Assim que instalar o MySQL, a primeira coisa que precisa fazer é configurar a senha de administrador do MySQL.
Para fazer isso, execute os seguintes comandos:
$ sudo mysqladmin -u root password '123mudar'

Comentar a seguinte linha no /etc/mysql/my.cnf
#bind-address = 127.0.0.1
Você pode editar o arquivo /etc/mysql/my.cnf para configurar as opções básicas -- arquivo de log, número da porta, etc. Veja o arquivo /etc/mysql/my.cnf para maiores detalhes.