[REVISÃO em 12-05-2012]
Aumentando a área de Swap sem ter que reinstalar o Red Hat – Instalação do oracle 11G R2

Completando uma sequencia de 7 artigos, mostrando configurações de serviços e de softwares no Red Hat, hoje vou publicar a solução que encontrei para aumentar a área de swap sem ter que reinstalar o OS.
Esta sequencia de artigos se deu ao fato da migraçao de ambiente que estou acompanhando aqui na empresa onde trabalho.

Um outro problema que você poderá ter na etapa 18 da instalaçao o oracle é a área Swap que deve ter no minimo 16 GB, ao contrário você terá um erro como a imagem abaixo.

Bom vamos ao que interessa, Como resolver ??

(Geralmente configuramos área de swap equivalente a metade de memória que temos no servidor)

No meu caso o servidor tem 32 GB e minha área de swap tinha 15.62 GB e era necessário 16 GB para instalação do oracle, então precisei especificar em 400 MB no shell para chegarmos nos 16GB.
1024*16 (16384 MB)

Vamos verificar o tamanho do swap

No terminal digite

1
# free

Depois verificamos quanto de espaço físico temos em disco para poder aumentar na memória swap.

1
# df -hT

Em seguida iremos criar um diretório no raíz com o nome de swap:

1
# mkdir /swap

Agora criaremos a swap propriamente dita:

1
# cd /swap

no meu caso ja tinha 15.62 GB de swap, então precisei adicionar 400 MB

1
# dd if=/dev/zero of=/swap/swapfile bs=1024 count=400000

Leva alguns minutos para concluir, espere aparecer a mensagem abaixo.

400000+0 records in
400000+0 records out

É recomendado mudar a permissão do arquivo

#chmod 600 /swap/swapfile

1
# mkswap /swap/swapfile

Setting up swapspace version 1, size = 509595904 bytes

1
# swapon /swap/swapfile

Pronto, agora veja o resultado.

1
# free


Vamos adicionar agora a nova entrada no FSTAB para montar no boot. Edite o arquivo /etc/fstab e adicionando a seguinte linha:

/swap/swapfile swap swap defaults 0 0

Salve e saia do FSTAB.

Pronto esta feito , você acabou de aumentar sua SWAP.

Se quizer voltar ao tamanho original , delete o arquivo que esta em /swap e tire a linha do /etc/fstab.

post original: http://jf.eti.br/howto-aumentando-a-area-de-swap-sem-ter-que-reinstalar/

Habilitando ambiente X na inicialização do Red Hat 6.2

Como habilitar o ambiente X na inicialização do Red Hat sem ter que digitar toda vez o comando startx ?

Você deverá ter instalado o gnome, kde ou xdm.

Para habilitar precisamos editar o arquivo

1
#vi /etc/inittab
1
id:3:initdefault:

Substituindo o numero 3 por 5

1
id:5:initdefault:

Salve a alteração e reinicie o sistema para ver o resultado.

Não é recomendado habilitar a interfaze gráfica, para evitar possiveis falhas no carregamento do OS e por questões de segurança.

Instalando e Configurando o VNC no Red Hat 6.2

A instalação e configuração do VNC no Red Hat 6.2 é bem rapida e simples, basta rodar alguns comandos e configurar alguns arquivos.
-Lembrando que é necessário instalar antes a interface gráfica.

Para instalar VNC (tiger vnc) digite no terminal o comando abaixo.

1
2
3
yum install vnc vncserver -y
 
CentOS 7
sudo yum -y install tigervnc-server

vncpasswd

Agora usando o editor vi ou outro de sua preferencia vamos editar o arquivo vncservers

1
# vi /etc/sysconfig/vncservers
1
2
3
4
5
6
7
8
#Identificação da seção (2) seguido do nome de usuário
VNCSERVERS="2:root
#resolução da conexão do usuário root
VNCSERVERARGS[2]="-geometry 1024x768"
#Identificação da seção (3) seguido do nome de usuário
VNCSERVERS="3:fabiano"
#resolução da conexão do usuário fabiano
VNCSERVERARGS[3]="-geometry 1024x768"

