Este é o comando clsync que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
clsync - ferramenta de sincronização ao vivo, escrita em GNU C
SINOPSE
clsync [ ... ] -- [ argumentos do manipulador de sincronização ]
DESCRIÇÃO
clsync executado manipulador de sincronização com argumentos apropriados em eventos FS no diretório
assistir-dir usando o inotify(7) ou outros subsistemas de monitoramento FS.
OPÇÕES
Estas opções podem ser passadas como argumentos ou usadas no arquivo de configuração.
Para desativar a opção numérica definida como zero:
=0
Para desativar a opção de string (por exemplo, caminho para o arquivo), defina como string vazia:
=
Além disso, você pode usar valores previamente definidos enquanto define novas opções. Substring % option_name%
será substituído pelo valor da opção previamente definido option_name. (Vejo CONFIGURAÇÃO
ARQUIVO)
argumentos do manipulador de sincronização aplica-se apenas aos modos:
simples, direto, shell, rsyncdirect, rsyncshell
Pôr argumentos do manipulador de sincronização no arquivo de configuração, use '-'. Um exemplo:
- = -aH --exclude-from% EXCLUDE-LIST% --include-from =% INCLUDE-LIST% --exclude '*'
% watch-dir% /% destination-dir% /
-C, --watch-dir assistir-dir
Diretório raiz a ser monitorado por clsync.
Requeridos.
-S, --manipulador de sincronização manipulador de sincronização
Caminho para manipulador de sincronização para ser usado para sincronização por clsync. (Vejo --modo)
É necessário para todos os modos, exceto "direto" e "rsyncdirect" [ver SYNC MANIPULADOR
MODOS]
-R, --arquivo de regras arquivo de regras
Caminho para arquivo com regras de filtro de objetos a serem monitorados. (Vejo REGRAS)
Não é definido por padrão.
-D, --destino-dir diretório de destino
Define o diretório para sincronizar para os modos "rsyncdirect", "rsyncso" e "so". (Vejo
--modo)
Não é definido por padrão.
-M, --modo modo
Define o modo de sincronização. Valores possíveis:
simples
chamadas manipulador de sincronização para cada evento
diretamente
chamadas manipulador de sincronização para cada sincronização, passando listas de arquivos como
argumentos
concha
chamadas manipulador de sincronização para cada sincronização com listas de arquivos em um arquivo
rsyncdirect
chama rsync por caminho manipulador de sincronização diretamente
rsyncshell
chamadas manipulador de sincronização que deveria executar rsync para cada sincronização
(modo recomendado) "
rsyncso
carrega objeto compartilhado por caminho manipulador de sincronização com abrir(3) e chamadas
função clsyncapi_rsync função para cada sincronização
so
carrega objeto compartilhado por caminho manipulador de sincronização com abrir(3) e chamadas
função clsyncapi_sync função para cada sincronização
See SYNC MANIPULADOR MODOS
Requeridos.
-b, --fundo
Daemonize, forçando clsync a fork () na inicialização.
Não é definido por padrão.
-H, --config-arquivo caminho do arquivo de configuração
Use a configuração do arquivo caminho do arquivo de configuração (Vejo CONFIGURAÇÃO ARQUIVO).
Defina como "/ NULL /" se nenhum arquivo de configuração deve ser lido.
Não é definido por padrão.
-K, --config-bloco nome do bloco de configuração
Usar bloco de configuração com nome nome do bloco de configuração (Vejo CONFIGURAÇÃO ARQUIVO).
O valor padrão é "default".
--config-block-herda nome-do-bloco-pai de configuração
Usar bloco de configuração com nome nome-do-bloco-pai de configuração como pai para
nome do bloco de configuração (Vejo CONFIGURAÇÃO ARQUIVO) Opções de nome-do-bloco-pai de configuração
será herdado para nome do bloco de configuração.
O valor padrão é "default".
--custom-signs sinais personalizados
Defina uma lista de sinais e nomes de blocos de configuração correspondentes. O bloco de configuração irá
ser usado na captura do sinal correspondente.
O formato é
sinal: nome do bloco de configuração [, sinal: nome do bloco de configuração [, ...]]
Por exemplo:
--custom-signs = 29: depuração, 28: normal
Nesta linha, os sinais "28" e "29" serão adicionados ao sighandler. E clsync
irá usar opções do bloco de configuração "debug" no sinal 29 e "normal" no sinal 28.
Para redefinir todos os sinais personalizados, use o sinal 0-th (por exemplo, "--custom-signs = 0").
O valor padrão é "".
-z, --pid-arquivo caminho para pidfile
Grava pid no arquivo por caminho caminho para pidfile.
Não é definido por padrão.
--arquivo de status caminho do arquivo de status
Escreva a descrição do status no arquivo com o caminho caminho do arquivo de status.
Status possíveis:
iniciando
inicialização de subsistemas e marcação de árvore de arquivos com monitor FS
subsistema
initsync
processando sincronização inicial
que ocorre
esperando por eventos ou sincronizando
sincronizador erro
esperando entre as tentativas de execução do synchandler (após uma falha) [é
usado apenas enquanto --rosqueamento= desligado]
refazer
recarregando arquivos de configuração
fio gc
executando coletor de lixo de threads
pré-saída
executando o - pré-saída-gancho
terminando
executando a última iteração (se necessário) e preparando-se para morrer
saindo
executando o --gancho de saída e limpando [para Valgrind(1)]
Não é definido por padrão.
-r, - tentativas número de tentativas
Limite de tentativas para sincronizar com manipulador de sincronização.
clsync vai morrer depois número de tentativas tentativas.
Para tentar definir infinito "0".
O atraso entre as tentativas é igual a --delay-sincronização valor.
O valor padrão é "1".
--ignore-falhas
Não morra em falhas de sincronização.
Não é definido por padrão.
--exit-on-sync-skip
Saia se algum evento puder ser ignorado por qualquer motivo.
Por exemplo, o FreeBSD tem uma fila de eventos BSM muito curta (1024). Então pode ser
transbordou e alguns eventos não podem subir para a fila. Esta opção força clsync para
sair se a fila tiver transbordado.
Não é definido por padrão.
-p, --rosqueamento modo de encadeamento
Use threads(7) para paralelizar os processos de sincronização. Por exemplo se clsync (com
--threading = off) já está sincronizando um arquivo enorme, então todas as outras sincronizações serão
suspenso até que a sincronização do arquivo enorme termine. Para evitar esta suspensão, você pode usar
modo de segmentação "seguro" ou "completo".
Valores possíveis:
WOW!
desative o encadeamento para processos de sincronização.
segura
paralelizar sincronizações, mas suspender sincronizações de objetos que já estão
sincronizando em outro processo (até que o processo termine).
cheio
paralelizar sincronizações sem suspensões.
Características:
WOW!
As novas modificações não serão sincronizadas até que as antigas terminem.
segura
Teoricamente é o melhor caminho. Mas pode utilizar muita CPU se
há muitas sincronizações paralelas simultâneas. (também desta forma não é
bem testado)
cheio
Pode causar várias sincronizações simultâneas do mesmo arquivo, que em
virar pode causar bug dentro manipulador de sincronização (ver abaixo).
Se você está correndo clsync com opção --threading = full em conjunção com rsync
com opção --cópia de segurança, você pode pegar um bug devido à falta de anatomia do arquivo rsync
substituir operação. (Vejo DIAGNÓSTICO)
O valor padrão é "off".
-Sim, --resultado destino de registro
Define o destino para a gravação do log (erros, avisos, informações e depuração).
Valores possíveis:
stderr
stdout
syslog
O valor padrão é "stderr".
--one-sistema de arquivos
Não siga para pontos de montagem de dispositivos diferentes. Esta opção apenas adiciona uma opção
"FTS_XDEV" para fts_open(3) função.
Atenção! Se você estiver usando esta opção (mas não --exclude-mount-points) clsync precisarão
escrever não inclui nem exclui o conteúdo dos pontos de montagem.
Isso pode causar problemas, por exemplo, você está usando rsync para o gerenciador de sincronização sem similar
opção "--um-file-system".
Não é definido por padrão.
-X, --exclude-pontos de montagem
Forças --one-sistema de arquivos mas também adiciona exclusões para não sincronizar os pontos de montagem.
Isso requer fazer estado(2) syscalls em cada diretório e pode reduzir o desempenho.
Não é definido por padrão.
--tomada caminho de soquete
Crie um soquete de controle por caminho caminho de soquete.
Este é um recurso muito experimental.
Não é definido por padrão.
--socket-próprio socket-owner-user [: socket-owner-group]
Define o usuário proprietário do soquete de controle (e grupo).
Não é definido por padrão
--socket-mod modo de soquete
Define o modo de soquete de controle [ver chmod(2)].
Não é definido por padrão.
- arquivo de espera caminho do arquivo em espera
Define o arquivo para o caminho que deve ser verificado antes de cada sincronização. Se o arquivo existir, a sincronização
será suspenso até que o arquivo seja excluído. Pode ser útil se você precisar congelar
diretório de destino durante a execução de alguns scripts.
Não é definido por padrão.
--max-iterações contagem de iterações
Define o limite de iterações de sincronização. Uma iteração significa um manipulador de sincronização
execução.
contagem de iterações
definido como 0 significa sem limite (loop infinito).
definido como 1 significa que apenas a sincronização inicial será feita
definido como n significa que apenas a sincronização inicial e (n-1) sincronizações depois disso serão
feito
Dica: Esta opção pode ser útil em conjunto com --exit-on-no-events para prevenir
processos de sincronização infinitos.
O valor padrão é "0".
- assinatura de modificação máscara de assinatura
Define a assinatura de nova verificação de modificação de arquivo / diretório. Se o arquivo não for modificado (de acordo com
a assinatura), então não sincronize.
See struct estado in lstat(2) para campos possíveis.
Por exemplo razoável máscara de assinatura-s pode ser
"dev, ino, mode, uid, gid, rdev, size, atime, mtime, ctime" (há um alias para isso -
"*") ou "uid, gid".
Exemplos de casos de uso:
chown / chmod
Se você estiver usando clsync para fixar privilégios de arquivo / dir [usando chown(1)
e / ou chmod(1)] do que a assinatura razoável será "uid, gid".
Exemplo completo: clsync -w5 -t5 -T5 -x1 -W
/var/www/site.example.org/root -Mdirect -Schown --uid 0 --gid 0
-Ysyslog -b1 - uid de assinatura de modificação, gid - --from = root
www-data: www-data% INCLUDE-LIST%
bidirecional sincronização
Se você for configurar a sincronização bidirecional, poderá usar
--modification-signature "*" para evitar o loop de sincronização entre os servidores.
Não suficiente CPU
Se o rsync consome muita CPU com a verificação de hashsums de arquivos em seus
dry open () / close () devido a algum script hacky (por exemplo "chown -R
www-data: www-data "no cron), então você pode usar --modification-signature
"dev, ino, mode, uid, gid, rdev, size, atime, mtime" (sem "blksize",
"blocks", "nlink" e "ctime").
Atenção! Este opção pode comer a lote of memória on enorme lima árvores.
Esta opção não pode ser usada junto com "--cancel-syscalls = mon_stat"
Para desabilitar a verificação de modificação de arquivo / diretório, use um valor vazio - "".
O valor padrão é "".
-k, --timeout-sincronização tempo limite de sincronização
Define o tempo limite para os processos de sincronização. clsync morrerá se o processo de sincronização estiver mais vivo
do que tempo limite de sincronização segundos.
Defina "0" para desativar o tempo limite.
O valor padrão é "86400" ["24 horas"].
-C, --delay-sincronização atraso adicional
Define o atraso mínimo (em segundos) entre as sincronizações.
O valor padrão é "30".
-t, - atrasar-coletar atraso normal
Define o atraso (em segundos) para coletar eventos sobre arquivos e diretórios comuns.
O valor padrão é "30".
-T, --delay-collect-bigfile atraso de bigfiles
Define o atraso (em segundos) para coletar eventos sobre "arquivos grandes" (consulte
--threshold-bigfile).
O valor padrão é "1800".
-B, --threshold-bigfile limite de tamanho de arquivo
Define o limite de tamanho de arquivo (em bytes) que separa arquivos comuns de "arquivos grandes".
Os eventos sobre "arquivos grandes" são processados em outra fila com uma coleta separada
atraso. Isso deve ser usado como um meio de descarregar recursos de E / S.
Para desativar a detecção de "arquivos grandes", defina "0" (zero). Isso pode melhorar o desempenho por
removendo a necessidade em syscall lstat () extra.
O valor padrão é "134217728" ["128 MiB"].
--cancel-syscalls máscara de syscalls
Define syscalls a serem ignorados. Isso pode ser usado para espremer mais desempenho.
Valores possíveis:
mon_stat
Pule as chamadas lstat () ao manipular eventos de arquivos / dirs. Isto faz
impossível determinar o tamanho dos arquivos (que é usado por
--threshold-bigfile opção) e usar a opção
- assinatura de modificação.
Você pode combinar esses valores usando vírgulas.
Para desativar esta opção, basta usar o valor vazio - "".
O valor padrão é "".
-EU, --lists-dir caminho-tmpdir
Define o caminho do diretório para a saída de arquivos de listas de eventos temporários.
See SYNC MANIPULADOR MODOS.
Não é definido por padrão.
--have-sincronização recursiva
Use a ação "recursivesync" em vez de "synclist" para diretórios que eram apenas
marcado (ver SYNC MANIPULADOR MODOS casas concha).
Não é definido por padrão.
--synclist-simplificar
Remove os 3 primeiros parâmetros nos arquivos de lista da ação "synclist" (ver SYNC MANIPULADOR
MODOS casas concha).
Não é definido por padrão.
--rsync-inclimit rsync-inclui-line-limit
Define o limite flexível para a contagem de linhas em arquivos por caminho caminho da lista rsync. Infelizmente,
O rsync funciona muito lentamente com arquivos "--include-from" enormes. Então, clsync divide isso
lista com aproximadamente rsync-inclui-line-limit linhas por lista se for muito grande,
e é executado por uma instância rsync por parte da lista. Use o valor "0" para desabilitar o
limite.
O valor padrão é "20000".
--rsync-prefer-include
Forças clsync preferir um método de "muitos inclui" em vez de um "exclui + inclui"
para rsync na sincronização recursiva.
Veja os casos rsyncshell, rsyncdirect e rsyncso of SYNC MANIPULADOR MODOS.
Esta opção não é recomendada.
Não é definido por padrão.
-x, --ignore-código de saída código de saída
Forças clsync para não processar o código de saída código de saída of manipulador de sincronização como um erro. Vocês
pode definir vários ignora passando esta opção várias vezes.
Os valores recomendados para o caso rsync são "24". Você pode definir vários valores com listagem
várias opções "-x" (por exemplo, "-x 23 -x 24") ou por meio de vírgulas (por exemplo, "-x 23,24"). Derrubar
a lista usa código de saída zero (por exemplo, "-x 0"). Por exemplo, você pode usar "-x 0,23" para soltar
a lista e definir o código de saída "23" para ser ignorado.
Não é definido por padrão (ou igualmente é definido como "0").
-VOCÊ, --não-desvincule-listas
Não apague os arquivos de lista após manipulador de sincronização terminou.
Isso pode ser usado para fins de depuração.
Não é definido por padrão.
--fts-otimização experimental
Habilite recursos experimentais para otimizar a verificação da árvore de arquivos ao usar STF(3).
Os recursos serão habilitados por padrão após o teste apropriado.
No momento, a opção não faz nada, mas pode ser usada no futuro.
Não é definido por padrão.
-F, -- full-initialsync
Ignorar regras de filtro de arquivo de regras na sincronização inicial.
Isso pode ser útil para um início rápido ou, por exemplo, se for necessário para sincronizar "/ var / log /"
árvore, mas não sincroniza todas as alterações a partir daí.
Não é definido por padrão.
--only-initialsync
Saia após a sincronização inicial no início do clsync.
Não é definido por padrão.
--exit-on-no-eventos
Saia se não houver eventos. Funciona como --only-initialsync, mas também sincroniza eventos
coletados durante a sincronização inicial.
Diferentemente dos --only-initialsync esta opção usa subsistema de monitor FS para monitorar novos
eventos durante a sincronização inicial. Isso pode reduzir o desempenho. Por outro lado
desta forma pode ser usado para ter certeza, que tudo está sincronizado no momento anterior
clsync será encerrado.
Não é definido por padrão.
--skip-initialsync
Pule a sincronização inicial no início do clsync.
Não é definido por padrão.
--gancho de saída programa-caminho-de-saída-gancho
Define o caminho do programa a ser executado na saída do clsync.
Se este parâmetro for definido, o clsync executará na saída:
programa-caminho-de-saída-gancho rótulo
A execução será ignorada se a sincronização inicial não for concluída.
Não é definido por padrão.
- pré-saída-gancho programa-caminho-de-pré-saída-gancho
Define o caminho do programa a ser executado antes da última iteração de sincronização (ver
--max-iterações, --exit-on-no-eventos e SINAIS).
Se este parâmetro for definido, o clsync executará na saída:
programa-caminho-de-pré-saída-gancho rótulo
A execução será ignorada se a sincronização inicial não for concluída.
If clsync termina devido a --exit-on-no-eventos e - pré-saída-gancho é definido então o
O gancho de pré-saída será executado e a iteração de sincronização adicional será acionada.
Não é definido por padrão.
-dentro, --verbose
Essa opção deve aumentar o detalhamento. Mas no momento não há
"saída detalhada" no código, portanto, a opção não faz nada. :)
Não é definido por padrão.
-d, --depurar
Aumenta a saída de depuração. Isso pode ser fornecido várias vezes para mais depuração
informações, até um máximo de cinco sinalizadores "d" (mais não fará nada), por exemplo
"-d -d -d -d -d" ou "-d5" (casos equivalentes)
Não é definido por padrão.
--dump-dir
Diretório para escrever informações de instância do clsync pelo sinal 29 (ver SINAIS). O
diretório não deve existir antes de despejar.
É definido como "/ tmp / clsync-dump-% label%" por padrão.
-q, --quieto
Suprime mensagens de erro.
Não é definido por padrão.
--monitor monitor-subsistema
Alterna o subsistema do monitor FS.
Valores possíveis:
inotify
inotify(7) [Linux, (FreeBSD via libinotify)]
Subsistema de monitores Linux FS nativo, rápido, confiável e bem testado.
Não há lucro de desempenho essencial para usar "inotify" em vez de
"kevent" no FreeBSD usando "libinotify". É backends para "kevent"
de qualquer maneira.
Usuários do FreeBSD: O libinotify no FreeBSD ainda não está pronto e
inutilizável para clsync para sincronizar muitos arquivos e diretórios.
gio
Use gio biblioteca.
Plataforma cruzada e biblioteca testada que faz backends para kqueue no FreeBSD
e inotify no Linux. Ver inotify e kqueue seções aqui para
Detalhes.
Não bem testado. Use com Cuidado!
kqueue
kqueue(2) [FreeBSD, (Linux via libkqueue)]
Um mecanismo de notificação de eventos de kernel BSD (incluindo temporizador, sockets,
arquivos etc).
Este subsistema de monitor não pode determinar o evento de criação de arquivo, mas
pode determinar um diretório onde algo aconteceu. Então clsync eu barbeio
para verificar novamente o diretório inteiro sempre que houver qualquer alteração de conteúdo. Além disso,
O kqueue requer um open () em cada arquivo / diretório monitorado. Mas FreeBSD
não permite o próprio open () link simbólico (sem seguir) e é
de forma altamente invasiva para abrir () tubos e dispositivos. Então clsync só não vai
chame open () em tudo, exceto arquivos e diretórios regulares.
Consequentemente, clsync não pode determinar se algo mudou em
link simbólico / pipe / socket e assim por diante. No entanto, ainda pode determinar se
será criado ou excluído observando o diretório pai e
examinando-o novamente em cada evento apropriado.
Além disso, esta API requer a abertura de todos os arquivos e diretórios monitorados. Então
pode produzir uma grande quantidade de descritores de arquivo. Tenha certeza disso
arquivos kern.max é grande o suficiente (no FreeBSD).
CPU / HDD cara.
Não bem testado. Use com Cuidado!
Usuários do Linux: o libkqueue no Linux não está funcionando. Ele Ele :)
BSM
BSM(3) [FreeBSD]
API de auditoria do Basic Security Module (BSM).
Este não é um subsistema de monitor FS, na verdade. É apenas uma API para
acesso a informações de auditoria (incluindo logs). clsync pode configurar auditoria para
assistir eventos FS e relatá-los no log. Depois disso clsync vai apenas
analise o log via tubo de auditoria(4) [FreeBSD].
Confiável, mas de forma hacky. Requer reconfiguração de auditoria global
que pode hopple análise de auditoria.
Atenção! O FreeBSD tem um limite para eventos enfileirados. No FreeBSD padrão
kernel são apenas 1024 eventos. Então escolha um de:
- Para corrigir o kernel para aumentar o limite.
- Não use clsync em sistemas com muitos eventos de arquivo.
- Usar bsm_prefetch modo (mas não há garantia neste caso
de qualquer forma).
Veja também a opção --exit-on-sync-skip.
Não bem testado. Use com Cuidado! Também arquivo
/ etc / security / audit_control será substituído por:
#clsync
dir: / var / audit
sinalizadores: fc, fd, fw, fm, cl
minfree: 0
naflags: fc, fd, fw, fm, cl
política: cnt
arquivosz: 1M
a menos que já comece com "#clsync \ n" ("\ n" é uma nova linha
personagem).
bsm_prefetch
O mesmo que BSM mas todos os eventos BSM serão pré-buscados por um
thread adicional para evitar o estouro da fila BSM. Isso pode utilizar um
muita memória em sistemas com alta frequência de eventos FS.
No entanto, o thread pode não ser rápido o suficiente para descarregar o BSM do kernel
fila. Portanto, pode transbordar de qualquer maneira.
O valor padrão no Linux é "inotify". O valor padrão no FreeBSD é "kqueue".
-eu, --rótulo rótulo
Define um rótulo para esta instância de clsync. o rótulo será passado para manipulador de sincronização
cada execução.
O valor padrão é "nolabel".
-h, --Socorro
Exibe a lista de opções e sai com o código de saída "0".
Não é definido por padrão.
-V, --versão
Exibe a versão clsync e sai com o código de saída "0".
Não é definido por padrão.
--cgroup-nome do grupo nome do grupo cg
Definir o nome do grupo cgroup [ver cgroup_new_cgroup()].
Está definido como "clsync /% PID%" por padrão.
SEGURANÇA OPÇÕES
--divisão segura
Implica "--splitting = process --check-execvp-arguments --seccomp-filter
--forbid-devices "
-você, --uid uid
Abandone os privilégios do usuário para uid uid com definir tempo(2)
Se houver um capacidades(7) suporte, então o valor padrão é "ninguém" (ou "65534"
se "ninguém" não for encontrado), caso contrário, a opção não é definida por padrão;
-g, --gid guia
Abandone os privilégios do grupo para gid guia com setgid(2)
Se houver um capacidades(7) suporte, então o valor padrão é "nogroup" (ou
"65534" se "nogroup" não for encontrado), caso contrário, a opção não é definida por padrão;
--privilegiado-uid manipulador de sincronização-uid
Um ID de usuário a ser usado para o processo privilegiado (consulte --splitting = processo).
O valor padrão é "$ UID".
--privilegiado-gid manipulador de sincronização-gid
Um ID de grupo a ser usado para o processo privilegiado (ver --splitting = processo).
O valor padrão é "$ GID".
--sync-handler-uid manipulador de sincronização-uid
Um ID de usuário a ser usado para manipulador de sincronização.
See --preserve-recursos.
O valor padrão é o mesmo de --privilegiado-uid.
--sync-handler-gid manipulador de sincronização-gid
Um ID de grupo a ser usado para manipulador de sincronização.
See --preserve-recursos.
O valor padrão é o mesmo de --privilegiado-gid.
-C, --preserve-recursos lista de capacidades
[Linux só, exige capacidades]
Use capeta(2) e prctl(2) para preservar "CAP_DAC_READ_SEARCH", "CAP_SETUID" ou / e
"CAP_SETGID" [ver capacidades(7)] Capacidade do Linux para o processo usando STF(3)
inotify(7) e execvo(2) Isso permite a preservação de privilégios FS suficientes para
observe uma árvore de arquivos e execute o manipulador de sincronização com uid e gid necessários [ver
--sync-handler-uid e --sync-handler-gid] depois de descartar privilégios por meio de definir tempo(2)
e setgid(2) [ver --uid e --gid]
Valores possíveis:
CAP_DAC_READ_SEARCH
Para contornar verificações de leitura FS (para STF e inotify).
CAP_SETUID
Para poder usar definir tempo(2) antes execvo(2) no manipulador de sincronização.
CAP_SETGID
Para poder usar setgid(2) antes execvo(2) no manipulador de sincronização.
CAP_KILL
Ser capaz de matar processos setuid () - ed
Quaisquer combinações desses valores também são suportadas. A lista pode ser
apresentados como valores separados por vírgulas, como:
CAP_DAC_READ_SEARCH, CAP_SETUID, CAP_SETGID
O valor padrão é "CAP_DAC_READ_SEARCH, CAP_SETUID, CAP_SETGID, CAP_KILL" se o
clsync corredor tem esses privilégios.
--inherit-capacity
[Linux só, exige capacidades]
Define um modo de herança de recursos.
Valores possíveis:
permitido
Herda todos os recursos permitidos
não toque
Não altere o conjunto de recursos herdáveis
clsync
Use clsyncconjunto de capacidades efetivas de
vazio
Redefinir todos os recursos
O valor padrão é "vazio".
--dividindo tipo de divisão
Divida o processo / thread em privilegiados e não privilegiados. Esta é uma forma adicional
para proteger seu sistema de qualquer bug em clsync enquanto o executa com recursos ou
privilégios de root. Mas clsync pode utilizar em algumas vezes mais recursos da CPU. Então é um
equilíbrio entre desempenho e segurança.
Você pode reduzir essencialmente a sobrecarga usando "travas de alta carga"
("--enable-highload-locks" do arquivo "./configure").
Se você estiver usando esta opção e executando o manipulador de sincronização com o usuário root então
é altamente recomendado habilitar --check-execvp-argumentos, também. Caso contrário, no caso
of clsync bug de segurança um hacker será capaz de usar execvp () com quaisquer argumentos
com privilégios de root.
Valores possíveis:
WOW!
Desativar esse recurso
fio
[Linux só, exige capacidades]
Cria um thread separado para operações privilegiadas.
É altamente recomendado habilitar --seccomp-filtro nesse caso. Mas
isso vai proibir --rosqueamento.
processo
Forma mais segura e portátil, mas usa processos separados e:
- proíbe fanotify (que ainda não está implementado de qualquer maneira);
- código mais complexo (e maior probabilidade de erro).
- mais lento devido à cópia de dados entre a memória privada e a compartilhada
Páginas.
Recomendado.
Está definido como "desligado" por padrão.
--check-execvp-argumentos
[Requer --splitting = [thread | processo]]
[Blocos --mode = direct]
Habilita a verificação dos argumentos execvp () no processo privilegiado (no caso de seus
substituição a quaisquer argumentos fornecidos pelo exploit).
Esta opção não utiliza muitos recursos da CPU, mas proíbe a alteração do tempo de execução
argumentos do manipulador de sincronização e caminhos de arquivo de gancho.
Esta opção não pode ser usada em conjunto com --modo= direto devido a um arbitrário
número de argumentos neste modo.
Não é definido por padrão.
--add-allowed-hook-files [caminho do gancho0, [caminho do gancho1 [, ...]]]
[Requer --check-execvp-argumentos]
Adiciona caminhos à lista de caminhos de gancho permitidos para ignorar --check-execvp-argumentos
Verificações. Pode ser necessário se você for alterar os ganchos em tempo de execução usando
--custom-signs or --tomada.
Não é definido por padrão.
--seccomp-filtro
[Linux somente]
Use segundo filtro para proibir syscalls que não deveriam ser usados por clsync.
Proibir todas as chamadas para processos / threads não privilegiados, mas
futex inotify_init1 alerta stat fstat lstat abrir escrever fechar esperar4 desvincular
tgkill clock_gettime rt_sigreturn brk mmap munmap wait4 rmdir exit_group
selecionar ler rt_sigprocmask rt_sigaction nanosleep
Não é definido por padrão.
--permit-mprotect
[Requer --seccomp-filtro]
Permitem proteger(2) chamada de sistema.
Esta syscall é exigida por pthread_create(3), então é necessário para --rosqueamento.
Torna --shm-mprotect inútil.
Também permite a capacidade de alterar a memória de thread privilegiado de não privilegiado,
então usando de --splitting = thread com esta opção também é inútil.
É definido como "0" por padrão se --splitting estiver definido. Caso contrário, "1".
--shm-mprotect
[Requer --splitting = processo]
Proíba a escrita ou leitura de / para a memória compartilhada quando não deveria. proteger(2)
é usado para a proteção.
Esta opção é inútil enquanto --permit-mprotect está ativado.
--chroot diretório chroot
clsync chroot () - s [ver chroot(2)] para o diretório diretório chroot antes de qualquer sincronização
processos.
Esta opção pode ser usada em conjunto com --uid, --gid ou e --raiz-pivô for
razões de segurança.
Lembrar! Se você estiver fazendo chroot () - em algum lugar, o manipulador de sincronização será limitado pelo
ambiente chroot também. Se você estiver usando rsync, você pode querer "montar --bind"
alguns diretórios para o diretório chroot.
Não é definido por padrão.
--raiz-pivô caminho da raiz pivô
[Linux só, exige --chroot]
Define uma maneira de usar pivot_root(2) syscall para o diretório chroot (para umount(2) antigo
rootfs).
Valores possíveis:
auto
Cria um diretório "/ dev / shm / clsync-rootfs", descompartilhar(2) -ing o
montar namespace, montar(2) -s o diretório chroot para o diretório e
então pivot_root(2) -ing, chroot(2) -ing e umount(2) -ing rootfs antigos.
O diretório "/ dev / shm / clsync-rootfs" não será excluído após clsync
terminar.
ro automático
O mesmo que auto mas monta o diretório com opção somente leitura
(MS_RDONLY).
diretamente
descompartilhar(2) -ing o namespace de montagem, pivot_root(2) -ing, chroot(2) -ing
e umount(2) -ing rootfs antigos. O diretório "old_root" deve ser criado
in diretório chroot antes de correr clsync neste modo.
WOW!
não pivot_root(2).
O valor padrão é "off". Se --chroot é usado, então o valor recomendado é
"auto-ro".
--pontos de montagem [ponto de montagem [, ponto de montagem [, ponto de montagem]]]
[Linux somente]
Umount (com MNT_DETACH) tudo, exceto os pontos de montagem listados.
Supostamente para ser usado por razões de segurança como uma alternativa para --raiz-pivô opção.
Não é definido por padrão.
--detach-rede desanexar-modo de rede
[Linux somente]
Remove rede em clsync instância.
Valores possíveis:
EVERYWHERE
Remove a rede para todos os processos.
não privilegiado
Remove a rede do processo não privilegiado se a opção
- divisão de processo está habilitado, caso contrário, não faz nada.
WOW!
Não faça nada.
O valor padrão é "sem privilégios".
--detach-ipc
[Linux somente]
Crie um próprio namespace IPC.
É definido por padrão.
--detach-miscelânea
[Linux somente]
descompartilhar(2) em tudo o que não está listado acima.
Não é definido por padrão.
--proibir-dispositivos
[Linux somente]
Proibir qualquer acesso a todos os dispositivos, exceto os listados:
acesso de leitura a:
/ dev / console
/ dev / zero
/ Dev / urandom
/ dev / random
acesso de escrita a:
/ dev / console
/ dev / null
Não é definido por padrão.
PERFORMANCE
Recomendações para melhorar o desempenho:
- Desative a divisão de thread / processo.
- Não use regras clsync (use regras no lado do manipulador de sincronização) ou / e use a opção
"--full-initialsync"
- Use a opção "-B0".
- Use a opção "--cancel-syscalls = mon_stat".
- Use a opção "-p safe" ou "-p full".
- Desabilite a depuração com "-d0" ou desabilite melhor o suporte à depuração com
"./configure" opção "--enable-debug = no"
- Não use a opção "--exclude-mount-points"
- Memória livre para cache de disco
Você não deve seguir todas essas recomendações com os olhos vendados. Você deve usar apenas as ideias que
corrige problemas de desempenho em seu caso de uso específico. E só se for necessário.
SYNC MANIPULADOR MODOS
clsync executado manipulador de sincronização que deveria cuidar do processo de sincronização real.
portanto clsync é apenas uma maneira conveniente de executar um script de sincronização.
clsync pode correr manipulador de sincronização de sete maneiras. Qual caminho será usado depende do especificado
modo (ver --modo)
argumentos do manipulador de sincronização são usados apenas nos modos:
simples
diretamente
concha
rsyncdirect
rsyncshell
If argumentos do manipulador de sincronização não estão configurados, então a configuração padrão é usada (veja abaixo).
casas simples
Executa para cada arquivo / diretório de sincronização:
manipulador de sincronização argumentos do manipulador de sincronização
Padrão argumentos do manipulador de sincronização como:
sincronizar %rótulo% % EVENT-MASK% % INCLUDE-LIST%
Neste caso, manipulador de sincronização deve sincronizar arquivos ou diretórios de forma não recursiva por
caminho % INCLUDE-LIST%. Com % EVENT-MASK% passou a máscara de bits de eventos com o arquivo
ou diretório (consulte "/usr/include/linux/inotify.h").
Substituições adicionais:
% EVENT-MASK%
É substituído por um número inteiro de IDs de eventos.
% INCLUDE-LIST%
É substituído pelo caminho absoluto de um arquivo / diretório a ser sincronizado.
casas diretamente
Executa para cada sincronização:
manipulador de sincronização argumentos do manipulador de sincronização
Padrão argumentos do manipulador de sincronização como:
% INCLUDE-LIST%% destination-dir% /
Substituições adicionais:
% INCLUDE-LIST%
É substituído por uma lista de caminhos relativos de arquivos / diretórios a serem sincronizados.
casas concha
Executa para cada sincronização (se sincronização recursiva não é usado no lugar):
manipulador de sincronização argumentos do manipulador de sincronização
Padrão argumentos do manipulador de sincronização como:
synclist% label%% INCLUDE-LIST-PATH%
Padrão argumentos do manipulador de sincronização para sincronização inicial se --have-sincronização recursiva é definida
como:
initialsync% label%% INCLUDE-LIST%
Neste caso, manipulador de sincronização deve sincronizar arquivos de forma não recursiva e
diretórios da lista em um arquivo por caminho% INCLUDE-LIST-PATH% em "synclist".
tb manipulador de sincronização deve sincronizar recursivamente os dados do diretório por caminho
% INCLUDE-LIST-PATH% com manual excluindo arquivos extras em "initialsync".
Substituições adicionais:
%MODELO%
É substituído por "sync" / "initialsync".
% INCLUDE-LIST-PATH%
É substituído pelo caminho do arquivo de lista de inclusão.
% INCLUDE-LIST%
É substituído por uma lista de caminhos relativos de arquivos / diretórios a serem sincronizados.
Não recomendado. Não foi bem testado.
casas rsyncdirect
Executa para cada sincronização:
manipulador de sincronização argumentos do manipulador de sincronização
manipulador de sincronização é suposto ser um caminho para rsync binário.
Padrão argumentos do manipulador de sincronização como:
-aH --delete --exclude-from% EXCLUDE-LIST-PATH% --include-from
% INCLUDE-LIST-PATH% --exclude = '*'% watch-dir% /% destination-dir% /
se opção --rsync - prefer-include não está definido e
-aH --delete --include-from% INCLUDE-LIST-PATH% --exclude = '*'% watch-dir% /
% destination-dir% /
se a opção estiver definida
Código de erro "24" de manipulador de sincronização será ignorado neste caso. Nós também recomendamos
para ignorar o código de saída "23".
Substituições adicionais:
% INCLUDE-LIST-PATH%
É substituído pelo caminho do arquivo da lista de inclusão
% EXCLUDE-LIST-PATH%
É substituído pelo caminho do arquivo da lista de exclusão
% RSYNC-ARGS%
É substituído por padrão argumentos do manipulador de sincronização, Mas sem
"% watch-dir% /% destination-dir% /"
Caso recomendado.
casas rsyncshell
Executa para cada sincronização:
manipulador de sincronização argumentos do manipulador de sincronização
Padrão argumentos do manipulador de sincronização como:
rsynclist% label%% INCLUDE-LIST-PATH% [% EXCLUDE-LIST-PATH%]
Neste caso, manipulador de sincronização deve executar o aplicativo "rsync" com os parâmetros:
-aH --delete-antes --incluir-de % INCLUDE-LIST-PATH% --excluir '*'
se opção --rsync-prefer-include está ativado.
E com parâmetros:
-aH --delete-antes --excluir-de % EXCLUDE-LIST-PATH% --incluir-de
% INCLUDE-LIST-PATH% --excluir '*'
se opção --rsync-prefer-include está desabilitado.
Substituições adicionais:
% INCLUDE-LIST-PATH%
É substituído pelo caminho do arquivo de lista de inclusão rsync
% EXCLUDE-LIST-PATH%
É substituído pelo caminho do arquivo de lista de exclusão rsync
Caso recomendado.
casas rsyncso
Nesse caso, não há chamada exec * () direta. Nesse caso clsync cargas sincronizar-
treinador como uma biblioteca compartilhada com abrir(3) e chama a função "int
clsyncapi_rsync (const char * inclist, const char * exclist) "dele para cada sincronização.
inclinar é um caminho para o arquivo com regras para a opção "--include-from" do rsync. Esse
argumento nem sempre é NULL.
excluir é um caminho para o arquivo com regras para a opção "--exclude-from" do rsync. Esse
argumento é NULL se --rsync-prefer-include é definido.
Exclui toma precedência Acima de inclui.
Também podem ser definidas as funções "int clsyncapi_init (ctx_t *, indexes_t *)" e "int
clsyncapi_deinit () "para inicializar e desinicializar o processo de sincronização por este
objeto compartilhado.
Para bifurcar o processo deve ser usada a função "pid_t clsyncapi_fork (ctx_t *)" ao invés
de "pid_t fork ()" para fazer clsync ser capaz de matar a criança.
Veja o arquivo de exemplo "clsync-synchandler-rsyncso.c".
Caso recomendado.
casas so
Nesse caso, não há chamada exec * () direta. Nesse caso clsync cargas sincronizar-
treinador como uma biblioteca compartilhada com abrir(3) e chama a função "int
clsyncapi_sync (int n, api_eventinfo_t * ei) "dele para cada sincronização. n é o número de
elementos de ei. ei é uma série de estruturas com informações sobre o quê e como
para sincronizar (veja abaixo).
api_eventinfo_t é uma estrutura:
estrutura api_eventinfo {
uint32_t evmask; // evento bitmask para arquivo / dir por
caminho caminho.
uint32_t flags; // sinalizadores de "como sincronizar" o
arquivo / dir
size_t path_len; // strlen (caminho)
const char * path; // a caminho para arquivo / dir precisa ser
sincronizado
eventobjtype_t objtype_old; // tipo de objeto por caminho caminho
antes do evento.
eventobjtype_t objtype_new; // tipo de objeto por caminho caminho depois de
o evento.
};
typedef struct api_eventinfo api_eventinfo_t;
Os valores do bitmask do evento (evmask) podem ser aprendidos com
"/usr/include/linux/inotify.h".
Pode haver próximos valores de sinalizadores (sinalizadores):
enum eventinfo_flags {
EVIF_NONE = 0x00000000, // Sem modificador
EVIF_RECURSIVELY = 0x00000001 // sincronizar o arquivo / dir recursivamente
};
A bandeira "EVIF_RECURSIVELY" pode ser usada se a opção --have-sincronização recursiva é definido.
É um arquivo ou diretório por caminho caminho pode ser determinado com tipo_obj_old e
objtype_new.
tipo_obj_old relatórios sobre qual tipo era o objeto pelo caminho antes do evento.
objtype_new relatórios sobre qual tipo se tornou o objeto pelo caminho após o evento.
tipo_obj_old e objtype_new tem tipo eventoobjtype_t.
enum eventoobjtype {
EOT_UNKNOWN = 0, // Desconhecido
EOT_DOESNTEXIST = 1, // Não existe (ainda não criado ou já
excluído)
EOT_FILE = 2, // Arquivo
EOT_DIR = 3, // Diretório
} typedef enum eventobjtype eventobjtype_t;
Também podem ser definidas as funções "int clsyncapi_init (options_t *, indexes_t *)" e
"int clsyncapi_deinit ()" para inicializar e desinicializar o processo de sincronização por este
objeto compartilhado.
Para bifurcar o processo deve ser usada a função "pid_t clsyncapi_fork (options_t *)"
em vez de "pid_t fork ()" para fazer clsync ser capaz de matar o filho.
Veja o arquivo de exemplo "clsync-synchandler-so.c".
Caso recomendado.
MEIO AMBIENTE VARIÁVEIS
Variáveis de saída - variáveis que são definidas por clsync antes de chamar manipulador de sincronização.
saída variáveis
CLSYNC_STATUS - clsyncstatus de (veja os possíveis status na descrição de
--arquivo de status)
CLSYNC_ITERATION - contagem de iterações de sincronização feitas após a sincronização inicial, consulte
opção --max-iterations
REGRAS
As regras de filtro podem ser usadas para definir quais eventos o clsync deve monitorar e quais eventos ele
deve ignorar.
Cuidado! Essas regras não garantem que o arquivo / diretório filtrado não seja sincronizado. Isso pode
ocorrer porque o arquivo ou diretório pode aparecer no momento de manipulador de sincronização correndo (ou depois
mas antes do manipulador de sincronização chegará ao diretório), então será tarde demais para adicionar um
exclusão. Se você precisa de uma garantia de prevenção de sincronização de arquivos, você pode usar um filtro interno
regras do manipulador de sincronização programa (por exemplo, rsync tem opções "--exclude",
"--exclude-from" e "--filter") ou desabilite qualquer sincronização "recursiva" em clsync (E
remova a opção "-av" do rsync se for usada). Para desativar as sincronizações recursivas, você pode usar:
simples
Já não recursivo
diretamente
Já não recursivo
concha
Não habilite a opção --have-recursive-sync.
rsyncdirect
Use a opção --rsync-prefer-include e set argumentos do manipulador de sincronização para -lptgoD
--delete --include-from% INCLUDE-LIST-PATH% --exclude = '*'% watch-dir% /
% destination-dir% /
rsyncshell
Use a opção --rsync-prefer-include.
rsyncso
Use a opção --rsync-prefer-include.
so
Não habilite a opção --have-recursive-sync.
As regras de filtro podem ser colocadas em arquivo de regras com uma regra por linha.
Formato da regra: [+ -] [fdw *] regexp
+ - os meios incluem; - - significa excluir; f - significa arquivo; d - significa diretório; w - significa
caminhando para o diretório; * - significa tudo.
Por exemplo: - * ^ / [Tt] est
Não é recomendado usar w regras nos modos "rsyncdirect", "rsyncshell" e "rsyncso".
rsync(1) permite definir a sincronização e caminhar apenas juntos nas regras "--include"
("--files-from" não é apropriado devido a problemas com a sincronização de exclusões de arquivos). Então lá
pode haver problemas com clsync's w regras nestes casos.
Mais exemplos:
Sincronizando arquivos pwdb e sshd_config (caso não rsync):
+ f ^ / passwd $
+ f ^ / grupo $
+ f ^ / sombra $
+ f ^ / ssh / sshd_config $
+ w ^ $
+ w ^ / ssh $
-*
Sincronizando arquivos pwdb e sshd_config (caso rsync):
+ f ^ / passwd $
+ f ^ / grupo $
+ f ^ / sombra $
+ f ^ / ssh / sshd_config $
+ d ^ $
+ d ^ / ssh $
-*
Árvore de sincronização / srv / lxc (caso rsync):
-d / sessão (íon)? s? $
-f / tmp /
+*
SINAIS
1 - (HUP) relê regras de filtro
2 - (INT) sai sem esperar dos processos de sincronização ("hard kill", mata crianças)
3 - (SAIR) aguarda os processos de sincronização atuais e sai ("soft kill", aguarda os filhos)
10 - executa a função GC dos threads
12 - executa ressincronização completa
15 - (TERM) sai sem esperar dos processos de sincronização ("hard kill", mata crianças)
16 - interrompe sleep () / select () e wait () [para depuração e usos internos]
29 - despejar informações para diretório de despejo [para depuração]
Se você precisa matar clsync, mas deixar filhos, então você pode usar o sinal 9-th (KILL).
DIAGNÓSTICO
O processo inicial de rsync funciona muito lento no início do clsync
Provavelmente há uma lista de exclusões muito grande que foi passada para o rsync. Isso pode acontecer se
você está excluindo com regex nas regras do clsync muitos milhares de arquivos. Elas vão
ser passado para a lista de exclusão do rsync um por um.
Para diagnosticá-lo, você pode usar a opção "-U" e olhar para rsync-exclude-listpath lima
(Vejo SYNC MANIPULADOR casas d)
Para evitar isso, é recomendado escrever tais regras para rsync diretamente (não via
clsync).
Por exemplo, muitas vezes o problema é com os arquivos de sessão do PHP. Você não deve excluí-los
nas regras do clsync com "-f / sess _. *", mas você deve excluí-lo diretamente do rsync
(por exemplo, com «--exclude" sess_ * "»).
Os seguintes diagnósticos podem ser emitidos em stderr:
Erro: Não é possível inotify_add_watch () em [...]: Nenhum espaço restante no dispositivo (errno: 28)
Não é permitido inotify o suficiente para ver os descritores. Pode ser corrigido aumentando
valor de "sysctl fs.inotify.max_user_watches"
Erro: código de saída diferente de zero obtido código de saída [...]
manipulador de sincronização código de saída diferente de zero retornado. Provavelmente, você deve processar códigos de saída em
ou seu processo de sincronização não funcionou bem. No caso de usar rsync, você pode encontrar
os significados dos códigos de saída em homem 1 rsync.
If código de saída é igual a 23 e você está usando clsync em conjunção com rsync, Este
pode acontecer, por exemplo, nos próximos casos:
- Não há espaço suficiente no destino.
- Você está executando o clsync com --threading = full e rsync com --cópia de segurança. Ver
um relatório de bug ⟨https: //bugzilla.samba.org/show_bug.cgi? id = 10081⟩.
Para confirmar o problema, você pode tentar adicionar "retorno 0" ou "saída 0" em seu
manipulador de sincronização.
Mau . chamada
Se a opção --use-seccomp estiver habilitada, o erro é provavelmente causado pelo uso de
syscall proibido. É um clsync bug ou tentativa de ataque de hack.
Para obter suporte, consulte SUPPORT.
CONFIGURAÇÃO ARQUIVO
clsync suporta arquivo de configuração.
Por padrão clsync tenta ler os próximos arquivos (na ordem especificada):
~ / .clsync.conf
/etc/clsync/clsync.conf
Isso pode ser substituído pela opção --config-arquivo.
clsync lê apenas um arquivo de configuração. Em outras palavras, se a opção --config-arquivo não é
conjunto e arquivo ~ / .clsync.conf é acessível e analisável, clsync não tentará abrir
/etc/clsync/clsync.conf. As opções da linha de comando têm precedência sobre as opções do arquivo de configuração.
O arquivo de configuração é analisado com a API g_key_file_ * da glib. Isso significa que essa configuração deve
consiste em grupos (blocos) de linhas de valores-chave como no exemplo:
[predefinição]
fundo = 1
modo = rsyncshell
depurar = 0
saída = syslog
rótulo = padrão
arquivo pid = /var/run/clsync-%label%.pid
[Debug]
config-block-inherits = padrão
depurar = 5
fundo = 0
saída = stderr
[Teste]
mode = rsyncdirect
debug = 3
Também loquaz gkf API não oferece suporte a várias atribuições. Se você precisar listar alguns valores
(por exemplo, códigos de saída) apenas liste-os com vírgulas em uma única atribuição (por exemplo
"ignore-exitcode = 23,24").
Neste exemplo, há 3 blocos configurados - "default", "debug" e "test". E bloquear
"debug" herdou a configuração do bloco "default", exceto as opções "debug", "background" e
"saída".
Por padrão clsync usa o bloco com o nome "padrão". O nome do bloco pode ser definido por opção
--config-bloco.
AGRUPAMENTO
Ainda não implementado. não tentar para usar cacho funcionalidade.
Ainda não descrito.
EXEMPLOS
Espelhando a diretório:
clsync -Mrsyncdirect -W / path / to / source_dir -D / path / to / destination_dir
Sincronizando 'Chaves_Autorizadas' arquivos:
mkdir -p / etc / clsync / rules
printf "+ w ^ $ 0 ^ [^ /] + $ 0 ^ [^ /] + /. ssh $ 0 ^ [^ /] + /. ssh / authorized_keys $ 0">
/ etc / clsync / rules / authorized_files_only
clsync -Mdirect -Scp -W / mnt / master / home / -D / home
-R / etc / clsync / rules / authorized_files_only - -Pfp --parents% INCLUDE-LIST%
% destination-dir%
Espelhando a diretório, mas a mais rápido:
clsync -w5 -t5 -T5 -Mrsyncdirect -W / path / to / source_dir -D / path / to / destination_dir
Instantâneo espelhamento of a diretório:
clsync -w0 -t0 -T0 -Mrsyncdirect -W / path / to / source_dir -D / path / to / destination_dir
Fazendo dois diretórios síncrono:
clsync -Mrsyncdirect --background -z /var/run/clsync0.pid --output syslog
-Mrsyncdirect -W / caminho / para / dir1 -D / caminho / para / dir2 - assinatura de modificação '*'
clsync -Mrsyncdirect --background -z /var/run/clsync1.pid --output syslog
-Mrsyncdirect -W / caminho / para / dir2 -D / caminho / para / dir1 - assinatura de modificação '*'
Fixação privilégios of a local na rede Internet:
clsync -w3 -t3 -T3 -x1 -W / var / www / site.example.org / root -Mdirect -Schown --uid 0
--gid 0 -Ysyslog -b1 - uid de assinatura de modificação, gid - --from = root
www-data: www-data% INCLUDE-LIST%
'Atômico' sincronizar:
clsync --exit-on-no-events --max-iterations = 20 --mode = rsyncdirect -W / var / www_new
-Srsync -% RSYNC-ARGS% / var / www_new / / var / www /
em movimento a servidor web:
clsync --exit-on-no-events --max-iterations = 20 --pre-exit-hook = / root / stop-here.sh
--exit-hook = / root / start-there.sh --mode = rsyncdirect --ignore-exitcode = 23,24
- tentativas = 3 -W / Var / www -S rsync -% RSYNC-ARGS% / var / www / rsync: // clsync @ another-
host / var / www /
Copiar arquivos para nós escravos utilização PDCP(1)
clsync -Msimple -S pdcp -W / opt / global -b -Y syslog - -a% INCLUDE-LIST%
% INCLUDE-LIST%
Copiar arquivos para nós escravos utilização uftp(1)
clsync -Mdirect -S uftp -W / opt / global --background = 1 --output = syslog - -M
248.225.233.1% INCLUIR LISTA%
A secar que ocorre para Vejo rsync(1) argumentos que clsync precisarão usar:
clsync -Mrsyncdirect -S echo -W / path / to / source_dir -D / path / to / destination_dir
An outra secar que ocorre para olhar como clsync precisarão chamada PDCP(1)
clsync -Msimple -S echo -W / opt / global -b0 - pdcp -a% INCLUDE-LIST%% INCLUDE-LIST%
Mais exemplos de trabalho que você pode experimentar no diretório "/ usr / share / doc / clsync / examples /". cópia de
este diretório em algum lugar (por exemplo, em "/ Tmp"). E tente executar" clsync-start-rsync.sh "em
lá. Quaisquer modificações de arquivos / diretórios em "testdir / from" serão sincronizadas com
"testdir / to" em alguns segundos.
Use clsync online usando serviços onworks.net