lsyncd - 특정 디렉토리를 포함하고 나머지는 제외하는 방법

lsyncd - 특정 디렉토리를 포함하고 나머지는 제외하는 방법

lsyncd 프로세스에 일부 디렉터리를 포함하고 나머지 모든 디렉터리를 제외하고 싶습니다.

하나의 디렉토리 아래에 너무 많은 디렉토리가 있습니다 multisource. lsyncd에 디렉토리만 포함 temp하고 temp1나머지는 모두 제외하고 싶습니다 .

/etc/lsyncd/lsyncd.conf.lua파일에서 다음 코드를 사용해 보았습니다.

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd.status"
}
sync {
        default.rsyncssh,
        source = "/var/www/html/multisource",
        host="user@<ip_address>",
        targetdir = "/var/www/html/multisource",
        delay     = 5,
        rsync = {
                perms = true,
                owner = true,
                group = true,
                --include = {"/temp", "/temp1"},
                --exclude = {"/*"}
        }
}

이것에 대한 생각이 있나요?

답변1

폴더에 있는 파일과 폴더를 복사하고 있지만 복사하고 싶지 않은 폴더가 /root/hive/data있다고 가정하고 다음을 수행합니다./root/hive/data/logs

파일을 생성 /etc/lsyncd/lsyncd.exclude하고 복사할 때 무시할 파일 내의 폴더/파일을 지정해야 합니다. 이 경우에는 다음이 /etc/lsyncd/lsyncd.exclude포함됩니다.

logs

상대 경로를 제공해야 합니다.

sync{}의 지시문은 /etc/lsyncd.conf다음과 같아야 합니다.

sync {
default.rsync,
source="/root/hive/data",
target="***.***.**.***:/root/hive/data",
excludeFrom="/etc/lsyncd.exclude",

rsync = {
compress = true,
acls = true,
verbose = true,
owner = true,
group = true,
perms = true,
rsh = "/usr/bin/ssh"
}
}

답변2

lsyncd.exlude아래 목록을 사용하는 것이 가장 좋습니다./etc/lsyncd/lsyncd.exclude

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd.status"
}
sync {
        default.rsyncssh,
        source = "/var/www/html/multisource",
        host="user@<ip_address>",
        targetdir = "/var/www/html/multisource",
        delay     = 5,
        excludeFrom = "/etc/lsyncd/lsyncd.exclude",
        rsync = {
                perms = true,
                owner = true,
                group = true,
                --include = {"/temp", "/temp1"},
                --exclude = {"/*"}
        }
}

관련 정보