Powershell Script 自動備份 + 發信 + mount SAMBA

2014-12-14 PowerShell

此篇是 PowerShell 的第二篇進階 Script,用於自動化備份並且要發信告知管理者

目標流程

1. 設定一些環境變數、mount samba,並利用 test-Patch 確認 mount 成功。當然最後你也可以用 test-File 來確認備份完成。

2. 設定 send smtp server 資訊,smtp server、sender、Recipients、主旨、信件內容、附件

3. 用 if 判斷 $Patch 是否存在

– 否 = print “Directory Already exists” 並且 unmount samba

– 是 = 建立當天日期並備份檔案 來源→目的→匯出 log → send mail → unmount samba

 

#System Variable for backup Procedure

 $date = Get-Date -Format yyyMMdd
 net use w: \\192.168.100.110\Content /user:backupadm backuppwd
 New-PSDrive -Name "Backup" -PSProvider Filesystem -Root "\\192.168.100.110\Content"
 $source = "D:\BackupS"
 $destination = "backup:\$date"
 $path = test-Path $destination
 
#Email Variables

 $smtp = "192.168.100.10"
 $from = "PowerShell_Backup@shazi.twbbs.org"
 $to = "eric@net.tw"
 $body = "Log File of Eric bacupk is attached, backup happens on of Date: $date"
 $subject = "Eric Backup on $date"
 
# Backup Process started

 if ($path -eq $true) {
    write-Host "Directory Already exists"
    Remove-PSDrive "Backup"  
    } elseif ($path -eq $false) {
            cd backup:\
            mkdir $date
            copy-Item  -Recurse $source -Destination $destination
            $backup_log = Dir -Recurse $destination | out-File "$destination\backup_log.txt"
            $attachment = "$destination\backup_log.txt"
#Send an Email to User 
            send-MailMessage -SmtpServer $smtp -From $from -To $to -Subject $subject -Attachments $attachment -Body $body -BodyAsHtml
            write-host "Backup Sucessfull"
            cd c:\
 
 Remove-PSDrive "Backup"  
 }

 

另存成 BackupSendMain.ps1 並用 powershelll 工作排程執行就可以囉 !!

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