Dit is de opdracht clsync die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
clsync - live synchronisatietool, geschreven in GNU C
KORTE INHOUD
clsync [ ... ] -- [ sync-handler-argumenten ]
PRODUCTBESCHRIJVING
clsync wordt uitgevoerd synchronisatie-handler met de juiste argumenten voor FS-gebeurtenissen in de directory
kijk-dir met de inotify(7) of andere FS-monitoringsubsystemen.
OPTIES
Deze opties kunnen worden doorgegeven als argumenten of worden gebruikt in het configuratiebestand.
Om de numerieke optie op nul uit te schakelen:
=0
Om de tekenreeksoptie (bijvoorbeeld pad naar bestand) uit te schakelen, stelt u deze in op een lege tekenreeks:
=
Ook kunt u eerder ingestelde waarden gebruiken bij het instellen van nieuwe opties. Subtekenreeks %option_name%
wordt vervangen door een eerder ingestelde waarde van de optie option_name. (zien CONFIGURATIE
FILE)
sync-handler-argumenten is alleen van toepassing op modi:
eenvoudig, direct, shell, rsyncdirect, rsyncshell
In te stellen sync-handler-argumenten gebruik in het configuratiebestand '--'. Een voorbeeld:
-- = -aH --exclude-from %EXCLUDE-LIST% --include-from=%INCLUDE-LIST% --exclude '*'
%watch-dir%/ %bestemmingsdir%/
-W, --kijk-dir kijk-dir
Hoofdmap die moet worden gecontroleerd door clsync.
Verplicht.
-S, --synchronisatie-handler synchronisatie-handler
Pad naar synchronisatie-handler te gebruiken voor synchronisatie door clsync. (zien --modus)
Is vereist voor alle modi behalve "direct" en "rsyncdirect" [zie SYNC BEHEERDER
MODES]
-R, --regels-bestand regels-bestand
Pad naar bestand met filterregels van te monitoren objecten. (zien REGLEMENT)
Is niet standaard ingesteld.
-NS, --bestemmingsmap doelmap
Definieert de map waarnaar moet worden gesynchroniseerd voor de modi "rsyncdirect", "rsyncso" en "so". (zien
--modus)
Is niet standaard ingesteld.
-M, --modus mode
Stelt de synchronisatiemodus in. Mogelijke waarden:
simpel
gesprekken synchronisatie-handler voor elk evenement
directe
gesprekken synchronisatie-handler voor elke synchronisatie met passerende bestanden wordt een lijst weergegeven als
argumenten
schelp
gesprekken synchronisatie-handler voor elke synchronisatie met het doorgeven van bestandslijsten in een bestand
rsyncdirect
roept rsync aan via pad synchronisatie-handler direct
rsynchshell
gesprekken synchronisatie-handler dat verondersteld werd rsync uit te voeren voor elke synchronisatie
(aanbevolen modus)"
rsyncso
laadt gedeeld object per pad synchronisatie-handler with dlopen(3) en oproepen
functie clsyncapi_rsync functie voor elke synchronisatie
so
laadt gedeeld object per pad synchronisatie-handler with dlopen(3) en oproepen
functie clsyncapi_sync functie voor elke synchronisatie
Bekijk SYNC BEHEERDER MODES
Verplicht.
-B, --achtergrond
Daemoniseren, waardoor clsync bij het starten naar fork() wordt gedwongen.
Is niet standaard ingesteld.
-H, --config-bestand config-bestand-pad
Gebruik configuratie uit bestand config-bestand-pad (Zie CONFIGURATIE FILE).
Stel in op "/NULL/" als er geen configuratiebestanden mogen worden gelezen.
Is niet standaard ingesteld.
-K, --config-blok config-bloknaam
Gebruik configuratieblok met naam config-bloknaam (Zie CONFIGURATIE FILE).
De standaardwaarde is "standaard".
--config-blok-erft config-ouder-bloknaam
Gebruik configuratieblok met naam config-ouder-bloknaam als ouder voor
config-bloknaam (Zie CONFIGURATIE FILE). Opties vanaf config-ouder-bloknaam
zal worden geërfd config-bloknaam.
De standaardwaarde is "standaard".
--aangepaste signalen aangepaste signalen
Stel een lijst met signalen en bijbehorende configuratiebloknamen in. Het configuratieblok zal dat doen
worden gebruikt bij het opvangen van het overeenkomstige signaal.
Formaat is
signaal:config-bloknaam[,signaal:config-bloknaam[,...]]
Bijvoorbeeld:
--custom-signals=29:debug,28:normaal
Op deze lijn worden de signalen "28" en "29" aan de signaalgever toegevoegd. En clsync
zal opties gebruiken uit configuratieblok "debug" op signaal 29 en "normaal" op signaal 28.
Om alle aangepaste signalen te resetten, gebruikt u het 0-de signaal (bijvoorbeeld "--custom-signals=0").
De standaardwaarde is "".
-z, --pid-bestand pad-naar-pidbestand
Schrijft pid naar bestand via pad pad-naar-pidbestand.
Is niet standaard ingesteld.
--status-bestand status-bestand-pad
Schrijf de statusbeschrijving naar een bestand met pad status-bestand-pad.
Mogelijke statussen:
beginnend
initialiseren van subsystemen en markeren van de bestandsboom met FS monitor
subsysteem
initsync
verwerking van de initiële synchronisatie
lopend
wachten op gebeurtenissen of synchroniseren
synchronisatieapparaat fout
wachten tussen uitvoeringspogingen van de synchronisatie (na een fout) [is
slechts gebruikt terwijl --draadsnijden=uit]
herkauwen
configuratiebestanden opnieuw laden
draad gc
de afvalverzamelaar van threads uitvoeren
vooruitgang
uitvoeren van de --pre-exit-haak
terminating
het uitvoeren van de laatste iteratie (indien nodig) en het voorbereiden om te sterven
verlaten
uitvoeren van de --uitgang-haak en opruimen [voor valgrind(1)]
Is niet standaard ingesteld.
-R, --pogingen aantal pogingen
Probeert de synchronisatie te beperken synchronisatie-handler.
clsync zal daarna sterven aantal pogingen probeert.
Om oneindig te proberen, stel "0" in.
De vertraging tussen pogingen is gelijk aan --vertraging-synchronisatie waarde.
De standaardwaarde is "1".
--negeer-mislukkingen
Wees niet dood vanwege synchronisatiefouten.
Is niet standaard ingesteld.
--afsluiten-bij-synchronisatie-overslaan
Sluit af als een gebeurtenis om welke reden dan ook kan worden overgeslagen.
FreeBSD heeft bijvoorbeeld een zeer korte BSM-gebeurteniswachtrij (1024). Dat kan dus zo zijn
overstroomd en sommige evenementen kunnen niet in de wachtrij klimmen. Deze optie dwingt clsync naar
verlaten als de wachtrij overstroomd is.
Is niet standaard ingesteld.
-P, --draadsnijden inrijgmodus
Gebruik pdraden(7) om synchronisatieprocessen te parallelliseren. Bijvoorbeeld als clsync (met
--draadsnijden=uit) al een groot bestand synchroniseert, dan zullen alle andere synchronisaties dat doen
opgeschort totdat de synchronisatie van grote bestanden is voltooid. Om dit te voorkomen kunt u schorsingen gebruiken
"veilige" of "volledige" inrijgmodus.
Mogelijke waarden:
korting
schakel threading uit voor synchronisatieprocessen.
veilig
parallelle synchronisaties, maar schort de synchronisaties van objecten op die al plaatsvinden
synchroniseren in een ander proces (totdat het proces is voltooid).
vol
parallelle synchronisaties zonder opschortingen.
kenmerken:
korting
Nieuwe wijzigingen worden pas gesynchroniseerd als de oude zijn voltooid.
veilig
Theoretisch is dit de beste manier. Maar kan veel CPU gebruiken als
er zijn veel gelijktijdige parallelle synchronisaties. (ook op deze manier niet
goed getest)
vol
Kan meerdere gelijktijdige synchronisatie van hetzelfde bestand veroorzaken, wat in
beurt kan een bug binnenin veroorzaken synchronisatie-handler (zie hieronder).
Als je aan het rennen bent clsync met optie --threading=vol in combinatie met rsync
met optie --back-up, kunt u een bug tegenkomen vanwege de niet-atomiciteit van het bestand van rsync
werking vervangen. (zien DIAGNOSE)
De standaardwaarde is "uit".
-Ja, --uitvoer log-bestemming
Stelt de bestemming in voor het schrijven van logboeken (fouten, waarschuwingen, informatie en foutopsporing).
Mogelijke waarden:
stderr
stdout
syslog
De standaardwaarde is "stderr".
--één-bestandssysteem
Volg niet de koppelpunten van verschillende apparaten. Deze optie voegt alleen maar een optie toe
"FTS_XDEV" voor fts_open(3) functie.
Waarschuwing! Als u deze optie gebruikt (maar geen --exclude-mount-points) clsync wil
schrijf bevat noch sluit de inhoud van koppelpunten uit.
Dit kan problemen veroorzaken, bijvoorbeeld als u rsync gebruikt voor de synchronisatie-handler zonder iets soortgelijks
optie "--één-bestandssysteem".
Is niet standaard ingesteld.
-X, --exclude-mount-punten
Krachten --één-bestandssysteem maar voeg ook uitsluitingen toe om koppelpunten niet te synchroniseren.
Dit vereist doen staat(2) syscalls op elke dir en kunnen de prestaties verminderen.
Is niet standaard ingesteld.
--stopcontact socket-pad
Maak een besturingsaansluiting per pad socket-pad.
Dit is een zeer experimentele functie.
Is niet standaard ingesteld.
--socket-eigen socket-eigenaar-gebruiker[:socket-eigenaar-groep]
Stelt de gebruiker (en groep) van de eigenaar van de contactdoos in.
Is niet standaard ingesteld
--socket-mod socket-modus
Stelt de contactdoosmodus in [zie chmod(2)].
Is niet standaard ingesteld.
--standby-bestand standby-bestandspad
Stelt het bestand in op een pad dat vóór elke synchronisatie moet worden gecontroleerd. Als het bestand bestaat, wordt de synchronisatie uitgevoerd
wordt opgeschort totdat het bestand is verwijderd. Het kan handig zijn als u bevriezing nodig heeft
doelmap tijdens het uitvoeren van enkele scripts.
Is niet standaard ingesteld.
--max-iteraties iteraties-telling
Stelt de synchronisatie-iteratieslimiet in. Eén iteratie betekent één synchronisatiehandler
uitvoering.
iteraties-telling
ingesteld op 0 betekent geen limiet (oneindige lus).
ingesteld op 1 betekent dat alleen de initiële synchronisatie wordt uitgevoerd
ingesteld op n betekent dat er alleen initiële synchronisatie en (n-1) synchronisaties daarna zullen plaatsvinden
gedaan
Tip: deze optie kan nuttig zijn in combinatie met --exit-on-no-events om dit te voorkomen
oneindige synchronisatieprocessen.
De standaardwaarde is "0".
--wijzigingshandtekening handtekening-masker
Stelt wijziging van bestand/map in, handtekening opnieuw controleren. Als het bestand niet wordt gewijzigd (volgens
de handtekening) en synchroniseer deze vervolgens niet.
Bekijk struct staat in staat(2) voor mogelijke velden.
Redelijk bijvoorbeeld handtekening-masker-s kan zijn
"dev,ino,mode,uid,gid,rdev,size,atime,mtime,ctime" (daar is een alias voor -
"*") of "uid,gid".
Voorbeelden van gebruiksscenario's:
chown/chmod
Als u clsync gebruikt voor het herstellen van bestands-/maprechten [using chown(1)
en / of chmod(1)] dan zal een redelijke handtekening "uid,gid" zijn.
Volledig voorbeeld: clsync -w5 -t5 -T5 -x1 -W
/var/www/site.example.org/root -Mdirect -Schown --uid 0 --gid 0
-Ysyslog -b1 --modification-signature uid,gid ---from=root
www-data:www-data %INCLUDE-LIST%
bidirectioneel synchroniseren
Als u bidirectionele synchronisatie gaat instellen, kunt u dit gebruiken
--modification-signature "*" om synchronisatielus tussen servers te voorkomen.
Niet genoeg CPU
Als rsync te veel CPU verbruikt bij het opnieuw controleren van hashsums van bestanden op hun
droog open()/close() vanwege een hacky-script (bijvoorbeeld "chown -R
www-data:www-data" in cron), dan kunt u --modification-signature gebruiken
"dev,ino,mode,uid,gid,rdev,size,atime,mtime" (zonder "blksize",
"blokken", "nlink" en "ctime").
Waarschuwing! In deze optie mei eten a lot of geheugen on reusachtig filet bomen.
Deze optie kan niet samen met "--cancel-syscalls=mon_stat" worden gebruikt
Om het opnieuw controleren van bestands-/mapwijzigingen uit te schakelen, gebruikt u een lege waarde — "".
De standaardwaarde is "".
-k, --time-out-synchronisatie synchronisatie-time-out
Stelt een time-out in voor het synchroniseren van processen. clsync zal sterven als het synchronisatieproces meer in leven blijft
neem contact synchronisatie-time-out seconden.
Stel "0" in om de time-out uit te schakelen.
De standaardwaarde is "86400" ["24 uur"].
-w, --vertraging-synchronisatie extra vertraging
Stelt de minimale vertraging (in seconden) tussen synchronisaties in.
De standaardwaarde is "30".
-T, --vertraging-collect gewone vertraging
Stelt de vertraging in (in seconden) voor het verzamelen van gebeurtenissen over gewone bestanden en mappen.
De standaardwaarde is "30".
-T, --delay-collect-bigfile bigfiles-delay
Stelt de vertraging in (in seconden) voor het verzamelen van gebeurtenissen over "grote bestanden" (zie
--drempel-bigfile).
De standaardwaarde is "1800".
-B, --drempel-bigfile bestandsgrootte-drempel
Stelt de bestandsgroottedrempel in (in bytes) die gewone bestanden scheidt van "grote bestanden".
Gebeurtenissen over "grote bestanden" worden verwerkt in een andere wachtrij met een aparte verzameling
vertraging. Dit zou moeten worden gebruikt als een manier om IO-bronnen te ontladen.
Om de detectie van "grote bestanden" uit te schakelen, stelt u "0" (nul) in. Dit kan de prestaties verbeteren door
het verwijderen van de noodzaak in extra lstat() syscall.
De standaardwaarde is "134217728" ["128 MiB"].
--cancel-systeemaanroepen syscalls-masker
Stelt in dat systeemaanroepen worden overgeslagen. Dit kan worden gebruikt om meer prestaties te persen.
Mogelijke waarden:
mon_stat
Sla lstat()-aanroepen over tijdens het verwerken van bestanden/dirs-gebeurtenissen. Dit maakt
onmogelijk om de bestandsgrootte te bepalen (dat wordt gebruikt door
--drempel-bigfile optie) en om een optie te gebruiken
--wijzigingshandtekening.
U kunt deze waarden combineren met komma's.
Om deze optie uit te schakelen gebruikt u gewoon de lege waarde — "".
De standaardwaarde is "".
-L, --lijsten-dir tmpdir-pad
Stelt het mappad in om tijdelijke gebeurtenissenlijstbestanden uit te voeren.
Bekijk SYNC BEHEERDER MODES.
Is niet standaard ingesteld.
--hebben-recursieve-synchronisatie
Gebruik de actie "recursivesync" in plaats van "synclist" voor mappen die net
gemarkeerd (zie SYNC BEHEERDER MODES geval schelp).
Is niet standaard ingesteld.
--synclist-vereenvoudigen
Verwijdert de eerste 3 parameters in lijstbestanden met actie "synclist" (zie SYNC BEHEERDER
MODES geval schelp).
Is niet standaard ingesteld.
--rsync-toename rsync-includes-line-limit
Stelt een zachte limiet in voor het aantal regels in bestanden per pad rsync-lijstpad. Helaas,
rsync werkt erg langzaam met grote "--include-from"-bestanden. Dus, clsync splitst dat
lijst met ongeveer rsync-includes-line-limit regels per lijst als deze te groot is,
en wordt uitgevoerd door één rsync-instantie per lijstdeel. Gebruik de waarde "0" om de
limit.
De standaardwaarde is "20000".
--rsync-prefer-include
Krachten clsync de voorkeur geven aan een "veel omvat"-methode in plaats van een "excludes+includes"
voor rsync bij recursieve synchronisatie.
Zie gevallen rsynchshell, rsyncdirect en rsyncso of SYNC BEHEERDER MODES.
Deze optie wordt niet aanbevolen.
Is niet standaard ingesteld.
-X, --ignore-afsluitcode exitcode
Krachten clsync om de exitcode niet te verwerken exitcode of synchronisatie-handler als een fout. Jij
kan meerdere negaties instellen door deze optie meerdere keren door te geven.
Aanbevolen waarden voor rsync-hoofdlettergebruik zijn "24". U kunt meerdere waarden instellen met vermelding
veel "-x" opties (bijv. "-x 23 -x 24") of via komma's (bijv. "-x 23,24"). Laten vallen
de lijst gebruikt een exitcode nul (bijvoorbeeld "-x 0"). U kunt bijvoorbeeld "-x 0,23" gebruiken om te laten vallen
de lijst en stel de "23"-e exitcode in om te negeren.
Is standaard niet ingesteld (of is ook ingesteld op "0").
-U, --niet-ontkoppel-lijsten
Verwijder daarna geen lijstbestanden synchronisatie-handler is afgelopen.
Dit kan worden gebruikt voor foutopsporingsdoeleinden.
Is niet standaard ingesteld.
--fts-experimentele-optimalisatie
Schakel experimentele functies in om het scannen van de bestandsboom tijdens het gebruik te optimaliseren ft(3).
De functies worden standaard ingeschakeld na passende tests.
Op dit moment doet de optie niets, maar kan in de toekomst worden gebruikt.
Is niet standaard ingesteld.
-F, --full-initialsync
Negeer filterregels van regels-bestand bij de eerste synchronisatie.
Dit kan handig zijn voor een snelle start of als het bijvoorbeeld nodig is om te synchroniseren "/ var / log /"
boom, maar synchroniseer niet elke wijziging vanaf daar.
Is niet standaard ingesteld.
--only-initialsync
Sluit af na de eerste synchronisatie bij het starten van clsync.
Is niet standaard ingesteld.
--uitgang-bij-geen-gebeurtenissen
Sluit af als er geen evenementen zijn. Werkt als --only-initialsync, maar synchroniseert ook evenementen
verzameld tijdens de eerste synchronisatie.
Anders --only-initialsync deze optie gebruikt het FS-monitorsubsysteem om te controleren op nieuwe
gebeurtenissen tijdens de eerste synchronisatie. Dit kan de prestaties verminderen. Aan de andere kant
deze manier kan worden gebruikt om er zeker van te zijn dat alles op het voorgaande moment wordt gesynchroniseerd
clsync wordt afgesloten.
Is niet standaard ingesteld.
--skip-initialsync
Sla de initiële synchronisatie over bij het starten van clsync.
Is niet standaard ingesteld.
--uitgang-haak pad-van-exit-hook-programma
Stelt het pad in van het programma dat moet worden uitgevoerd bij het afsluiten van clsync.
Als deze parameter is ingesteld, wordt clsync uitgevoerd bij het afsluiten:
pad-van-exit-hook-programma label
De uitvoering wordt overgeslagen als de initiële synchronisatie niet is voltooid.
Is niet standaard ingesteld.
--pre-exit-haak pad-van-pre-exit-hook-programma
Stelt het pad in van het programma dat moet worden uitgevoerd vóór de laatste synchronisatie-iteratie (zie
--max-iteraties, --uitgang-bij-geen-gebeurtenissen en SIGNALEN).
Als deze parameter is ingesteld, wordt clsync uitgevoerd bij het afsluiten:
pad-van-pre-exit-hook-programma label
De uitvoering wordt overgeslagen als de initiële synchronisatie niet is voltooid.
If clsync eindigt vanwege --uitgang-bij-geen-gebeurtenissen en --pre-exit-haak is ingesteld, dan wordt de
pre-exit hook wordt uitgevoerd en extra synchronisatie-iteratie wordt geactiveerd.
Is niet standaard ingesteld.
-in, --uitgebreid
Deze optie zou de breedsprakigheid moeten vergroten. Maar op dit moment is er geen
"uitgebreide uitvoer" in de code, dus de optie doet niets. :)
Is niet standaard ingesteld.
-NS, --debuggen
Verhoogt de foutopsporingsoutput. Dit kan meerdere keren worden opgegeven voor meer foutopsporing
informatie, tot maximaal vijf "d"-vlaggen (meer doet niets), bijvoorbeeld
"-d -d -d -d -d" of "-d5" (equivalente gevallen)
Is niet standaard ingesteld.
--dump-dir
Directory om de instantie-informatie van clsync te schrijven via signaal 29 (zie SIGNALEN). De
map zou niet moeten bestaan vóór het dumpen.
Is standaard ingesteld op "/tmp/clsync-dump-%label%".
-Q, --stil
Onderdrukt foutmeldingen.
Is niet standaard ingesteld.
--toezicht houden op monitor-subsysteem
Schakelt naar het FS-monitorsubsysteem.
Mogelijke waarden:
inotify
inotify(7) [Linux, (FreeBSD via libinotify)]
Native, snel, betrouwbaar en goed getest Linux FS-monitorsubsysteem.
Er is geen essentiële prestatiewinst om "inotify" te gebruiken in plaats van
"kevent" op FreeBSD met behulp van "libinotify". Het backendt naar "kevent"
toch.
FreeBSD-gebruikers: De libinotify op FreeBSD is nog steeds niet klaar en
onbruikbaar voor clsync om veel bestanden en mappen te synchroniseren.
gio
Gebruik gio bibliotheek.
Cross-platform en geteste bibliotheek die backends biedt voor kqueue op FreeBSD
en inotify op Linux. Zien inotify en in de rij staan secties hier voor
details.
Niet well getest. Gebruik with voorzichtigheid!
in de rij staan
in de rij staan(2) [FreeBSD, (Linux via libkqueue)]
Een *BSD-meldingsmechanisme voor kernelgebeurtenissen (incl. timer, sockets,
bestanden enz.).
Dit monitorsubsysteem kan de gebeurtenis voor het maken van bestanden niet bepalen, maar het
kan een map bepalen waar iets is gebeurd. Dus clsync ik scheer
om de hele map elke keer opnieuw te scannen bij elke inhoudswijziging. Bovendien,
kqueue vereist een open() voor elk bekeken bestand/map. Maar FreeBSD
staat niet toe om de symlink zelf te openen (zonder te volgen) en dat is het ook
zeer invasief om leidingen en apparaten te openen(). Dus clsync gewoon niet
roep open() aan voor alles behalve gewone bestanden en mappen.
Bijgevolg clsync kan niet vaststellen of er iets is veranderd
symlink/pijp/socket enzovoort. Het kan echter nog steeds bepalen of dit het geval is
wordt gemaakt of verwijderd door de bovenliggende map te bekijken en
het opnieuw scannen bij elke geschikte gebeurtenis.
Ook vereist deze API dat elk bewaakt bestand en elke map wordt geopend. Dus
het kan een enorme hoeveelheid bestandsdescriptors opleveren. Weet zeker dat
kern.max-bestanden is groot genoeg (in FreeBSD).
CPU/HDD dure manier.
Niet well getest. Gebruik with voorzichtigheid!
Linux-gebruikers: De libkqueue op Linux werkt niet. Haha :)
bsm
bsm(3) [FreeBSD]
Audit-API voor Basic Security Module (BSM).
Dit is eigenlijk geen FS-monitorsubsysteem. Het is gewoon een API om
toegang tot auditinformatie (incl. logs). clsync kan een audit instellen
bekijk FS-gebeurtenissen en rapporteer het in log. Daarna clsync zal gewoon
parseer het logboek via auditpijp(4) [FreeBSD].
Betrouwbare, maar hacky manier. Het vereist een globale herconfiguratie van de audit
dat kan een auditanalyse opleveren.
Waarschuwing! FreeBSD heeft een limiet voor gebeurtenissen in de wachtrij. Standaard FreeBSD
kernel zijn het slechts 1024 gebeurtenissen. Dus kies een van:
- Om de kernel te patchen om de limiet te verhogen.
- Niet gebruiken clsync op systemen met te veel bestandsgebeurtenissen.
- Gebruik bsm_prefetch modus (maar in dit geval is er geen garantie
in ieder geval).
Zie ook optie --afsluiten-bij-synchronisatie-overslaan.
Niet well getest. Gebruik with voorzichtigheid! Ook bestand
/etc/security/audit_control wordt overschreven met:
#clsync
dir:/var/audit
vlaggen:fc,fd,fw,fm,cl
minvrij:0
vlaggen:fc,fd,fw,fm,cl
beleid: cnt
bestandenz:1M
tenzij het al begint met "#clsync\n" ("\n" is een nieuwe regel
karakter).
bsm_prefetch
Hetzelfde als bsm maar alle BSM-gebeurtenissen worden vooraf opgehaald door een
extra thread om overloop van de BSM-wachtrij te voorkomen. Dit kan gebruik maken van een
veel geheugen op systemen met een hoge FS-gebeurtenisfrequentie.
Het kan echter zijn dat de thread niet snel genoeg is om de kernel BSM te ontladen
wachtrij. Het kan dus hoe dan ook overstromen.
De standaardwaarde op Linux is "inotify". De standaardwaarde op FreeBSD is "kqueue".
-ik, --etiket label
Stelt een label in voor dit exemplaar van clsync. De label zal worden doorgegeven aan synchronisatie-handler
elke executie.
De standaardwaarde is "nolabel".
-H, --help
Voert de optielijst uit en sluit af met exitcode "0".
Is niet standaard ingesteld.
-V, --versie
Voert de clsync-versie uit en sluit af met exitcode "0".
Is niet standaard ingesteld.
--cgroup-groepsnaam cg-groepsnaam
Stel de cgroup-groepsnaam in [zie cgroep_nieuwe_cgroep()].
Is standaard ingesteld op "clsync/%PID%".
VEILIGHEID OPTIES
--beveiligd splitsen
Impliceert "--splitting=process --check-execvp-arguments --seccomp-filter
--verbied-apparaten"
-u, --uid uid
Verwijder gebruikersrechten naar uid uid with setuid(2)
Als er een mogelijkheden(7) ondersteuning, dan is de standaardwaarde "niemand" (of "65534"
als "niemand" niet wordt gevonden), anders is de optie niet standaard ingesteld;
-G, --god gid
Groepsrechten verwijderen naar gi gid with setgid(2)
Als er een mogelijkheden(7) ondersteuning, dan is de standaardwaarde "nogroup" (of
"65534" als "nogroup" niet gevonden is), anders is de optie niet standaard ingesteld;
--bevoorrechte-uid sync-handler-uid
Een gebruikers-ID die moet worden gebruikt voor het geprivilegieerde proces (zie --splitting=proces).
De standaardwaarde is "$UID".
--bevoorrecht-gid sync-handler-gid
Een groeps-ID die moet worden gebruikt voor het geprivilegieerde proces (zie --splitting=proces).
De standaardwaarde is "$GID".
--sync-handler-uid sync-handler-uid
Een gebruikers-ID die moet worden gebruikt synchronisatie-handler.
Bekijk --behoud-mogelijkheden.
De standaardwaarde is hetzelfde als voor --bevoorrechte-uid.
--sync-handler-gid sync-handler-gid
Een groeps-ID die moet worden gebruikt synchronisatie-handler.
Bekijk --behoud-mogelijkheden.
De standaardwaarde is hetzelfde als voor --bevoorrecht-gid.
-C, --behoud-mogelijkheden mogelijkheden-lijst
[Linux enkel en alleen, vereist mogelijkheden]
Gebruik kapset(2) en prctl(2) om "CAP_DAC_READ_SEARCH", "CAP_SETUID" en/en te behouden
"CAP_SETGID" [zie mogelijkheden(7)] Linux-mogelijkheid voor procesgebruik ft(3)
inotify(7) en uitvoerend(2). Dit maakt het behoud van voldoende FS-rechten mogelijk
bekijk een bestandsboom en voer het synchronisatie-handler met vereiste uid en gid [zie
--sync-handler-uid en --sync-handler-gid] na het laten vallen van privileges via setuid(2)
en setgid(2) [zie --uid en --god]
Mogelijke waarden:
CAP_DAC_READ_SEARCH
Om FS-leescontroles te omzeilen (voor ft en inotify).
CAP_SETUID
Om te kunnen gebruiken setuid(2) eerder uitvoerend(2) op de synchronisatie-handler.
CAP_SETGID
Om te kunnen gebruiken setgid(2) eerder uitvoerend(2) op de synchronisatie-handler.
CAP_KILL
Om setuid()-ed-processen te kunnen beëindigen
Alle combinaties van deze waarden worden ook ondersteund. De lijst kan zijn
gepresenteerd als door komma's gescheiden waarden, zoals:
CAP_DAC_READ_SEARCH,CAP_SETUID,CAP_SETGID
De standaardwaarde is "CAP_DAC_READ_SEARCH,CAP_SETUID,CAP_SETGID,CAP_KILL" als de
clsync hardlopers hebben zulke privileges.
--erf-mogelijkheden
[Linux enkel en alleen, vereist mogelijkheden]
Stelt een modus in voor het overnemen van mogelijkheden.
Mogelijke waarden:
toegestaan
Erft alle toegestane mogelijkheden
niet aanraken
Wijzig de set overerfbare mogelijkheden niet
clsync
Gebruik clsync's effectieve mogelijkheden ingesteld
leeg
Reset alle mogelijkheden
De standaardwaarde is "leeg".
--splitsen splitstype
Splits het proces/de thread in bevoorrecht en niet-bevoorrecht. Dit is een extra manier
om uw systeem te beveiligen tegen eventuele bugs clsync terwijl u het uitvoert met mogelijkheden of
root-rechten. Maar clsync kan enkele malen meer CPU-bronnen gebruiken. Het is dus een
prestatie versus beveiliging.
U kunt de overhead aanzienlijk verminderen door gebruik te maken van "high load locks"
("--enable-highload-locks" van "./configure" bestand).
Als u deze optie gebruikt en de synchronisatie-handler met de rootgebruiker dan
het wordt ten zeerste aanbevolen om dit in te schakelen --check-execvp-argumenten, te. Anders voor het geval dat
of clsync beveiligingsbug kan een hacker execvp() gebruiken met alle argumenten
met rootprivileges.
Mogelijke waarden:
korting
Schakel deze functie uit
draad
[Linux enkel en alleen, vereist mogelijkheden]
Creëert een aparte thread voor bevoorrechte bewerkingen.
Het wordt ten zeerste aanbevolen om dit in te schakelen --seccomp-filter in dit geval. Maar
dat zal het verbieden --draadsnijden.
Veiliger en draagbaarder, maar maakt gebruik van een afzonderlijk proces en:
- verbiedt fanotify (dat is sowieso nog niet geïmplementeerd);
- complexere code (en grotere kans op fouten).
- langzamer vanwege het kopiëren van gegevens tussen privé- en gedeeld geheugen
bladzijden.
Aanbevolen.
Staat standaard op "uit".
--check-execvp-argumenten
[Vereist --splitting=[thread|proces]]
[Blokken --modus=direct]
Maakt het opnieuw controleren van execvp()-argumenten mogelijk in het geprivilegieerde proces (in het geval van hun
vervanging van door exploit gegeven argumenten).
Deze optie gebruikt niet veel CPU-bronnen, maar verbiedt het wijzigen van de runtime
sync-handler-argumenten en hook-bestandspaden.
Deze optie kan niet worden gebruikt in combinatie met --modus= direct vanwege een willekeurige
aantal argumenten in deze modus.
Is niet standaard ingesteld.
--toegestane-hook-bestanden toevoegen [hook-pad0,[hook-pad1[,...]]]
[Vereist --check-execvp-argumenten]
Voegt paden toe aan de lijst met toegestane hook-paden die moeten worden overgeslagen --check-execvp-argumenten
cheques. Het kan nodig zijn als u de hooks tijdens runtime gaat wijzigen
--aangepaste signalen or --stopcontact.
Is niet standaard ingesteld.
--seccomp-filter
[Linux alleen]
Gebruik sec filter om syscalls te verbieden die niet door clsync mogen worden gebruikt.
Verbied alle systeemaanroepen voor niet-bevoorrechte processen/threads, maar
futex inotify_init1 waarschuwing stat fstat lstat openen schrijven sluiten wachten4 ontkoppelen
tgkill klok_gettime rt_sigreturn brk mmap munmap wait4 rmdir exit_group
selecteer lezen rt_sigprocmask rt_sigaction nanosleep
Is niet standaard ingesteld.
--permit-mprotect
[Vereist --seccomp-filter]
vergunningen mbeschermen(2) systeemoproep.
Deze systeemaanroep is vereist door pthread_creëren(3), dus het is vereist voor --draadsnijden.
Maakt --shm-mprotect nutteloos.
Het maakt het ook mogelijk om het geheugen van bevoorrechte threads te wijzigen van niet-bevoorrechte,
dus gebruik van --splitting=draad met deze optie is ook nutteloos.
Is standaard ingesteld op "0" als --splitting is ingesteld. Anders "1".
--shm-mprotect
[Vereist --splitsen=proces]
Verbied het schrijven of lezen van/naar het gedeelde geheugen wanneer dit niet zou moeten gebeuren. mbeschermen(2)
wordt gebruikt voor de bescherming.
Deze optie is nutteloos --permit-mprotect is ingeschakeld.
--chroot chroot-map
clsync chroot()-s [zie chroot(2)] naar map chroot-map vóór enige synchronisatie
processen.
Deze optie kan worden gebruikt in combinatie met --uid, --god of en --draaiwortel voor
veiligheidsredenen.
Herinneren! Als je ergens aan het chroot()-en bent, wordt de synchronisatie-handler zal worden beperkt door de
chroot-omgeving ook. Als je rsync gebruikt, wil je misschien "mount --bind"
enkele mappen naar de chroot-map.
Is niet standaard ingesteld.
--draaiwortel pivot-root-manier
[Linux enkel en alleen, vereist --chroot]
Stelt een manier van gebruik in draai_root(2) systeemoproep naar de chroot-map (naar umount(2) oud
rootfs).
Mogelijke waarden:
auto
Creëert een map "/dev/shm/clsync-rootfs", delen ongedaan maken(2) - de
mount naamruimte, monteren(2)-s de chroot-map naar de map en
harte draai_root(2)-ing, chroot(2)-ing en umount(2) oude rootfs gebruiken.
Directory "/dev/shm/clsync-rootfs" wordt daarna niet verwijderd clsync
af hebben.
auto-ro
Hetzelfde als auto maar koppelt de map met de optie Alleen-lezen
(MS_RDONLY).
directe
delen ongedaan maken(2) -ing van de mount-naamruimte, draai_root(2)-ing, chroot(2)-ing
en umount(2) oude rootfs gebruiken. Directory "old_root" moet worden aangemaakt
in chroot-map voordat je gaat hardlopen clsync in deze modus.
korting
Niet draai_root(2).
De standaardwaarde is "uit". Als --chroot wordt gebruikt, dan is de aanbevolen waarde
"auto-ro".
--bergpunten [koppelpunt[,koppelpunt[,koppelpunt]]]
[Linux alleen]
Umount (met MNT_DETACH) alles behalve de vermelde mountpoints.
Verondersteld om om veiligheidsredenen te worden gebruikt als alternatief voor --draaiwortel optie.
Is niet standaard ingesteld.
--loskoppelen-netwerk ontkoppel-netwerk-modus
[Linux alleen]
Verwijdert netwerk in clsync aanleg.
Mogelijke waarden:
overal
Verwijdert netwerk voor alle processen.
niet-bevoorrecht
Verwijdert het netwerk uit niet-bevoorrechte processen, indien optie
--proces-splitsing is ingeschakeld, anders doet het niets.
korting
Doe niets.
De standaardwaarde is "niet-bevoorrecht".
--losmaken-ipc
[Linux alleen]
Maak een eigen IPC-naamruimte.
Is standaard ingesteld.
--losmaken-diversen
[Linux alleen]
delen ongedaan maken(2) op alles wat hierboven niet vermeld staat.
Is niet standaard ingesteld.
--Verbied-apparaten
[Linux alleen]
Verbied elke toegang tot alle apparaten behalve de vermelde apparaten:
leestoegang tot:
/dev/console
/dev/nul
/ Dev / urandom
/ dev / willekeurig
schrijftoegang tot:
/dev/console
/ Dev / null
Is niet standaard ingesteld.
PRESTATIES
Aanbevelingen om de prestaties te verbeteren:
- Schakel het splitsen van threads/processen uit.
- Gebruik geen clsync-regels (gebruik regels aan de kant van de synchronisatiehandler) en/en gebruik de optie
"--full-initialsync"
- Gebruik optie "-B0".
- Gebruik de optie "--cancel-syscalls=mon_stat".
- Gebruik de optie "-p safe" of "-p full".
- Schakel foutopsporing uit met "-d0" of, beter nog, schakel de foutopsporingsondersteuning helemaal uit met
"./configure" optie "--enable-debug=no"
- Gebruik de optie "--exclude-mount-points" niet
- Vrij geheugen voor schijfcache
Je moet al deze aanbevelingen niet blindelings opvolgen. Je zou alleen de ideeën moeten gebruiken die
lost prestatieproblemen op in uw specifieke gebruikssituatie. En alleen als het nodig is.
SYNC BEHEERDER MODES
clsync wordt uitgevoerd synchronisatie-handler dat zou moeten zorgen voor het daadwerkelijke synchronisatieproces.
Daarom clsync is slechts een handige manier om een synchronisatiescript uit te voeren.
clsync kan rennen synchronisatie-handler op zeven manieren. Welke manier zal worden gebruikt, hangt af van de specificaties
modus (zie --modus)
sync-handler-argumenten worden alleen gebruikt in de modi:
simpel
directe
schelp
rsyncdirect
rsynchshell
If sync-handler-argumenten niet zijn ingesteld, wordt de standaardinstelling gebruikt (zie hieronder).
geval simpel
Wordt uitgevoerd voor elk synchronisatiebestand/map:
synchronisatie-handler sync-handler-argumenten
Standaard sync-handler-argumenten zijn:
sync %etiket% %EVENT-MASKER% %INCLUDE-LIJST%
In dit geval, synchronisatie-handler wordt verondersteld om bestanden of mappen niet-recursief te synchroniseren
pad %INCLUDE-LIJST%. Met %EVENT-MASKER% er is een bitmasker van gebeurtenissen met het bestand doorgegeven
of map (zie "/usr/include/linux/inotify.h").
Aanvullende vervangingen:
%EVENT-MASKER%
Wordt vervangen door een geheel getal aan gebeurtenis-ID's.
%INCLUDE-LIJST%
Wordt vervangen door het absolute pad van een bestand/map die moet worden gesynchroniseerd.
geval directe
Wordt uitgevoerd voor elke synchronisatie:
synchronisatie-handler sync-handler-argumenten
Standaard sync-handler-argumenten zijn:
%INCLUDE-LIST% %bestemmingsmap%/
Aanvullende vervangingen:
%INCLUDE-LIJST%
Wordt vervangen door een lijst met relatieve paden van bestanden/mappen die moeten worden gesynchroniseerd.
geval schelp
Wordt uitgevoerd voor elke synchronisatie (if recursieve synchronisatie wordt niet gebruikt):
synchronisatie-handler sync-handler-argumenten
Standaard sync-handler-argumenten zijn:
synchronisatielijst %label% %INCLUDE-LIST-PATH%
Standaard sync-handler-argumenten voor initiële synchronisatie if --hebben-recursieve-synchronisatie speelt zich af
zijn:
initiële synchronisatie %label% %INCLUDE-LIST%
In dit geval, synchronisatie-handler wordt verondersteld om bestanden niet-recursief te synchroniseren en
mappen uit de lijst in een bestand op pad %INCLUDE-LIST-PATH% op "synclist".
ook synchronisatie-handler wordt verondersteld om recursief gegevens uit de map per pad te synchroniseren
%INCLUDE-LIST-PATH% met handleiding exclusief extra bestanden op "initialsync".
Aanvullende vervangingen:
%TYPE%
Wordt vervangen door "sync"/"initialsync".
%INCLUDE-LIST-PATH%
Wordt vervangen door het pad van het include-lijstbestand.
%INCLUDE-LIJST%
Wordt vervangen door een lijst met relatieve paden van bestanden/mappen die moeten worden gesynchroniseerd.
Niet aangeraden. Niet goed getest.
geval rsyncdirect
Wordt uitgevoerd voor elke synchronisatie:
synchronisatie-handler sync-handler-argumenten
synchronisatie-handler zou een pad moeten zijn rsync binary.
Standaard sync-handler-argumenten zijn:
-aH --delete --exclude-from %EXCLUDE-LIST-PATH% --include-from
%INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/ %destination-dir%/
indien optie --rsync--bij voorkeur opnemen is niet ingesteld en
-aH --delete --include-from %INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/
%bestemmingsmap%/
als de optie is ingesteld
Foutcode "24" van synchronisatie-handler wordt in dit geval genegeerd. Wij raden ook aan
om exitcode "23" te negeren.
Aanvullende vervangingen:
%INCLUDE-LIST-PATH%
Wordt vervangen door het pad van het include-lijstbestand
%EXCLUDE-LIST-PATH%
Wordt vervangen door het pad van het uitsluitingslijstbestand
%RSYNC-ARGS%
Wordt standaard vervangen sync-handler-argumenten, Maar zonder
"%kijk-map%/ %bestemming-map%/"
Aanbevolen geval.
geval rsynchshell
Wordt uitgevoerd voor elke synchronisatie:
synchronisatie-handler sync-handler-argumenten
Standaard sync-handler-argumenten zijn:
rsynclist %label% %INCLUDE-LIST-PATH% [%EXCLUDE-LIST-PATH%]
In dit geval, synchronisatie-handler wordt verondersteld de "rsync" -toepassing uit te voeren met parameters:
-aH --verwijder-voor --include-from %INCLUDE-LIST-PATH% --uitsluiten '*'
indien optie --rsync-prefer-include is ingeschakeld.
En met parameters:
-aH --verwijder-voor --exclude-from %EXCLUDE-LIST-PATH% --inclusief-van
%INCLUDE-LIST-PATH% --uitsluiten '*'
indien optie --rsync-prefer-include is uitgeschakeld.
Aanvullende vervangingen:
%INCLUDE-LIST-PATH%
Wordt vervangen door het pad van het rsync include-lijstbestand
%EXCLUDE-LIST-PATH%
Wordt vervangen door het pad van het bestand met de rsync-uitsluitingslijst
Aanbevolen geval.
geval rsyncso
In dit geval is er geen directe aanroep van exec*(). In dit geval clsync ladingen synchroniseren-
handler als gedeelde bibliotheek met dlopen(3) en roept de functie "int
clsyncapi_rsync(const char *inclist, const char *exclist)" voor elke synchronisatie.
incl is een pad naar een bestand met regels voor de optie "--include-from" van rsync. Dit
argument is altijd niet NULL.
uitsluiten is een pad naar een bestand met regels voor de optie "--exclude-from" van rsync. Dit
argument is NULL als --rsync-prefer-include is ingesteld.
Exclusief neemt voorrang over omvat.
Er kunnen ook gedefinieerde functies zijn "int clsyncapi_init(ctx_t *, indexes_t *)" en "int
clsyncapi_deinit()" om het synchronisatieproces hiermee te initialiseren en te deïnitialiseren
gedeeld voorwerp.
Om het proces te forken moet in plaats daarvan de functie "pid_t clsyncapi_fork(ctx_t *)" worden gebruikt
van "pid_t fork()" om ervoor te zorgen dat clsync het kind kan doden.
Zie voorbeeldbestand "clsync-synchandler-rsyncso.c".
Aanbevolen geval.
geval so
In dit geval is er geen directe aanroep van exec*(). In dit geval clsync ladingen synchroniseren-
handler als gedeelde bibliotheek met dlopen(3) en roept de functie "int
clsyncapi_sync(int n, api_eventinfo_t *ei)" voor elke synchronisatie. n is het aantal
elementen van ei. ei is een reeks structuren met informatie over wat en hoe
synchroniseren (zie hieronder).
api_eventinfo_t is een structuur:
struct api_eventinfo {
uint32_t evmasker; // gebeurtenisbitmasker voor bestand/map door
pad pad.
uint32_t vlaggen; // vlaggen van "hoe te synchroniseren" de
bestand/map
size_t pad_len; // strlen(pad)
const char *pad; // de pad naar bestand/map moet zijn
gesynchroniseerd
eventobjtype_t objtype_oud; // type object per pad pad
voor het evenement.
eventobjtype_t objtype_new; // type object per pad pad na
de gebeurtenis.
};
typedef structuur api_eventinfo api_eventinfo_t;
Er kan van de gebeurtenisbitmaskerwaarden (evmask) worden geleerd
"/usr/include/linux/inotify.h".
Er kunnen de volgende vlaggenwaarden (vlaggen) zijn:
opsomming eventinfo_flags {
EVIF_NONE = 0x00000000, // Geen modificatie
EVIF_RECURSIVELY = 0x00000001 // synchroniseer het bestand/de map recursief
};
Vlag "EVIF_RECURSIVELY" kan worden gebruikt als optie --hebben-recursieve-synchronisatie is ingesteld.
Is dat een bestand of map op pad pad kan worden bepaald met objecttype_oud en
objecttype_nieuw.
objecttype_oud rapporteert over welk type het object was volgens het pad vóór de gebeurtenis.
objecttype_nieuw rapporteert over welk type het object werd via het pad na de gebeurtenis.
objecttype_oud en objecttype_nieuw soort hebben gebeurtenisobjtype_t.
opsomming gebeurtenisobjecttype {
EOT_UNKNOWN = 0, // Onbekend
EOT_DOESNTEXIST = 1, // Bestaat niet (nog niet gemaakt of al
verwijderd)
EOT_FILE = 2, // Bestand
EOT_DIR = 3, // Directory
} typedef enum gebeurtenisobjtype gebeurtenisobjtype_t;
Er kunnen ook gedefinieerde functies zijn "int clsyncapi_init(options_t *, indexes_t *)" en
"int clsyncapi_deinit()" om het synchronisatieproces hiermee te initialiseren en te deïnitialiseren
gedeeld voorwerp.
Om het proces te forken moet de functie "pid_t clsyncapi_fork(options_t *)" worden gebruikt
in plaats van "pid_t fork()" om ervoor te zorgen dat clsync het kind kan doden.
Zie voorbeeldbestand "clsync-synchandler-so.c".
Aanbevolen geval.
MILIEU VARIABELEN
Uitvoervariabelen - variabelen die door clsync worden ingesteld voordat ze worden aangeroepen synchronisatie-handler.
uitgang variabelen
CLSYNC_STATUS - clsync's status (zie mogelijke statussen in beschrijving van
--status-bestand)
CLSYNC_ITERATION - telling van voltooide synchronisatie-iteraties na initiële synchronisatie, zie
--max-iteraties optie
REGLEMENT
Filterregels kunnen worden gebruikt om in te stellen welke gebeurtenissen clsync moet monitoren en welke gebeurtenissen het moet monitoren
zou moeten negeren.
Let op! Deze regel garandeert niet dat het gefilterde bestand/de gefilterde map niet wordt gesynchroniseerd. Dit kan
optreden omdat een bestand of map kan verschijnen op het moment dat synchronisatie-handler hardlopen (of daarna
maar vóór de synchronisatie-handler zal de map bereiken), dus het zal te laat zijn om een
uitsluiting. Als u garantie nodig heeft dat bestandssynchronisatie wordt voorkomen, kunt u een intern filter gebruiken
regels van de synchronisatie-handler programma (rsync heeft bijvoorbeeld de opties "--exclude",
"--exclude-from" en "--filter") of schakel eventuele "recursieve" synchronisaties uit clsync (En
verwijder de "-av" optie van rsync als deze wordt gebruikt). Om recursieve synchronisaties uit te schakelen, kunt u het volgende gebruiken:
simpel
Reeds niet-recursief
directe
Reeds niet-recursief
schelp
Schakel de optie --have-recursive-sync niet in.
rsyncdirect
Gebruik optie --rsync-prefer-include en set sync-handler-argumenten naar -lptgoD
--delete --include-from %INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/
%bestemmingsmap%/
rsynchshell
Gebruik de optie --rsync-prefer-include.
rsyncso
Gebruik de optie --rsync-prefer-include.
so
Schakel de optie --have-recursive-sync niet in.
Filterregels kunnen in worden geplaatst regels-bestand met één regel per regel.
Regelformaat: [+-][fdw*]regexp
+ - middelen omvatten; - - betekent uitsluiten; f - betekent bestand; d - betekent directory; w - middelen
lopen naar map; * - betekent alles.
Bijvoorbeeld: -*^/[Tt]est
Het wordt niet aanbevolen om te gebruiken w regels in de modi "rsyncdirect", "rsyncshell" en "rsyncso".
rsync(1) maakt het mogelijk om synchronisatie en wandelen alleen samen in te stellen in "--include"-regels
("--files-from" is niet geschikt vanwege problemen met het synchroniseren van het verwijderen van bestanden). Dus er
Mogelijk zijn er problemen met clsync's w regels in deze gevallen.
Meer voorbeelden:
Pwdb-bestanden en sshd_config synchroniseren (niet-rsync-geval):
+f^/wachtwoord$
+f^/groep$
+f^/schaduw$
+f^/ssh/sshd_config$
+w^$
+w^/ssh$
-*
Pwdb-bestanden en sshd_config synchroniseren (rsync-case):
+f^/wachtwoord$
+f^/groep$
+f^/schaduw$
+f^/ssh/sshd_config$
+d^$
+d^/ssh$
-*
Synchroniseren van de /srv/lxc-boom (rsync-case):
-d/sess(ion)?s?$
-f/tmp/
+*
SIGNALEN
1 - (HUP) herleest filterregels
2 - (INT) verlaat zonder te wachten op synchronisatieprocessen ("hard kill", doodt kinderen)
3 - (QUIT) wacht op huidige synchronisatieprocessen en sluit af ("soft kill", wacht op kinderen)
10 - voert de GC-functie van threads uit
12 - voert volledige hersynchronisatie uit
15 - (TERM) wordt afgesloten zonder te wachten op synchronisatieprocessen ("hard kill", doodt kinderen)
16 - onderbreekt sleep()/select() en wait() [voor foutopsporing en intern gebruik]
29 - informatie dumpen naar dump-dir [voor foutopsporing]
Als je clsync wilt doden maar kinderen achterlaat, kun je het 9e (KILL) signaal gebruiken.
DIAGNOSE
Het initiële rsync-proces werkt erg langzaam bij het starten van clsync
Waarschijnlijk is er een te grote uitsluitingslijst die wordt doorgegeven aan rsync. Dit kan gebeuren als
je sluit met regex in de regels van clsync heel wat duizenden bestanden uit. Ze zullen
worden één voor één doorgegeven aan de uitsluitingslijst van rsync.
Om het te diagnosticeren, kunt u de optie "-U" gebruiken en ernaar kijken rsync-exclude-lijstpad filet
(Zie SYNC BEHEERDER geval d)
Om dit te voorkomen, wordt aanbevolen om dergelijke regels rechtstreeks voor rsync te schrijven (niet via
clsync).
Het probleem ligt bijvoorbeeld vaak bij de sessiebestanden van PHP. Je moet ze niet uitsluiten
in de regels van clsync met "-f/sess_.*", maar je zou het rechtstreeks in rsync moeten uitsluiten
(bijvoorbeeld met «--exclude "sess_*"»).
De volgende diagnostische gegevens kunnen op stderr worden uitgegeven:
Fout: Kan inotify_add_watch() niet gebruiken op [...]: Geen ruimte over op apparaat (errno: 28)
Er is niet genoeg aandacht voor het bekijken van descriptors. Dit kan worden opgelost door te verhogen
waarde van "sysctl fs.inotify.max_user_watches"
Fout: Ik heb een exitcode ontvangen die niet nul is exitcode [...]
synchronisatie-handler retourneerde een exitcode die niet nul is. Waarschijnlijk moet u exitcodes verwerken
het of uw synchronisatieproces werkte niet goed. Als u rsync gebruikt, kunt u vinden
de betekenis van de exitcodes in man 1 rsync.
If exitcode is gelijk aan 23 en je gebruikt clsync in combinatie met rsync, deze
kan gebeuren, bijvoorbeeld in de volgende gevallen:
- Niet genoeg ruimte op bestemming.
- Je gebruikt clsync --threading=vol en rsync met --back-up. Zien
een bugrapport ⟨https://bugzilla.samba.org/show_bug.cgi?id=10081⟩.
Om het probleem te bevestigen, kunt u proberen "return 0" of "exit 0" toe te voegen aan uw
synchronisatie-handler.
zwembad system Bellen
Als de optie --use-seccomp is ingeschakeld, wordt de fout waarschijnlijk veroorzaakt door het gebruik van
verboden systeemcall. Het is een clsync poging tot bug- of hackaanval.
Om ondersteuning te krijgen, zie SUPPORT.
CONFIGURATIE FILE
clsync ondersteunt configuratiebestand.
Standaard clsync probeert de volgende bestanden te lezen (in de opgegeven volgorde):
~/.clsync.conf
/etc/clsync/clsync.conf
Dit kan worden overschreven met een optie --config-bestand.
clsync leest slechts één configuratiebestand. Met andere woorden: als optie --config-bestand is niet
instellen en archiveren ~/.clsync.conf is toegankelijk en parabel, clsync zal niet proberen te openen
/etc/clsync/clsync.conf. Opdrachtregelopties hebben voorrang op configuratiebestandsopties.
Het configuratiebestand wordt geparseerd met de g_key_file_* API van glib. Dat betekent dat die configuratie dat zou moeten doen
bestaat uit groepen (blokken) sleutelwaarderegels zoals in het voorbeeld:
[standaard]
achtergrond = 1
modus = rsynchshell
debuggen = 0
uitvoer = syslog
label = standaard
pid-bestand = /var/run/clsync-%label%.pid
[Debug]
config-block-inherits = standaard
debuggen = 5
achtergrond = 0
uitgang = stderr
[toets]
mode=rsyncdirect
debuggen=3
Ook glibbers gkf API ondersteunt geen meerdere toewijzingen. Als u enkele waarden moet vermelden
(bijv. exitcodes) vermeld ze gewoon met komma's in een enkele toewijzing (bijv
"negeer-exitcode=23,24").
In dit voorbeeld zijn er 3 blokken ingesteld: "default", "debug" en "test". En blokkeren
"debug" heeft de instellingen overgenomen van blok "default", behalve de opties "debug", "background" en
"uitvoer".
Standaard clsync gebruikt blok met de naam "default". Bloknaam kan per optie worden ingesteld
--config-blok.
CLUSTERING
Nog niet uitgevoerd. Niet proberen naar . cluster functionaliteit.
Nog niet beschreven.
Voorbeelden
Mirroring a directory:
clsync -Mrsyncdirect -W/pad/naar/bronmap -D/pad/naar/bestemmingsmap
Synchroniseren 'geautoriseerde_sleutels' bestanden:
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%
%bestemmingsmap%
Mirroring a adresboek, maar sneller:
clsync -w5 -t5 -T5 -Mrsyncdirect -W/pad/naar/bronmap -D/pad/naar/bestemmingsmap
Moment spiegelen of a directory:
clsync -w0 -t0 -T0 -Mrsyncdirect -W/pad/naar/bronmap -D/pad/naar/bestemmingsmap
maken twee directories synchroon:
clsync -Mrsyncdirect --achtergrond -z /var/run/clsync0.pid --output syslog
-Mrsyncdirect -W/pad/naar/dir1 -D/pad/naar/dir2 --modificatie-handtekening '*'
clsync -Mrsyncdirect --achtergrond -z /var/run/clsync1.pid --output syslog
-Mrsyncdirect -W/pad/naar/dir2 -D/pad/naar/dir1 --modificatie-handtekening '*'
Bevestiging voorrechten of a website:
clsync -w3 -t3 -T3 -x1 -W/var/www/site.example.org/root -Mdirect -Schown --uid 0
--gid 0 -Ysyslog -b1 --modificatie-handtekening uid,gid -- --from=root
www-data:www-data %INCLUDE-LIST%
'Atomisch' synchroniseren:
clsync --exit-on-no-events --max-iterations=20 --mode=rsyncdirect -W/var/www_new
-Srsync -- %RSYNC-ARGS% /var/www_new/ / Var / www /
bewegend a web Server:
clsync --exit-on-no-events --max-iterations=20 --pre-exit-hook=/root/stop-hier.sh
--exit-hook=/root/start-there.sh --mode=rsyncdirect --ignore-exitcode=23,24
--nieuwe pogingen=3 -W / Var / www -S rsync -- %RSYNC-ARGS% / Var / www / rsync://clsync@another-
host/var/www/
Het kopiëren bestanden naar slaaf-knopen gebruik pdcp(1):
clsync -Msimple -S pdcp -W /opt/global -b -Y syslog -- -a %INCLUDE-LIST%
%INCLUDE-LIJST%
Het kopiëren bestanden naar slaaf-knopen gebruik uftp(1):
clsync -Mdirect -S uftp -W/opt/global --background=1 --output=syslog -- -M
248.225.233.1 %INCLUSIEF-LIJST%
A drogen lopend naar zien rsync(1) argumenten uit die clsync wil gebruiken:
clsync -Mrsyncdirect -S echo -W/pad/naar/bronmap -D/pad/naar/bestemmingsmap
An ander drogen lopend naar blik hoe clsync wil Bellen pdcp(1):
clsync -Msimple -S echo -W /opt/global -b0 -- pdcp -a %INCLUDE-LIST% %INCLUDE-LIST%
Meer werkende voorbeelden die u kunt uitproberen in de map "/usr/share/doc/clsync/examples/". Kopiëren
deze map ergens (bijvoorbeeld in "/ tmp"). En probeer "clsync-start-rsync.sh" uit te voeren
daar. Alle wijzigingen aan bestanden/mappen in "testdir/from" worden gesynchroniseerd
"testdir/to" in een paar seconden.
Gebruik clsync online met behulp van onworks.net-services