我正在尝试备份一个包含多个文件夹和文件的文件夹到远程位置(将上传压缩文件)。是否有任何现有的脚本可以帮助我检查文件是否在上次备份日期之后被修改,并且只备份在此之后创建/修改的文件?当前数据大小约为1GB,每个月预计增加50MB-200MB。
另外,在特定日期提取文件状态的最佳方法是什么?
另外,在特定日期提取文件状态的最佳方法是什么?
我认为没有类似的东西存在。
首先,您需要一些递归函数来查找目录中的所有文件和所有子目录。有很多这种问题的示例。思路是递归使用scandir()函数
然后对于找到的每个文件,您需要检查该文件是否自上次备份以来已被修改,如果已被修改,则将其添加到备份文件列表中。您可以执行以下操作:
if (filemtime($filename) > $last_backup_time)
{
$files_to_backup[] = $filename;
}
最后,对于每个需要备份的文件,您只需使用copy()或ftp_put()函数复制或上传修改后的文件归档。
你可以考虑使用rdiff-backup代替rsync。它使用rsync技术,能够进行增量远程备份。Git也可以实现这一点,但缺点是你无法从仓库中删除旧的增量备份(因为Git的本质)。
我不明白为什么要自己编写解决方案,而其他优秀的解决方案已经存在。
rsync
绝对是这些东西中最好的,但我正在寻找能够在共享主机上无缝运行的东西。 - Dogbert