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 = {"/*"}
}
}