我有 ubuntu 14 headless 服务器,并且数据不断更新。我希望每 15 分钟备份一次到远程主机。我对远程主机没有太多访问权限,我只需要将文件放到上面。我已成功建立每 15 分钟运行一次的 FTP bash 脚本。现在我不想将相同的文件上传到远程主机。一旦文件上传,我不想将相同的文件上传到远程主机。我已经为 FTP 上传编写了 bash 脚本,但我不知道如何处理这种重复上传。
有些事
文件 /path/to/upload -maxdepth 1 -mtime 0.04 > path/to/filelist.txt
但这没有用,我的文件在 15 分钟内反复上传相同的文件(我已经在 15 分钟后设置了 cronjob)
请帮助我,我是 Linux 新手,一点小例子会很有用。
答案1
如果可以,请使用rsync
ftp。它就是为此而构建的,而且效率更高。
如果你必须使用 ftp,find
那么应该可以使用这个。尝试以下格式:
find /path/to/upload -maxdepth 1 -cmin -15
其中-15
表示少于 15 分钟前。+15
表示早于,并且15
恰好是 15 分钟前。
或者,您可以使用参考文件或时间戳(较新的版本支持该功能find
:
find /path/to/upload -maxdepth 1 -newerct $(date -Iseconds -d '15 minutes ago')
其中-newerct
是 的一种形式-newerXY
,使用引用的状态变化时间 ( c
),其中引用是一个简单的时间字符串 ( t
) 而不是被引用的文件,并且由 提供
date -Iseconds -d '15 minutes ago'
。
您可能需要谨慎备份也经常,具体取决于您的使用情况;或者您可以在发现有问题之前用坏数据覆盖好备份。
或者将多个增量备份添加到完整备份,这样您就可以选择回滚到不同的时间点。