$logpath = "C:\SomePath"
$ftpserver = "ftp://someFTP.com//" $user = "User" $password = "Password" $ftppath = "Somefolder" $todayslogs = Get-ChildItem $logpath | where {$_.CreationTime -gt ((get-date).AddDays(-1))} foreach($log in $todayslogs){ $uploadpath = $ftpserver + $ftppath + "/" + $log.Name # create the FtpWebRequest and configure it $ftp = [System.Net.FtpWebRequest]::Create($uploadpath) $ftp = [System.Net.FtpWebRequest]$ftp $ftp.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile $ftp.Credentials = new-object System.Net.NetworkCredential($user,$password) $ftp.UseBinary = $true $ftp.UsePassive = $true # read in the file to upload as a byte array $content = [System.IO.File]::ReadAllBytes($log.FullName) $ftp.ContentLength = $content.Length # get the request stream, and write the bytes into it $rs = $ftp.GetRequestStream() $rs.Write($content, 0, $content.Length) # be sure to clean up after ourselves $rs.Close() $rs.Dispose() } |
This one was written to automate the upload of some logs. It happens every day so that's why we just (get-date).addays(-1) but that where on get-childitem can be anything you like.
One thing to note is the hardcoded password. You may not want to do this, depends on your security requirements. You can save the credentials in another file as a secure.string if you like. There's probably a post coming about that.
No comments:
Post a Comment