quinta-feira, 24 de abril de 2014

Enviando e-mail com VB script!

Olá,

Esta dica é interessante principalmente para quem utiliza arquivos em lote (.bat) ou script para execução de backups ou qualquer outro procedimento que é crítico e sempre que for executado você precisa ou quer saber quando foi executado ou se foi executado. A ideia é, assim que o script for executado você pode programa-lo para enviar um e-mail emitindo um alerta ou a mensagem que desejar.

Primeiro crie um arquivo VB script ou seja, com a extensão .vbs e cole o seguinte código:

Set objEmail = CreateObject("CDO.Message")
objEmail.From = "email_remetente@teste.com"
objEmail.Subject = "Assunto do e-mail"
objEmail.To = "email_destino@teste.com"
objEmail.Textbody = "Descrição do e-mail / Mensagem desejada"
objEmail.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"Endereço IP do servidor SMTP"
objEmail.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Configuration.Fields.Update
objEmail.Send

Preencha o arquivo com as informações: e-mail remetente, e-mail destinatário a descrição da mensagem e o endereço IP do seu servidor SMTP.

Feito isto você pode executar o script e checar se irá receber o e-mail conforme configurado no script, é importante lembrar que alguns softwares de antivírus podem  bloquear a porta 25 de envio de e-mail, para resolver basta desbloquear ou alterar o número da porta conforme a configuração do seu servidor.

Qualquer dúvida basta publica-la no campo de comentários.

Att,
César

terça-feira, 25 de março de 2014

Backup SQL Server via script .bat

Olá,

Se você não tem um SQL Server licenciado ou seja, está utilizando a versão Express, é possível efetuar o backup do banco de dados através da linha de comando, para isto é possível criar um script .bat e agendar sua execução através do Schedule do Windows.

O script é bastante simples, veja a seguir:

sqlcmd -U <usuario> -P <senha> -S <servidor>\<instancia> -d <nome do banco> -Q "backup database <nome do banco> to disk='C:\Backup\<nome do banco>.bak'"

Basta você substituir as variáveis que coloquei neste exemplo.

<usuário> = Usuário com permissão de acesso ao banco;
<senha> = Senha do usuário;
<servidor> = Máquina onde o SQL Server está instalado;
<instancia> = Nome da instancia, normalmente a versão Express vem por default o SQLEXPRESS;
<nome do banco> = O nome do banco que deseja efetuar o backup.

Você deve notar que após o comando "to disk=" é necessário especificar onde o arquivo de backup será gravado, no meu exemplo o arquivo sempre será salvo no diretório C:\Backup

Importante, este backup será incremental, ou seja, todas as vezes que o script rodar ele irá adicionar o backup mais recente ao backup mais antigo. E quando for restaurar o backup será possível selecionar uma das datas que foram feitos os backups.

Qualquer dúvida, poste no campo de comentários.

Um abraço,
César