gpt4 book ai didi

regex - 将 rsync 与 RegEx 结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:31 25 4
gpt4 key购买 nike

我正在使用 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 我想要什么?

感谢您的宝贵时间!

最佳答案

您可以使用find/path/to/Jobs -name read并将其输出通过管道传输到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

关于regex - 将 rsync 与 RegEx 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com