Вот как работают конвейеры. :Выходные данные левой команды отправляются в качестве входных данных для правой команды.
Если вы хотите запустить две команды одну за другой, используйте точку с запятой:
cat /var/log/messages ; date
Если вы хотите запустить вторую команду только в случае успеха первой, используйте&&
:
cat /var/log/messages && date
Если вы хотите запустить вторую команду только в случае сбоя первой, используйте||
:
cat /var/log/messages || date
Если вы хотите запустить первую команду в фоновом режиме и одновременно запустить вторую, используйте&
cat /var/log/messages & date
Лучше использовать список 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 = {"/*"}
}
}
Предположим, вы реплицируете файлы и папки, находящиеся в папке /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"
}
}