Agora vamos configurar para o serviço iniciar junto com o OS

1
# chkconfig vncserver on

inicie o serviço

1
# service vncserver start

Vamos criar o arquivo de configuração dos usuários

no terminal digite

1
# vncserver

Este comando cria o arquivo xstartup para cada usuário
neste exemplo será criado para o usuário root e fabiano

1
2
3
/root/.vnc/xstartup
 
/home/fabiano/.vnc/xstartup

Vamos configurar a senha, no terminal digite:

1
2
3
# vncpasswd
digite uma senha de até 6 caracters para o usuário no qual esta conectado.
Confirme a senha.

Se voce tentar conectar agora pelo VNC verá uma tela cinza, pois o gerenciador do VNC default é o TWM um gerenciador com poucos recursos.

Vamos editar o arquivo xstartup e configirar a interface gráfica que você tem instalada: gnome-session, startkde, wmaker, etc.

1
# vi /root/.vnc/xstartup

Na ultima linha você deve configurar conforme o ambiente grafico que foi instalado, neste exemplo estou usando o gnome-session

1
gnome-session &

Veja como vai ficar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh
 
[ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
export LANG
export SYSFONT
vncconfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  exec /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  exec sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &

reinicie o serviço

1
service vncserver restart

Não esqueça de liberar a porta 5900 no firewall (IPTABLES)

Pronto agora é so testar sua conexão usando o VNCVIEW

Coloque o endereço IP do servidor seguido de dois pontos e ID da seção.

até a próxima.

Antes de desligar seu servidor é necessário parar o serviço do oracle pois quando você religar o servidor o serviço não vai subir automaticamente.

mão na massa!

Na console do linux faça o seguinte

1
sqlplus / as sysdba
1
shutdown immediate

Depois disso de exit e digite

1
#lsnrctl stop

Agora é só desligar o servidor as duas formas mais comuns são:

1
2
3
4
5
#/sbin/shutdown -h now
e
#/sbin/shutdown -r now
 
a opção -h suspende a máquina, e a opção -r reinicializa.

Liberar acesso remoto no MySQL

O Padrão da instalação do MySQL é configurado apenas o acesso local.
Para habilitar o acesso remoto, use o comando abaixo que irá permitir o acesso remoto, em tudo no banco de dados com o usuário root de qualquer máquina remota,

1
2
 
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'senha'
mysql_permissao_acesso_remoto

mysql_permissao_acesso_remoto

Caso precise liberar o firewall, digite o comando abaixo no console.

1
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Agora é só conectar.

Tendo a necessidade para um maior controle das ligações que são feitas e dividir os custos por setor da empresa, iremos integrar o LOG que o software remora cria a cada ligação que é feita.
O PABX intelbras permite controlar as ligações atráves de usuário e senha, os usuário vão de 00 a 99, o pabx está conectado no servidor atraves da porta serial.
O remora gera 2 tipos de LOG, sendo um por ramal onde originou as ligações e outro por codigo de usuário que fez as ligações. Este logs ficam dentro na pasta(INTEGRA) onde o remora foi instalado.

Esta integração será feita usando um script PHP que ficara como uma tarefa agendada(CRON), para ser executada 2 vezes por dia, as 12h e 24h.

arquivos de log
Por código sendo os 2 ultimos caracteres no nome do arquivo o codigo de usuário.
CODIGO00.TXT, CODIGO01.TXT, CODIGO02.TXT, CODIGO03.TXT, CODIGO04.TXT…

CONTEUDO DO ARQUIVO CODIGO00.TXT

1
2
3
4
Hora     T OP TR RRRRR NNNNNNNNNNNNNNNNNNNN HH:MM:SS HH:MM:SS DD/MM/AAAA CL 99999,99 CP DDDDDDDDDDDDDDDDDDDDDDDDD
15:55:43 S 12 32   304 99999999             15:36:35 00:00:18 20/10/2011  5     0,28 00 CELULAR DDD 016
15:55:45 S 12 04   304 99999999             15:37:24 00:00:14 20/10/2011  7     0,13 00 FRANCA
16:00:06 S 12 31   304 99999999             15:59:41 00:00:23 20/10/2011  5     0,00 00 Fabiano celular

CONTEUDO DO ARQUIVO RMO00300.TXT
Por ramal sendo os 5 ultimos caracteres no nome do arquivo o numero do ramal.
RMO00300.TXT

1
2
3
03   300 99999999         10:30:54 00:00:07 20110627         0,15 12
32   300 99999999         10:41:51 00:02:46 20110627         2,10 12
01   300 99999999         10:50:51 00:00:07 20110627         0,15 12

Obs.: não esqueça de configurar o PHP para conectar ao oracle

Caso seu servidor web esteja em um ambiente separado do servidor com o remora instalado, você poderá criar scripts em shell para transferir os arquivos ou compartilhar a pasta, enfim faça da maneira que irá te atender.

Vamos ao que interessa;
O codigo está comentado, por isso não vou explicar passo a passo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
set_time_limit(0); //definiar tempo para execução do script caso o arquivo tenha muitas linhas
ob_start();
 
require_once('conecta_oracle.php');
//configure conforme o seu ambiente.
// "\ip_servidorpasta_compartilhadaarquivos do LOG"
$diretorio_data = "C:\intranet\www\data_txt\";
 
//listar arquivos do diretorio.
$$dir = @opendir($diretorio_data);
$i=0;
while (false !== ($file = readdir($$dir))) {// while pastas
	if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != $dir) { // if pastas
		$i++;
		$indice[$i] = "$file";
		$nm_arquivo 	= $indice[$i] = "$file";
		$tipo		= substr($indice[$i], 0, 6);
		$codigo_ramal	= substr($indice[$i], 6, 2);
 
 
// recebe parametros
	if($tipo == 'CODIGO'){
		//imprimi o nome do arquivo
		echo $nm_arquivo;
		echo ' -- '.$i.'<br />';
 
		$arquivo = $diretorio_data.$nm_arquivo;
 
			if (file_exists($arquivo)) {
 
			$ponteiro = fopen ("$arquivo", "r");
 
			$num_linhas = 0;
			$caracteres = 0;
 
				while (!feof ($ponteiro)) {
					if ($linha = fgets($ponteiro, 4096)){
						$num_linhas++;
						$caracteres += strlen($linha);
 
						if ($num_linhas != "1"){ // ignorar a primeira linha do arquivo cabeçalho.
							$DATA_IMPORTACAO = date('d/m/Y');//;
							$DS_USUARIO = 'import';
							$CD_PABX = $codigo_ramal;
 
							$HR_LEITURA			= substr($linha, 0, 9);
							$DS_TIPO			= substr($linha, 9, 1);
							$DS_OP 				= substr($linha, 11, 2);
							$DS_TR 				= substr($linha, 14, 2);
							$NR_RAMAL 			= substr($linha, 17, 5);
							$NR_LIGACAO 		= substr($linha, 23, 20);
							$HR_LIGACAO			= substr($linha, 44, 8);
							$DS_DURACAO 		= substr($linha, 53, 8);
							$DT_LIGACAO			= substr($linha, 62, 10);
							$DS_CL 				= substr($linha, 73, 2);
							$VL_LIGACAO			= substr($linha, 76, 8);
							$DS_CP 				= substr($linha, 85, 2);
							$DS_DESTINO 		= substr($linha, 88, 25);
 
							$consulta = "INSERT INTO hak_pabx_registro_codigo_tb (
							NR_SEQUENCIA, DATA_IMPORTACAO, DS_USUARIO, CD_PABX, HR_LEITURA, DS_TIPO, DS_OP, DS_TR,
							NR_RAMAL, NR_LIGACAO, HR_LIGACAO, DS_DURACAO, DT_LIGACAO, DS_CL, VL_LIGACAO, DS_CP, DS_DESTINO
							)
							VALUES (
							HAK_TELEFONIA_SEQ.Nextval, '$DATA_IMPORTACAO', '$DS_USUARIO', '$CD_PABX', '$HR_LEITURA', '$DS_TIPO', '$DS_OP', '$DS_TR',
							'$NR_RAMAL', '$NR_LIGACAO',	'$HR_LIGACAO', '$DS_DURACAO', '$DT_LIGACAO', '$DS_CL', '$VL_LIGACAO', '$DS_CP', '$DS_DESTINO'
							)";
 
								$stid = oci_parse( $conexao, "".$consulta."" ) or die ( " erro " . oci_error() );
 
								oci_execute ( $stid );
									//$exec = oci_execute( $stid , OCI_DEFAULT);
								oci_commit( $conexao );  // commits all new values: 1, 2, 3, 4, 5
 
						}//if ignora primeira linha
					}//if
				}//while
				echo 'total de importações: ' . $num_linhas_total  = $num_linhas_total + $num_linhas;
				fclose ($ponteiro);//FECHA O PONTEIRO DO ARQUIVO
				// você poderá apagar o arquivo para não importar o mesmo arquivo 2 vezes, ou renomear
//unlink("$arquivo");
				//rename($arquivo, "importado".$arquivo."000");//
			}//exists
			else { // FILE EXISTS
				echo "O arquivo $arquivo não FOI FOI ENCONTRADO";
				}
	}//tipo
 
	}
} // fecha while
 
