quinta-feira, 10 de janeiro de 2013

Instalação do Xen 4.1 no Debian Wheezy 7.0 Netinstall - Script

Neste Post você poderá instalar de forma simples o Xen 4.1 no Debian Wheezy 7.0 e desfrutar desta Incrivel ferramenta gratuita de Virtualização.  O Ambiente foi criado com 3 partições, segue abaixo:

Você tem a liberdade de montar as partições e seus tamanhos conforme sua necessidade, nós usamos o exemplo a seguir:

Hd de 1 TeraByte

Partição Raiz '/' - Tipo: EXT4 - Tamanho: 50 Gb
Partição para os Discos das DOMUs (Maquinas virtuais) - Tipo: Linux LVM - Tamanho: 938 Gb
Partição de Area de troca - Tipo SWAP - Tamanho: 12 Gb

Instalamos o Linux sem configurar a interface de rede local, selecionamos para "Não configurar agora" e prosseguimos a instalação sem rede, poderá usar essa opção conforme sua necessidade.

Para poupar recursos do sistema usamos o Xdm como gerenciador de login e o FluxBox como Gerenciador de Janelas.


Foi optado pelo uso do Virt-Manager para o Gerenciamento das maquinas virtuais, ele facilita a criação, administração e visualização da sua VM, também poderá gerenciar o seu grupo de volumes lógicos, criando volumes lógicos no momento da criação da VM, isto tudo via interface gráfica.



Após a instalação crie um arquivo "script.sh" com o conteudo Abaixo e dê permissão de execução:



#!/bin/bash

function pause(){
   read -p "$*"
}

pause 'Este Script ira instalar o Xen 4.1 no Debian Wheezy, pressione [ENTER] para continuar...'

echo 'Etapa de Configuracao das interfaces de rede LoopBack  e Eth0   '
echo -n 'Deseja configurar as interfaces de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                pause 'O sistema ira configurar a rede, pressione [ENTER] para continuar...'
                echo 'auto lo' > /etc/network/interfaces
                echo 'iface lo inet loopback' >> /etc/network/interfaces
                echo '' >> /etc/network/interfaces
                echo 'auto eth0' >> /etc/network/interfaces
                echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
fi

echo 'Serviço de rede'
echo -n 'Deseja reiniciar Servico de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo 'Reiniciando os serviços de rede...'
                /etc/init.d/networking restart
fi

echo 'Arquivos de enderecos de repositorio'
echo -n 'Deseja configurar os arquivos de endereco dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                echo 'deb http://security.debian.org/ wheezy/updates main contrib non-free' > /etc/apt/sources.list
echo 'deb-src http://security.debian.org/ wheezy/updates main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'deb-src http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'Arquivos de configuração de repositorio configurados...'
fi

echo 'Atualizacao de endereços de repositorio'
echo -n 'Deseja atualizar os enderecos dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get update
fi

echo 'Instalacao de pacotes necessarios'
echo -n 'Deseja instalar os pacotes para instalacao do Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get install xen-linux-system-3.2.0-4-amd64 xen-utils-4.1 xen-tools sudo xserver-xorg xserver-xorg-core xorg fluxbox xdm xenwatch virt-manager firmware-realtek openssh-server vim less -y
fi

echo 'Configuracao do Gestor de Inicialização GRUB'
echo -n 'Deseja configurar o Grub para o Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mv /etc/grub.d/10_linux /etc/grub.d/50_linux
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "" >> /etc/default/grub
echo "# Xen boot parameters for all Xen boots" >> /etc/default/grub
echo 'GRUB_CMDLINE_XEN="dom0_mem=1024M"' >> /etc/default/grub
update-grub2
fi

