rsync:仅删除时间戳早于源目录中最新文件的无关文件

rsync:仅删除时间戳早于源目录中最新文件的无关文件

我正在尝试使用 rsync 保持两个对等目录同步。我遇到的问题是,在同步发生之前,可以在任一目录中添加或删除新文件。

如果其中一个目录发生删除,则 --delete 选项会删除另一个目录上的该文件(前提是该目录首先被选为目标)。否则,如果最初选择包含过期文件的目录作为源,则该文件将被复制到我们之前从中删除它的目录中。

如果在一个目录中创建了一个文件并且该目录未被选为源,那么该文件将被 --delete 选项归类为无关文件并被删除,尽管它是一个有效的添加。

有没有办法根据时间戳进行更智能的删除或排除?如果没有,那么我只能将 rsync 视为主从工具,而无法应对对等关系。

答案1

您可以根据时间戳来破解 bash 脚本,使用CURL -I它来获取文件的头信息。

  1. 检查时间戳:

    curl -I http://somesite.com/somefolders/somefile.script | grep Date:
    Date: Fri, 11 Feb 2011 06:24:40 GMT
    
  2. 将时间转换为时间戳:

    date --utc --date "Fri, 11 Feb 2011 06:24:40 GMT" +%s
    
    1297405480
    
  3. 使用时间戳比较文件:

    if [[ time1 == time2 ]]; then curl (upload file)
    

我在 Dropbox 中找到了以下内容:http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/

相关内容