oci_free_statement($stid);
oci_close($conexao);//fecha a conexão atual

Read More →

Bom pessoal, o objetivo desse tutorial é ensinar a vocês como enviar SMS atraves de um script PHP usando um modem, ou seu aparelho de celular.

Neste tuto estou usando o programa de gateway OZEKI NG, que pode ser baixado e usado por 30 dias grátis.

Eu andei pesquisando e não encontrei muita coisa sobre o assunto, porém existem várias empresas que oferecem o serviço gateway de SMS e cobram cerca de 0,20 por mensagem enviada.

As operadoras de telefonia movel cobram R$ 0,50 centavos por dia, para você enviar ilimitadas mensagens resumindo você gastaria apenas R$ 15,00 por mês para enviar ilimitados SMS.
Para começar baixe o programa no site: Ozekisms
http://www.ozekisms.com/index.php?owpn=112
http://www.ozekisms.com/index.php?owpn=433&dpath=%2Fattachments%2F113%2Finstall_1327415285_OzekiNG-SMS-Gateway_4.2.5.zip&dname=Ozeki+NG+SMS+Gateway+v4.2.5&dsize=+%289.3+MB%29+

Em seguida instale o programa(não vou entrar em detalhes da instalação) pois é bem simples além de ter uma opção para detectar automaticamente seu dispositivo e a porta(ex. das portas COM1, COM2, COM3, COM4).

