从多个FTP文件夹备份到本地和ZIP

HI,

有没有免费/开源的工具,让您连接到FTP服务器,然后下载文件和ZIP存档? 我喜欢将多个FTP站点的代码库备份到不同的ZIP文件,并在需要时保存以备将来使用。

可以运行在Windows上的应用程序是首选,应该能够安排这一点。

谢谢。

Cobian可以使用FTP作为源或目的地,支持日程安排,备份的多个目标位置,压缩,完整/增量/差异备份以及用于日常备份的时间戳文件夹,从而保留多天的备份。

wget的? 见http://www.gnu.org/software/wget/manual/wget.html#Recursive-Retrieval-Options

这将检索一个目录树,然后您可以使用任何常用的命令行拉链压缩。 您只需将其全部放入batch file中,然后从Task Scheduler中运行。

JR]

查看超级灵活的文件同步器 。 我们使用该工具做类似的事情。 这不是自由和开放源码软件,但相当便宜,有很多好的function。

我会虽然有一些简单的脚本(batch file)将完成这项工作。 无论是ftp还是wget,毫无疑问都可以下载这些文件。 还有一些命令行归档程序。 它可以从任务调度程序运行。

我有类似的要求,并在服务器上执行大部分工作的脚本。 通过在服务器上收集和压缩它们,可以减less下载。 使用wget的客户端脚本下载生成的档案,这些档案已经具有包括date和时间的文件名。 所以,这是一个在Linux服务器上通过cron运行的bash脚本,以及在Windows客户端上通过Task Scheduler运行的batch file。

你只有FTP访问服务器?

如果是的话,我build议NcFTP和7z (7-zip)。

如果你可以pipe理login到服务器(就像你的,这是备份活动),

  1. 通过SSHlogin到服务器,
    • 触发一个脚本来存档和压缩感兴趣的目录,
    • 然后,只要SCP他们在任何地方。
      (但是,请使用ssh和scp进行公共authentication )

我有一个类似的要求,我的networking服务器,思考FTP,但不喜欢不安全的连接…所以,而是我创build了一个备份脚本,将其添加到Windows任务计划程序服务,然后configuration它每晚运行。

该脚本使用NTBackup为每个需要备份的文件夹执行备份。 所有备份文件(.bkf)都保存在一个备份文件夹中。

Call BackupInstance(folderPath, folderName) Function BackupInstance(fstrFolderPath, fstrFolderName) Dim strJobName : strJobName = "Backup_" & fstrFolderName Dim strMonth : strMonth = GetMonth(Month(Date)) Dim strDay : strDay = GetDay(Day(Date)) Dim strYear : strYear = Year(Date) Dim strTimeStamp : strTimeStamp = strMonth & strDay & strYear & "-" & Replace(FormatDateTime(now,vbShortTime),":","") Dim strBackupFileName : strBackupFileName = fstrFolderName & "_" & strTimeStamp & ".bkf" Dim strBackupOptions : strBackupOptions = "/SNAP:off /M normal /L:f /V:yes /D " & chr(34) & "Backup of " & fstrFolderName & chr(34) Dim strSyntax : strSyntax = "presp1-ntbackup.exe backup " & _ chr(34) & fstrFolderPath & chr(34) & _ " /J " & strJobName & _ " /F " & chr(34) & BackupFolder & "\" & strBackupFileName & chr(34) & _ " " & strBackupOptions if blnDebug = True then wscript.echo "Backing up " & strBackupFileName objShell.run "cmd /c " & strSyntax, 0, True end function 

每次运行备份脚本时,都会检查旧的备份文件的x天数,然后将其删除,从而使备份文件夹不会太满。

 Call ArchiveFiles(BackupFolder) Sub ArchiveFiles(strBackupFolder) On Error Resume Next Dim objFolder : Set objFolder = objFSO.GetFolder(strBackupFolder) Dim colFiles : Set colFiles = objFolder.Files if blnDebug = True then wscript.echo "Found " & colfiles.count & " blkf file(s) in " & strBackupFolder Dim objFile For Each objFile in colFiles if lcase(Right(objFile.name,3)) <> "bkf" then if blnDebug = True then Wscript.Echo "Skipping " & objFile.name & " because it's not a backup file" elseif DateDiff("d", objFile.DateLastModified, Now) => intNumberOfDays then if blnDebug = True then Wscript.Echo "Removing " & objFile.Name & " " & objFile.DateLastModified & " (" & DateDiff("d", objFile.DateLastModified, Now) & " days old)" objFso.DeleteFile(objFile.path) elseif DateDiff("d", objFile.DateLastModified, Now) < intNumberOfDays then if blnDebug = True then wscript.echo "Skipping " & objFile.Name & " because it's only " & DateDiff("d", objFile.DateLastModified, Now) & " days old)" else if blnDebug = True then wscript.echo "Unable to resolve last modified date for " & objFile.name end if Next err.clear end sub 

为了卸载备份文件,我使用Windows Live Sync作为服务来同步Web服务器备份文件夹我的家用电脑。 这确保了我的备份文件始终存在于Web服务器和我的家用计算机上。 从我家的电脑上,我用Mozy在线备份来备份networking服务器文件和个人文件。

已经使用了一段时间没有任何问题。 如果你需要更多的信息,或者想要一个完整的脚本的副本只是让我知道…