Skip to main content

[PowerShell]: Powershell script uploading backup databases to ftp server

Author: Enrique Puig Nouselles
http://gallery.technet.microsoft.com/scriptcenter/80647f66-139c-40a4-bb7a-04a2d73d423c


Nhu cầu
- Học sử dụng Powershell và áp dụng vào thực tế
- Server chạy MS SQL được backup mỗi ngày và lưu các file backup ở folder mặc định "C:/Program Files/Microsoft SQL Server/MSSQL11.MSSQLSERVER/MSSQL/Backup"
- Upload các file database backup về một ftp server khác để lưu "offsite"

# Begin script
# Thanks to: Enrique Puig Nouselles http://gallery.technet.microsoft.com/scriptcenter/80647f66-139c-40a4-bb7a-04a2d73d423c
# Khai báo folder chứa các file backup database, dưới đây là folder backup mặc định của MS SQL 2012
$Dir="C:/Program Files/Microsoft SQL Server/MSSQL11.MSSQLSERVER/MSSQL/Backup"  

# ftp server
$ftp = "ftp://IPAddres/subfolder/subsubfolder"
$user = "usernamehere"
$pass = "passwordhere"
# DO NOT use $(Get-Date), use $d variable instead, otherwise SQL Agent gets error "The job step contains tokens...."
$d = Get-Date

$webclient = New-Object System.Net.WebClient

$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)

# Get files created in the past 24 hours
#list every sql server trace file
foreach($item in (dir $Dir "*.bak")){
if ($item.CreationTime -gt ($d.AddDays(-1)))
{
    "Uploading $item..."
    $uri = New-Object System.Uri($ftp+$item.Name)
    $webclient.UploadFile($uri, $item.FullName)
} }
#End