Script para conectar por IPC Share, realizar backup, compactar .log e enviar por e-mail (.ps1)
A seguir apresento um script .ps1 que executa as seguintes ações:
-conecta por IPC em um host destino
-copia os arquivos, criando um .log
-compacta o .log
-envia para um e-mail o log zipado
Configure as variáveis de acordo com a necessidade, e, em caso de dúvida, deixe um comentário.
Fontes:
https://klyavlin.wordpress.com/2012/09/19/robocopy-network-usernamepassword/
https://msdn.microsoft.com/pt-br/library/hh485707%28v=vs.110%29.aspx
http://stackoverflow.com/questions/1153126/how-to-create-a-zip-archive-with-powershell
-conecta por IPC em um host destino
-copia os arquivos, criando um .log
-compacta o .log
-envia para um e-mail o log zipado
Configure as variáveis de acordo com a necessidade, e, em caso de dúvida, deixe um comentário.
# IPC$ opcoes de compartilhamento $IPCHost = "\\IP_do_host_destino" # IP do host para criar o compartilhamento IPC$ $IPCUser = "usuario" # Usuário de autenticação $IPCPwd = "senha" # senha para IPC$ share # Configuracoes de origem dos arquivos $SrcHost = "E:\pasta_origem" # Hostname de origem - pasta de origem # Configuracoes de destino dos arquivos $DstHost = "\\IP_do_host_destino\Backups\pasta" # caminho completo de destino $LogPath = "C:\pasta_log\pastabackup_$(get-date -f yyyy-MM-dd)" mkdir $LogPath # Caminho completo do arquivo de log $LogFile = $LogPath + "\arquivolog$(get-date -f yyyy-MM-dd).log" echo $LogPath echo $LogFile ##Bloco de acao NET USE $IPCHost\IPC$ /u:$IPCUser $IPCPwd #ação que será executada, configure conforme sua necessidade robocopy.exe $SrcHost $DstHost /MIR /SECFIX /COPYALL /log:$LogFile NET USE $IPCHost\IPC$ /D ##Compressao da pasta dos logs $zipfile = "C:\pasta_log\$(get-date -f yyyy-MM-dd).zip" [System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') [System.IO.Compression.Zipfile]::CreateFromDirectory($LogPath, $zipfile) ## Configuracoes de email $smtpserver = "smtp.dominio.br" $msg = new-object Net.Mail.MailMessage $att = new-object Net.Mail.Attachment($zipfile) $smtp = new-object Net.Mail.SmtpClient($smtpServer, porta) $smtp.EnableSsl = $True $smtp.Credentials = New-Object System.Net.NetworkCredential("usuario_email", "senha_email") $msg.From = "quemenvia@dominio.br" $msg.To.Add("mensagem_a_ser_enviada" ) $msg.Subject = "Assunto do email" $msg.Body = "Log em anexo" $msg.Attachments.Add($att) $smtp.Send($msg)
Fontes:
https://klyavlin.wordpress.com/2012/09/19/robocopy-network-usernamepassword/
https://msdn.microsoft.com/pt-br/library/hh485707%28v=vs.110%29.aspx
http://stackoverflow.com/questions/1153126/how-to-create-a-zip-archive-with-powershell
Comentários
Postar um comentário