Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将一个rsync进程优先于另一个rsync进程?_Bash_Rsync - Fatal编程技术网

Bash 如何将一个rsync进程优先于另一个rsync进程?

Bash 如何将一个rsync进程优先于另一个rsync进程?,bash,rsync,Bash,Rsync,我有两个单独的cronjob在Red Hat实例上运行。两者都通过rsync将日志文件从远程服务器复制到实例。第一个cronjob运行rsync new.sh,它从服务器上的各个目录复制任何新的日志文件(从今天或昨天开始)。第二个cronjob运行rsync backfill.sh,它复制比昨天旧的日志文件。我分离了rsync进程,以便新文件总是能够快速复制,并且大型回填作业不会干扰新文件的复制 这通常有效,但以下情况除外:如果rsync backfill.sh已从文件夹复制旧文件,则rsync

我有两个单独的cronjob在Red Hat实例上运行。两者都通过rsync将日志文件从远程服务器复制到实例。第一个cronjob运行
rsync new.sh
,它从服务器上的各个目录复制任何新的日志文件(从今天或昨天开始)。第二个cronjob运行
rsync backfill.sh
,它复制比昨天旧的日志文件。我分离了rsync进程,以便新文件总是能够快速复制,并且大型回填作业不会干扰新文件的复制

这通常有效,但以下情况除外:如果
rsync backfill.sh
已从文件夹复制旧文件,则
rsync new.sh
将在
rsync backfill.sh
完成文件夹后才复制其文件

有没有办法将
rsync new.sh
中的rsync命令优先于
rsync backfill.sh
中的rsync命令?或者至少让rsync命令并行运行,以便总是快速复制新文件

以下是一般脚本结构:

rsync new.sh

以$表示的子目录的
(ls$SOURCEDIR)
做
rsyc-zt\
--排除自=$TRACKERFILE\
--out format=“%n”\
$SOURCEDIR/$SUBDIR/log-$TODAY*.log$DESTDIR/| tee-a$TRACKERFILE
完成
对于美元中的子目录(ls$SOURCEDIR)
做
rsyc-zt\
--排除自=$TRACKERFILE\
--out format=“%n”\
$SOURCEDIR/$SUBDIR/log-$forday*.log$DESTDIR/| tee-a$TRACKERFILE
完成
rsync backfill.sh

以$表示的子目录的
(ls$SOURCEDIR)
做
rsyc-zt\
--排除自=$TRACKERFILE\
--exclude=“log-$TODAY*.log”\
--exclude=“log-$dayed*.log”\
--out format=“%n”\
$SOURCEDIR/$SUBDIR/log-*.log$DESTDIR/| tee-a$TRACKERFILE
完成

这不是问题,只是巧合,其中一个目录的新日志文件直到回填完成后才同步(新日志文件刚好比回填文件大得多)


Cron在隔离的环境中运行作业,因此rsync进程之间没有交互。

在Cron中运行脚本时,可以尝试使用
nice
命令,请注意这些更改将影响整个系统,请参阅