kan man på ett enkelt sätt göra backup på filer på en server via asp med en tidsintervall typ en gång i veckan Frågvis som jag är undrar jag varför du behöver asp för backupen? Är det inte nog så enkelt att använda schemaläggaren för att exekvera ett script som kopierar filer med ftp eller ssh? har du något exempel på ett script som kopierar en fil från en domän till en annan domän Jag har gjort ett enklare program i vb som använder pscp (Putty Secure Copy, dvs kopiering över SSH). pscp.exe sparade jag under c:\program files\pscp\pscp.exe. backup på ftp:\\domän
RogerSv: backup på ftp:\\domän
/AlexSv:backup på ftp:\\domän
RogerSv: backup på ftp:\\domän
Pscp hittar du på: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Programmet (som jag schemalagt) ansluter med hjälp av en SSH-tunnel till en Linuxmaskin och kopierar alla filer till en ny katalog som skapas där programmet exekveras ifrån. För att inte fylla upp backupdisken roteras katalogerna så att de inte lagras mer än tre stycken.
Jag är dock inte speciellt slipad som programmerare, men det här fick jag att funka. Förbättringar tas tacksamt emot. ;-)
<code>
Imports System
Imports System.IO
Module Module1
Dim baseFolderName As String
Dim fullName As String
Dim path As String
Dim fullPath As String
Dim thisDate As String
Dim maxFiles As Integer
Sub CreateFolder()
Console.WriteLine("Creating folder")
baseFolderName = "home_backup-"
fullName = baseFolderName + thisDate
path = CurDir()
fullPath = path + "\" + fullName
System.IO.Directory.CreateDirectory(fullPath)
End Sub
Sub CleanOldFolders()
Console.WriteLine("Cleaning old folders")
Dim di As DirectoryInfo = New DirectoryInfo(path)
Dim num As Integer
Try
Dim dirs As DirectoryInfo() = di.GetDirectories(baseFolderName + "*")
num = dirs.Length
Dim i As Integer
For i = 0 To (num - maxFiles - 1)
Directory.Delete(path + "\" + dirs(i).ToString, True)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
Sub BackupHome()
Console.WriteLine("Backing up home")
Dim myProcess As New Process()
myProcess.StartInfo.FileName = "c:\program files\pscp\pscp.exe"
myProcess.StartInfo.Arguments = "-p -q -r -2 -batch -scp -pw LÖSENORD USERNAME@DOMÄN:/home/USERNAME ./" + fullName
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.Start()
myProcess.WaitForExit()
End Sub
Sub CreateFolderName()
Dim thisYear, thisMonth, thisDay, thisHour, thisMinute, thisSecond As Integer
thisYear = Date.Now.Year
thisMonth = Date.Now.Month
thisDay = Date.Now.Day
thisHour = Date.Now.Hour
thisMinute = Date.Now.Minute
thisSecond = Date.Now.Second
thisDate = Date.Now.Year.ToString + "-"
If (thisMonth < 10) Then
thisDate = thisDate + "0"
End If
thisDate = thisDate + thisMonth.ToString + "-"
If (thisDay < 10) Then
thisDate = thisDate + "0"
End If
thisDate = thisDate + thisDay.ToString + "--"
If (thisHour < 10) Then
thisDate = thisDate + "0"
End If
thisDate = thisDate + thisHour.ToString + "h-"
If (thisMinute < 10) Then
thisDate = thisDate + "0"
End If
thisDate = thisDate + thisMinute.ToString + "m-"
If (thisSecond < 10) Then
thisDate = thisDate + "0"
End If
thisDate = thisDate + thisSecond.ToString + "s"
End Sub
Sub Main()
maxFiles = 3
CreateFolderName()
CreateFolder()
BackupHome()
CleanOldFolders()
End Sub
End Module
</code>