echo 'Copiar Bibliotecas do XEN para o Virt-Manager'
echo -n 'Deseja copiar as bibliotecas do Servidor Xen para o Virt-Manager ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mkdir -p /usr/lib/xen-default/
mkdir -p /usr/lib64/xen/
cp /usr/lib/xen-4.1/* -rv /usr/lib/xen-default/
cp /usr/lib/xen-4.1/* -rv /usr/lib64/xen/
fi

echo 'Configuracao do HOST Xen (DOMAIN 0)'
echo -n 'Deseja configurar os parametros necessarios no Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
sed -i 's|(enable-dom0-ballooning yes)|(enable-dom0-ballooning no)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-http-server no)|(xend-http-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-unix-server no)|(xend-unix-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|# (network-script network-bridge)|(network-script network-bridge)|g' /etc/xen/xend-config.sxp
sed -i 's|(dom0-min-mem 196)|(dom0-min-mem 1024)|g' /etc/xen/xend-config.sxp
sed -i 's|XENDOMAINS_SAVE=/var/lib/xen/save|XENDOMAINS_SAVE=""|g' /etc/default/xendomains
sed -i 's|XENDOMAINS_RESTORE=true|XENDOMAINS_RESTORE=false|g' /etc/default/xendomains
fi

echo 'Configurar a rede Bridge xenbr0'
echo -n 'Deseja Configurar a rede Bridge xenbr0 ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo '' >> /etc/network/interfaces
echo 'auto xenbr0' >> /etc/network/interfaces
echo 'iface xenbr0 inet dhcp' >> /etc/network/interfaces
echo 'bridge_ports eth0' >> /etc/network/interfaces
echo 'bridge_stp on' >> /etc/network/interfaces
echo 'bridge_maxwait 0' >> /etc/network/interfaces
echo 'bridge_fd 0' >> /etc/network/interfaces
ifconfig xenbr0 up
/etc/init.d/networking restart
brctl addbr xenbr0
fi


#FIM









sexta-feira, 7 de dezembro de 2012

Instalando Xen 4.0 no Debian Squeeze 6.0.5 NetInstall

Distribuição usada para instalação: Debian Squeeze 6.0 netinstall 64 bits.
Devido ser um servidor de maquinas virtuais, leve em conta os riscos futuros e monte com Espelhamento de disco e LVM para abrigar os discos das Vm's pois ajudará na performance e no gerenciamento dos volumes.

Sugestão para criação das partições:

Exemplo de particionamento usando Raid e Lvm em um disco de 1 TeraByte.
Raid via software, Raid 1 (Espelhamento) e LVM (Logical Volume Manager) com a estrutura abaixo:

Partição para os arquivos de boot ( /boot )
/dev/md0 = 100 MB

Partição para raiz ( / )
/dev/md1 = 3000 MB

Partição para os arquivos variaveis ( /var )
/dev/md2 = 1000 MB

Partição para area de troca ( Swap )
/dev/md3 = 8000 MB

Partição para o LVM ( Volume Lógico )
/dev/md4 = 988000 MB

Monte o sistema de arquivos conforme suas necessidades, usamos Ext4 nas partições e o LVM para armazenar os discos das VM's.

Durante a instalação, quando aparecer a tela chamada:

"Configurando a rede via DHCP" , clique em cancelar e selecione a opção:

"Não Configurar agora a rede"

e prossiga com a instalação.


Após a conclusão da instalação do Sistema Operacional, configure o a rede para conectar a internet:

# echo >> 'auto eth0' /etc/network/interfaces && echo 'iface eth0 inet dhcp' >> /etc/network/interfaces

# /etc/init.d/networking restart


Instale o Servidor SSH

apt-get install openssh-server



Configure o arquivo de Repositorio conforme segue:


#
deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 NETINST Binary-1 20120512-20:40]/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
deb ftp://ftp.debian.org/debian/ stable main
deb-src ftp://ftp.debian.org/debian/ stable main
deb http://ftp.debian.org/debian/ squeeze-updates main
deb-src http://ftp.debian.org/debian/ squeeze-updates main


Atualize os repositorios:

# apt-get update


Instale os pacotes necessarios:

# apt-get install linux-image-xen-amd64 xen-hypervisor-4.0-amd64 xen-tools vim sudo openssh-server xserver-xorg xserver-xorg-core x-window-system-core x-window-system fluxbox xdm xenwatch virt-manager vim






Depois do sistema instalado e inicializado, crie uma nova partição, alocando o espaço livre que você deseja usar para suas máquinas virtuais Domu. Entre outras vantagens, o Xen tem muito melhor desempenho IO de disco, se você usar LVM ao invés de imagens de disco. Crie o grupo de volume assim, atribuindo o md4 a sua partição vazia LVM.

Instale o pacote de suporte a LVM


# apt-get install lvm2


Crie o volume fisico

# pvcreate /dev/md4

Crie o grupo do Volume

# vgcreate xen-vol /dev/md4


xeninstalldebiansqueeze.sh


#!/bin/bash

echo 'auto lo' > /etc/network/interfaces && echo 'iface lo inet loopback' >> /etc/network/interfaces && echo 'auto eth0' >> /etc/network/interfaces && echo 'iface eth0 inet dhcp' >> /etc/network/interfaces

/etc/init.d/networking restart

echo 'deb http://security.debian.org/ squeeze/updates main' > /etc/apt/sources.list
echo 'deb-src http://security.debian.org/ squeeze/updates main' >> /etc/apt/sources.list
echo 'deb ftp://ftp.debian.org/debian/ stable main' >> /etc/apt/sources.list
echo 'deb-src ftp://ftp.debian.org/debian/ stable main' >> /etc/apt/sources.list
echo 'deb http://ftp.debian.org/debian/ squeeze-updates main' >> /etc/apt/sources.list
echo 'deb-src http://ftp.debian.org/debian/ squeeze-updates main' >> /etc/apt/sources.list

apt-get update

apt-get install linux-image-xen-amd64 xen-hypervisor-4.0-amd64 xen-tools vim sudo openssh-server xserver-xorg xserver-xorg-core x-window-system-core x-window-system fluxbox xdm xenwatch virt-manager xen-qemu-dm-4.0 vim -y

mv /etc/grub.d/10_linux /etc/grub.d/50_linux
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "" >> /etc/default/grub
echo "# Xen boot parameters for all Xen boots" >> /etc/default/grub
echo 'GRUB_CMDLINE_XEN="dom0_mem=1024M"' >> /etc/default/grub


mkdir -p /usr/lib64/xen/
cp /usr/lib/xen-4.0/* -rv /usr/lib64/xen/


sed -i 's|(enable-dom0-ballooning yes)|(enable-dom0-ballooning no)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-http-server no)|(xend-http-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-unix-server no)|(xend-unix-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|# (network-script network-bridge)|(network-script network-bridge)|g' /etc/xen/xend-config.sxp
sed -i 's|(dom0-min-mem 196)|(dom0-min-mem 1024)|g' /etc/xen/xend-config.sxp
sed -i 's|XENDOMAINS_SAVE=/var/lib/xen/save|XENDOMAINS_SAVE=""|g' /etc/default/xendomains
sed -i 's|XENDOMAINS_RESTORE=true|XENDOMAINS_RESTORE=false|g' /etc/default/xendomains

update-grub2

pvcreate /dev/sda3
vgcreate xen-vol /dev/sda3



--------------------------------------------------------------------------------------




































terça-feira, 11 de setembro de 2012

Tutorial Root Mini Pc Android 4.0.4 Media Player Minix H24


Como fazer ROOT no seu Minix Media Player H24 TV Box



Ele vem com o processador Allwinner (Cortex A8) A10 e com Android 4.0,  já traz algum divertimento.

Este dispositivo vem com a entrada USB OTG. Mas infelizmente nós não temos o cabo para este dispositivo, aquele cabo USB com duas pontas macho. Então somente poderemos conectar neste dispositivo pela Rede sem Fio Wifi. Siga os proximos passos:

AVISO: É somente sua as responsabilidades e consequencias de realizar os passos a seguir. Não me responsabilizo pelo seu dispositivo, explosão, desintegração, etc. Se talvez voce perder a garantia do aparelho ou torna-lo um peso de papel. Você foi avisado !

1.       Habilite o Wifi. Conecte o Wifi no seu Access Point ou Roteador

2.       Adicione uma conta no Google e entre no Google Play Store.

3.       Instale o Aplicativo chamado "Wifi Adb", tem um icone com um besouro vermelho.

4.        Instale o Busybox installer

5.        Instale o Superuser

6.       Execute o aplicativo "Wifi Adb"

7.       Clique no botão "Turn On"  . Ele vai mostrar o IP e a Porta do seu dispositivo. Precisaremos dessas informaçoes para o proximo passo.

8.       No seu Desktop ou Notebook, e instale o Adb Shell Tools para acessa-lo remotamente.

9.       Entre na pasta que está o Adb Shell Tools e execute o comando abaixo para conectar no dispositivo:
               adb connect 192.168.100.5

          Onde 192.168.100.5 será seu ip que o Wifi Adb estará mostrando.

          Se der tudo certo voce receberá a mensagem:
              connected to 192.168.100.5:5555

         Entre no prompt de comando do Adb digitando o comando abaixo:
              adb shell

         Aparecerá o prompt abaixo:
              root@android:/ #

10.   Isso indica que o seu aparelho ja está rootado. Entretanto, ele nao tem o Aplicativo superuser instalado, e os aplicativos que exigem Root nao funcionarão como esperando ainda.

11.   Vá em frente e instale o aplicativo superuser atraves do Google Play Store. Ainda assim o a raiz do Prompt nao aparece ainda. Mas, o proximo passo irá substituir o arquivo em /system.xbin/su para resolver isso.

12.  Faça Download  do Superuser-3.1.3-arm-signed.zip onde tem o arquivo (su) que irá funcionar. Extraia ele na pasta onde o adb.exe está presente, na pasta do Adb Shell Tools.

13.   Continuando no Adb Shell.

Remonte o acesso ao diretorio de acesso remoto:
         adb remount

Acesso o Prompt remoto do dispositivo:
         adb shell

Renomeie o arquivo 'su' original:
         mv /system/xbin/su /system/xbin/su.old

Saia do prompt remoto:
         exit

Dentro do diretorio onde esta o novo arquivo 'su' execute o comando abaixo para envia-lo para o dispositivo:
          adb push su /system/xbin/su

Dê premissão de dono para o arquivo 'su':
          adb shell chown 0.0 /system/xbin/su

Dê permissão de 775 para o arquivo 'su'
          adb shell chmod 06755 /system/xbin/su

Reinicie o equipamento
          adb reboot

14.    Agora o dispositivo deverá estar rootado.

15.   Não desligue a opção de "Permitir acesso Root" no aplicativo "Superuser". Isto pode causar problemas.

segunda-feira, 28 de novembro de 2011

Script VBS para sincronização de arquivos

O Script compara o caminho de origem com o de destino, caso o caminho de destino não exista, ele será criado, caso já exista será comparada a data de modificação da origem com o destino, caso a origem seja mais atual que o destino, será copiado o arquivo atual para o caminho de destino.

Segue o script do arquivo VBS:



Set objFSO = CreateObject("Scripting.FileSystemObject")
Const objStartFolder = "R:" 'Declara a constante da pasta de origem
Const DestinationFolder = "C:\Linx" 'Declara constante da pasta de destino

Set objFolder = objFSO.GetFolder(objStartFolder)
Wscript.Echo Replace(objFolder.Path,objStartFolder,DestinationFolder)
dim PastaDestino
PastaDestino = Replace(objFolder.Path,objStartFolder,DestinationFolder)
If objFSO.FolderExists(PastaDestino) Then ' Verifica se o diretório a processar existe no destino
'Caso exista, informa em um echo
Set objFolderD = objFSO.GetFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
Else
'Caso não exista, cria e informa a criação em echo
Set objFolderD = objFSO.CreateFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
End If

Set colFiles = objFolder.Files
For Each objFile in colFiles
If NOT objFSO.FileExists(PastaDestino & "\" & objFile.Name) Then 'Se não existir arquivos na pasta de destino e no nome do arquivo do objeto
'Se o arquivo não existir no diretório de destino da cópia.
objFile.Copy PastaDestino & "\"
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
Else
If objFile.DateLastModified > objFSO.GetFile(PastaDestino & "\" & objFile.Name).DateLastModified Then
'Se o arquivo é mais recente que o arquivo de destino da cópia lá
objFile.Copy PastaDestino & "\", True
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
End If
End If
Wscript.Echo PastaDestino & "\" & objFile.Name
Next
Wscript.Echo

ShowSubfolders objFSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
'Poderá incluir diretorios que não serão copiados.
If InStr(Subfolder.Path,"\imagens") < 2 and InStr(Subfolder.Path,"\Words") < 2 and InStr(Subfolder.Path,"\PACOTE") < 2 and InStr(Subfolder.Path,"Report\outros") < 2 and InStr(Subfolder.Path,"\Linx_5.8") < 2 and InStr(Subfolder.Path,"\View") < 2 and InStr(Subfolder.Path,"\Logo") < 2 and InStr(Subfolder.Path,"\PROJETO ETIQUETAS PAULOLINX") < 2 Then
'Se a pasta não é parte das pastas proibidas acima, ele libera a copia...
Wscript.Echo Replace(Subfolder.Path,objStartFolder,DestinationFolder)
Set objFolder = objFSO.GetFolder(Subfolder.Path)
PastaDestino = Replace(objFolder.Path,objStartFolder,DestinationFolder)
'---------------- Tratamento de pastas
If objFSO.FolderExists(PastaDestino) Then ' Verifica se o diretório a processar existe no destino
'Caso exista, informa em um echo
Set objFolderD = objFSO.GetFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
Else
'Caso não exista, cria e informa a criação em echo
Set objFolderD = objFSO.CreateFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
End If
'---------------- /Tratamento de pastas
Set colFiles = objFolder.Files
For Each objFile in colFiles
If NOT objFSO.FileExists(PastaDestino & "\" & objFile.Name) Then 'Se não existir arquivos na pasta de destino e no nome do arquivo do objeto
'Se o arquivo não existir no diretório de destino da cópia lá.
objFile.Copy PastaDestino & "\"
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
Else
If objFile.DateLastModified > objFSO.GetFile(PastaDestino & "\" & objFile.Name).DateLastModified Then
'Se o arquivo é mais recente que o arquivo de destino da cópia lá
objFile.Copy PastaDestino & "\", True
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
End If
End If
'Wscript.Echo PastaDestino & "\" & objFile.Name
'Wscript.Echo objFile.Name
Next
Wscript.Echo
ShowSubFolders Subfolder
End If
Next
End Sub
Wscript.Echo "O Linx foi sincronizado com o servidor"

quinta-feira, 28 de julho de 2011

Exemplo de Script Logon em VbScript para Active directory

'Impedindo exibição de error para o usuário
on error resume next

'SINCRONIZA HORARIO ESTAÇÃO x SERVIDOR
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run "NET TIME \\pdcsrv01 /SET /Y", 0, True

'LIMPA UNIDADES DE REDE
Set WSHNetwork = WScript.CreateObject("WScript.Network")
on error resume next
WSHNetwork.RemoveNetworkDrive "G:", True, True
WSHNetwork.RemoveNetworkDrive "H:", True, True
WSHNetwork.RemoveNetworkDrive "I:", True, True
WSHNetwork.RemoveNetworkDrive "J:", True, True
WSHNetwork.RemoveNetworkDrive "K:", True, True
WSHNetwork.RemoveNetworkDrive "L:", True, True
WSHNetwork.RemoveNetworkDrive "M:", True, True
WSHNetwork.RemoveNetworkDrive "N:", True, True
WSHNetwork.RemoveNetworkDrive "O:", True, True
WSHNetwork.RemoveNetworkDrive "P:", True, True
WSHNetwork.RemoveNetworkDrive "Q:", True, True
WSHNetwork.RemoveNetworkDrive "R:", True, True
WSHNetwork.RemoveNetworkDrive "S:", True, True
WSHNetwork.RemoveNetworkDrive "T:", True, True
WSHNetwork.RemoveNetworkDrive "U:", True, True
WSHNetwork.RemoveNetworkDrive "V:", True, True
WSHNetwork.RemoveNetworkDrive "X:", True, True
WSHNetwork.RemoveNetworkDrive "Y:", True, True
WSHNetwork.RemoveNetworkDrive "w:", True, True
WSHNetwork.RemoveNetworkDrive "Z:", True, True
WScript.DisconnectObject WSHNetwork
'FIM DO LIMPA UNIDADES

Dim strComputername, strDomain, strUser, strIp, strLoc, wshshell

Set wshShell = CreateObject("WScript.Shell")
strComputername = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
strDomain = wshShell.ExpandEnvironmentStrings("%userdomain%")
strUser = wshShell.ExpandEnvironmentStrings("%USERNAME%")

'Wscript.Echo strUser


'CONECTA UNIDADES DE REDE
Set objNet = CreateObject("Wscript.Network")

'MAPEIA DIRETORIO PESSOAL
objNet.MapNetworkDrive "U:","\\stgsrv01\home_"&strUser & "$"

'MAPEIA DIRETORIO DO LINX
objNet.MapNetworkDrive "L:","\\appsrv04\l"

'MAPEIA DIRETORIO DO MODARIS E DIAMINO
objNet.MapNetworkDrive "Z:","\\stgsrv01\lectra"

'MAPEIA DIRETORIO DO INVESTRONICA
objNet.MapNetworkDrive "X:","\\sqlsrv02\x"

'MOSTRA O CAMINHO DO DIRETORIO PESSOAL
' WScript.Echo "U:","\\stgsrv01\home_"&strUser & "$"

'C:\Documents and Settings\ti01\Dados de aplicativos\Microsoft\Internet Explorer\Quick Launch
'C:\Users\marcelo.souza\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

'CRIA ICONE DO LINX NO DESKTOP
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Visual Linx 8.lnk")
oUrlLink.TargetPath = "L:\Linx_sql\LINX\VisualLinx.exe"
oUrlLink.IconLocation = "L:\Linx_sql\LINX\VisualLinx.exe"
oUrlLink.Save

'CRIA ATALHO DO DIRETORIO PESSOAL NO DESKTOP
strAppPath = "U:\"
Set wshShell = CreateObject("WScript.Shell")
objDesktop = wshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(objDesktop & "\Diretorio Pessoal.lnk")
oShellLink.TargetPath = strAppPath
oShellLink.WindowStyle = "1"
oShellLink.Description = "Diretorio Pessoal"
oShellLink.Save

'COPIA ICONE DO MODARIS NO DESKTOP
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Wshs = WScript.CreateObject("WScript.Shell")
Const OverwriteExisting = true
usrProfile = Wshs.ExpandEnvironmentStrings("%UserProfile%")
objFSO.CopyFile "\\pdcsrv01\netlogon\Modaris Diamino Server.rdp" , usrProfile & "\Desktop\", OverwriteExisting

'ENVIA O COMANDO PARA APERTAR A TECLA F5 PARA ATUALIZAR OS ICONES NO DESKTOP
WshShell.SendKeys "{F5}"


'WScript.Quit

sexta-feira, 25 de março de 2011

Enviando email por linha de comando no linux com Mpack

mpack -s "Relatorio de Produtividade" /var/www/prod_repo/relatorio.jpg fjunior@addobbo.com.br

Relatorio capturado do Browser e convertido para PDF com envio por email

A situação é: Precisavamos capturar a janela em Html/Php e converter para PDF enviando o arquivo para um email.

Capturar a tela apresentada no Browser:

Para isso usamos o software chamado HTML2IMAGE que converter o html para png ou jpg, prosseguimos com as instruções para instalação logo abaixo:

Processo de Instalação

1. Faça o Download do html2image
wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz

2. Extraia o html2image:
tar xvzf html2image.i386.tar.gz

Acesse o diretorio:

cd html2image

Crie o Path para acesso a livraria:

export LD_LIBRARY_PATH=./

3. Rode o framebuffer Xvfb
Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1

(O servidor X virtual framebuffer xvfb gera um servidor X que faz com que os aplicativos possam rodar em máquinas sem placa de vídeo e sem dispositivos físicos de entrada. Ele emula um framebuffer burro usando a memória virtual.)

4. Converta o html para imagem pelo comando abaixo:
./html2image www.google.com a.jpg

Shell Script para usar a ferramenta pela linha de comando:

#!/bin/bash

cd; cd /opt/html2image

ls

export LD_LIBRARY_PATH=./

#rm /tmp/.X1-lock

./Xvfb :1 -screen 0 1024x768x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1

./html2image $1 /home/siteroot/public_html/html2image/$2

echo “html 2 image Done!”

PHP script (html_2_image.php)


exec(“export LD_LIBRARY_PATH=/opt/”); // if html2image folder in /opt folder

// here html_2_image is above shell script

exec(“/opt/html_2_image www.yahoo.com yahoo.png”, $result, $returnValue);

?>

Execute o arquivo “html_2_image.php” com o crontab, a imagem será salva em “/home/siteroot /public_html/html2image/”.