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

Popular posts from this blog

GNS3: Notes

As usual, notes is for myself and might be useful and also save time for beginners start using GNS3 .

Debian: Install NASM - The Netwide Assembler

sudo apt install nasm Check NASM Version nasm -v Find out more about NASM at https://nasm.us/doc/nasmdoc0.html

Linux: compound commands

command1 ; command2 ; command3 command1 is executed, then command2, and then command3 command1 && command2 && command3 command2 is executed only if command1 run successfully (exit code is 0), command3 is executed only if command2 run successfully (exit code is 0) command1 || command2 || command3 command2 is executed only if command1 exit code is 0 (failure), command3 is executed only if command2 exit code is 0 (failure)