Após instalado você poderá acessar o gateway para fazer as configurações.
http://127.0.0.1:9501/

Você pode se certificar em qual porta seu dispositivo esta atraves do gerenciador de dispositivos do windows.

Apos configurado aguarde alguns minutos para o programa reconhecer o dispositivo e enviar as mensagens.

O proximo passo é criar um formulário e o script php que enviára as informações para o gateway.

Read More →

Oracle/PLSQL: Criando Sequence (CREATE SEQUENCE)

Uma sequence é um gerador de numeros sequenciais, e pode ser parametrizada conforme sua necessidade.

Comando para criar a sequence
Sintaxe

create sequence TESTE_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
nocache
cycle;

minvalue = Valor minimo
max value = valor máximo que poderá chegar
start with = valor inicial
increment by 1 = (incremento), se este valor for 2, a sequence será incrementada como; 1,3,5,7,…
CYCLE = Sequencia será recomeçada ao atingir o valor maximo
NO CYCLE = default
OWNED BY table.col = Associa a uma coluna
OWNED BY NONE = sem associação

para testar a sequence

Read More →

Cria um arquivo com o nome teste.bat e coloque o codigo abaixo.

WINDOWS – teste.bat

1
2
md pasta_teste
exit

LINUX – teste.sh

1
2
mkdir /var/www/html
exit

O SCRIPT PHP

1
2
3
4
5
//WINDOWS
exec ('C:intranetwwwscriptsteste.bat');
 
//LINUX
exec('/home/teste/teste.sh');

Não esqueça de atribiur as permissões de leitura, escrita e execução para o script.(777)