【问题标题】:Using rsync with RegEx将 rsync 与 RegEx 一起使用
【发布时间】:2014-11-11 14:33:45
【问题描述】:

我正在使用rsync 在 Linux 服务器和网络存储之间同步文件夹及其内容以备份文件。为此,我正在使用这行代码:

rsync -rltPuz -k --chmod=ugo+rwx --prune-empty-dirs --exclude=*backup* --exclude=*.zip --exclude=*.zip.bak --password-file=/rsync_pw.txt /source/ user@storage::Kunden/Jobs

此代码通过 crontab 在源上运行。一切正常。

但是现在我有一个小问题。我的目录是这样构建的:

  • 工作
    • 工作1
        • 所有新文件
      • 准备好了
        • 所有准备好的文件
    • 工作2
        • 所有新文件
      • 准备好了
        • 所有准备好的文件

我只需要同步所有准备好的文件夹及其内容。我尝试过使用--include--exclude,但我并没有真正得到我需要的东西。有没有办法告诉 rsync 我想要什么?

感谢您的宝贵时间!

【问题讨论】:

    标签: regex linux rsync


    【解决方案1】:

    您可以使用 find /path/to/Jobs -name ready 并将其输出通过管道传输到 rsync 或使用 find 选项 -exec 并将您的 rsync 调用放在那里。

    在您的示例中,最终命令将如下所示:

    find Jobs/ -name 'ready' -exec rsync -rltPuz -k --chmod=ugo+rwx --prune-empty-dirs --exclude=*backup* --exclude=*.zip --exclude=*.zip.bak {}/ dest \;
    

    在我的 ubuntu 上它可以工作:

    kammala@devuntu:~$ ls -R dest/
    dest/:
    kammala@devuntu:~$ ls -R Jobs/
    Jobs/:
    Job1  Job2
    
    Jobs/Job1:
    new  ready
    
    Jobs/Job1/new:
    new1.txt  new2.txt  some_new_backup.txt
    
    Jobs/Job1/ready:
    r1.txt  r2.txt  some_backup_file.txt
    
    Jobs/Job2:
    new  ready
    
    Jobs/Job2/new:
    new3.txt  new4.txt  zipped_bckp.zip.bak
    
    Jobs/Job2/ready:
    r4.txt  r5.txt  r6.txt  some_zipped_file.zip.bak
    kammala@devuntu:~$ find Jobs/ -name 'ready' -exec rsync -rltPuz -k --chmod=ugo+rwx --prune-empty-dirs --exclude=*backup* --exclude=*.zip --exclude=*.zip.bak {}/ dest \;
    building file list ... 
    3 files to consider
    ./
    r1.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
    r2.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=0/3)
    building file list ... 
    4 files to consider
    ./
    r4.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=2/4)
    r5.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=1/4)
    r6.txt
                  0 100%    0.00kB/s    0:00:00 (xfr#3, to-chk=0/4)
    kammala@devuntu:~$ ls -R dest
    dest:
    r1.txt  r2.txt  r4.txt  r5.txt  r6.txt
    

    【讨论】:

    • 太棒了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2017-02-27
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多