rsync-നൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള സാങ്കേതികതകൾ. rsync-ൻ്റെ ഫലപ്രദമായ ഉപയോഗം

rsync(eng. റിമോട്ട് സിൻക്രൊണൈസേഷൻ) എന്നത് UNIX പോലുള്ള സിസ്റ്റങ്ങൾക്കായുള്ള ഒരു പ്രോഗ്രാമാണ്, അത് ട്രാഫിക് കുറയ്ക്കുമ്പോൾ രണ്ട് സ്ഥലങ്ങളിൽ ഫയലുകളും ഡയറക്ടറികളും സമന്വയിപ്പിക്കുന്നു, ആവശ്യമെങ്കിൽ ഡാറ്റ എൻകോഡിംഗ് ഉപയോഗിക്കുന്നു. rsync-ഉം മറ്റ് പല പ്രോഗ്രാമുകളും/പ്രോട്ടോക്കോളുകളും തമ്മിലുള്ള ഒരു പ്രധാന വ്യത്യാസം, മിററിംഗ് നടത്തുന്നത് ഓരോ ദിശയിലും ഒരു ത്രെഡാണ് (ഓരോ ഫയലിനും ഒന്നോ അതിലധികമോ ത്രെഡുകൾക്ക് പകരം). rsync-ന് ഒരു ഡയറക്ടറിയുടെ ഉള്ളടക്കങ്ങൾ പകർത്താനോ പ്രദർശിപ്പിക്കാനോ കഴിയും, കൂടാതെ കംപ്രഷനും ആവർത്തനവും ഉപയോഗിച്ച് ഓപ്ഷണലായി ഫയലുകൾ പകർത്താനും കഴിയും.

rsync പ്രോട്ടോക്കോൾ നടപ്പിലാക്കുന്ന rsyncd ഡെമൺ, സ്ഥിരസ്ഥിതിയായി TCP പോർട്ട് 873 ഉപയോഗിക്കുന്നു.

    അൽഗോരിതം

rsync യൂട്ടിലിറ്റി ഓസ്‌ട്രേലിയൻ പ്രോഗ്രാമർ ആൻഡ്രൂ ട്രിഡ്ജൽ വികസിപ്പിച്ച ഒരു അൽഗോരിതം ഉപയോഗിക്കുന്നു, ആശയവിനിമയ കണക്ഷനുകളിലുടനീളം ഘടനകൾ (ഫയലുകൾ പോലുള്ളവ) കാര്യക്ഷമമായി കൈമാറാൻ, സ്വീകരിക്കുന്ന കമ്പ്യൂട്ടറിന് ഇതിനകം തന്നെ ആ ഘടനയുടെ മറ്റൊരു പതിപ്പ് ഉണ്ടായിരിക്കും. സ്വീകരിക്കുന്ന കമ്പ്യൂട്ടർ അതിൻ്റെ ഫയലിൻ്റെ പകർപ്പിനെ ഒരു നിശ്ചിത വലുപ്പമുള്ള S-ൻ്റെ ഓവർലാപ്പുചെയ്യാത്ത ഭാഗങ്ങളായി വിഭജിക്കുന്നു, കൂടാതെ ഓരോ ചങ്കിനും ഒരു ചെക്ക്സം കണക്കാക്കുന്നു: ഒരു MD4 ഹാഷും ദുർബലമായ റോളിംഗ് ചെക്ക്‌സവും, അവ സമന്വയിപ്പിച്ചിരിക്കുന്ന സെർവറിലേക്ക് അയയ്ക്കുന്നു. ഓവർലാപ്പുചെയ്യുന്ന ചങ്കുകൾ ഉൾപ്പെടെ, ഫയലിൻ്റെ പതിപ്പിലെ S വലുപ്പത്തിലുള്ള ഓരോ ഭാഗത്തിനും വേണ്ടിയുള്ള ചെക്ക്സം കണക്കാക്കുന്നു. റോളിംഗ് ചെക്ക്‌സത്തിൻ്റെ പ്രത്യേക പ്രോപ്പർട്ടി കാരണം ഇത് കാര്യക്ഷമമായി കണക്കാക്കാം: റോളിംഗ് ചെക്ക്‌സം ബൈറ്റുകൾ n മുതൽ n+S-1 വരെ തുല്യമാണെങ്കിൽ, റോളിംഗ് ചെക്ക്‌സം ബൈറ്റുകൾ n+1 മുതൽ n+S വരെ R, byte n, byte n എന്നിവയിൽ നിന്ന് കണക്കാക്കാം. ഈ ഇടവേളയ്ക്കുള്ളിൽ കിടക്കുന്ന ബൈറ്റുകൾ കണക്കിലെടുക്കാതെ തന്നെ +S. അങ്ങനെ, റോളിംഗ് ചെക്ക്സം ബൈറ്റുകൾ 1-25 ഇതിനകം കണക്കാക്കിയിട്ടുണ്ടെങ്കിൽ, റോളിംഗ് ചെക്ക്സം ബൈറ്റുകൾ 2-26 കണക്കാക്കാൻ മുമ്പത്തെ ചെക്ക്സം, ബൈറ്റുകൾ 1, 26 എന്നിവ ഉപയോഗിക്കുന്നു.

    വലിപ്പത്തിൽ മാറ്റം വരുത്തിയതോ അവസാനമായി പരിഷ്കരിച്ച തീയതിയോ ആയ ഫയലുകൾക്കായി തിരയുന്ന, "ക്വിക്ക് ചെക്ക്" അൽഗോരിതം (സ്ഥിരസ്ഥിതി അൽഗോരിതം) ഉപയോഗിച്ച് അയയ്‌ക്കാനുള്ള ഫയലുകൾ Rsync കണ്ടെത്തുന്നു.

    ലോക്കൽ, റിമോട്ട് എന്നീ രണ്ട് നോഡുകളിലും rsync ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം എന്നത് ശ്രദ്ധിക്കുക.

    അപേക്ഷ. rcp, scp എന്നിവയ്ക്ക് പകരമായി rsync സൃഷ്ടിച്ചു. rsync-ൻ്റെ ആദ്യ ഉപയോഗങ്ങളിലൊന്ന്, rsync/SSH, ഒരു സാധാരണ Unix അക്കൗണ്ട് എന്നിവ ഉപയോഗിച്ച് ഒരു സെൻട്രൽ Unix സെർവറിലേക്ക് Unix ക്ലയൻ്റ് സിസ്റ്റങ്ങളെ മിറർ ചെയ്യുകയോ ബാക്കപ്പ് ചെയ്യുകയോ ആയിരുന്നു. ലിനക്സ് ക്രോൺ ഷെഡ്യൂളർ ഉപയോഗിക്കുന്നത് പോലുള്ള ഒരു ടാസ്‌ക് ഷെഡ്യൂളർ ഉപയോഗിച്ച്, നിരവധി കമ്പ്യൂട്ടറുകൾക്കും സെൻട്രൽ സെർവറിനുമിടയിൽ ക്രിപ്‌റ്റോഗ്രാഫിക്കായി സുരക്ഷിതമായ ഒരു ചാനലിലൂടെ ഓട്ടോമേറ്റഡ് rsync-അടിസ്ഥാന മിററിംഗ് സംഘടിപ്പിക്കാൻ സാധിക്കും.

rsync സ്റ്റാർട്ടപ്പ് കീകൾ

    ഉദാഹരണം: പ്രാദേശിക ഡയറക്ടറികൾ. dir_a ഫോൾഡറിലെ ഉള്ളടക്കങ്ങൾ ആവർത്തിച്ച് സമന്വയിപ്പിച്ചിരിക്കുന്നു (സോഴ്സ് ഡയറക്ടറിയുടെ അവസാനം ഒരു "/" ഉണ്ടെങ്കിൽ, ഡയറക്‌ടറിയിലെ ഉള്ളടക്കങ്ങൾ പകർത്തുക എന്നാണ് ഇതിനർത്ഥം; ഒരു സ്ലാഷിൻ്റെ അഭാവം അർത്ഥമാക്കുന്നത് ഡയറക്ടറിയും അതിലെ ഉള്ളടക്കങ്ങളും പകർത്തുക എന്നാണ്.) dir_b ഡയറക്ടറി. ഫയലുകൾ "ആർക്കൈവ്" മോഡിൽ കൈമാറ്റം ചെയ്യപ്പെടുന്നു, ഇത് കൈമാറ്റ സമയത്ത് പ്രതീകാത്മക ലിങ്കുകൾ, ഉപകരണ ഫയലുകൾ, ആട്രിബ്യൂട്ടുകൾ, അവകാശങ്ങൾ, പ്രവേശന അനുമതികൾ മുതലായവ സംരക്ഷിക്കപ്പെടുമെന്ന് ഉറപ്പാക്കുന്നു. ട്രാൻസ്മിറ്റ് ചെയ്ത ഡാറ്റയുടെ വലിപ്പം കുറയ്ക്കാൻ കംപ്രഷൻ ഉപയോഗിക്കുന്നു. dir_b ഡയറക്‌ടറിയിൽ, ഉറവിടത്തിൽ ഇല്ലാത്ത ഫയലുകൾ (dir_a) ഇല്ലാതാക്കപ്പെടും. rsync -avz --delete /src/dir_a/ /data/dir_b

    ഉദാഹരണം: റിമോട്ട് ഡയറക്ടറി ലോക്കൽ ഡയറക്ടറിയുമായി സമന്വയിപ്പിച്ചിരിക്കുന്നു: rsync -az -e ssh --delete 192.168.1.14:/home/pub_remote/ /home/pub_local

    ഉദാഹരണം: കമാൻഡ് ലൈൻ വഴി ssh ഐഡൻ്റിറ്റി കീ കടന്നുപോകുന്നു rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -i /root/rsync /mirror-rsync-key"

    -n, –dry-runഡീബഗ് മോഡ്. ഈ സാഹചര്യത്തിൽ, rsync ഫയലുകൾ മാറ്റുകയോ ഇല്ലാതാക്കുകയോ ചെയ്യില്ല, പക്ഷേ മുഴുവൻ പുരോഗതിയും കാണിക്കും.

    -ക്യു, - നിശബ്ദംഈ ഐച്ഛികം ട്രാൻസ്ഫർ സമയത്ത് വിവര ഔട്ട്പുട്ടിൻ്റെ അളവ് കുറയ്ക്കുകയും സെർവറിൽ നിന്നുള്ള സന്ദേശങ്ങളുടെ എണ്ണം ഗണ്യമായി അടിച്ചമർത്തുകയും ചെയ്യുന്നു. rsync ക്രോൺ ലോഞ്ച് ചെയ്യുമ്പോൾ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്.

    -v, -verboseകൈമാറ്റ സമയത്ത് പ്രദർശിപ്പിച്ചിരിക്കുന്ന വിവരങ്ങളുടെ അളവ് ഓപ്‌ഷൻ വർദ്ധിപ്പിക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, rsync ഒന്നും ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല. ഏതൊക്കെ ഫയലുകളാണ് കൈമാറ്റം ചെയ്യപ്പെടുന്നത് എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങളും അവസാനം ഒരു ചെറിയ സംഗ്രഹവും -v ഓപ്ഷൻ മാത്രം നൽകും. രണ്ട് -v ഓപ്‌ഷനുകൾ ഏതൊക്കെ ഫയലുകളാണ് മൈഗ്രേറ്റ് ചെയ്‌തത്, അവ അപ്‌ഡേറ്റ് ചെയ്യേണ്ട ആവശ്യമില്ല, അവസാനം കുറച്ച് കൂടുതൽ വിവരങ്ങൾ എന്നിവ നൽകും. rsync ഡീബഗ്ഗ് ചെയ്യുമ്പോൾ രണ്ടിൽ കൂടുതൽ -v ഓപ്ഷനുകൾ ഉപയോഗിക്കുന്നു. സ്ഥിരസ്ഥിതി ഫയൽ ഔട്ട്‌പുട്ട് ഫോർമാറ്റ് "%n%L"-ഔട്ട് ഫോർമാറ്റിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു, അത് ഫയലിൻ്റെ പേരുകളും ഒബ്‌ജക്റ്റ് ഒരു ലിങ്ക് ആണെങ്കിൽ അത് സൂചിപ്പിക്കുന്നതും മാത്രം കാണിക്കുന്നു. ആദ്യ ഡീബഗ്ഗിംഗ് ലെവലിൽ (one -v) ഫയൽ ആട്രിബ്യൂട്ടുകളുടെ മാറ്റം കാണിക്കില്ല. നിങ്ങൾ മാറിയ ആട്രിബ്യൂട്ടുകളുടെ വിശദമായ ലിസ്റ്റ് ആവശ്യപ്പെടുകയാണെങ്കിൽ (-itemize-changes ഓപ്ഷൻ വ്യക്തമാക്കുക, അല്ലെങ്കിൽ "%i" -out-format-ലേക്ക് ചേർക്കുക), ഉള്ള എല്ലാ ഇനങ്ങളും സൂചിപ്പിക്കാൻ ഔട്ട്പുട്ട് (ക്ലയൻ്റിലുള്ളത്) വിപുലീകരിക്കും. മാറി. കൂടുതൽ വിവരങ്ങൾക്ക് -ഔട്ട് ഫോർമാറ്റ് ഓപ്ഷൻ കാണുക.

    -a, -ആർക്കൈവ്-rlptgoD ന് തുല്യമാണ്. നിങ്ങൾക്ക് ആവർത്തന പ്രോസസ്സിംഗ് ആവശ്യമാണെന്ന് പറയുന്നതിനുള്ള ഒരു ദ്രുത മാർഗമാണിത്, മിക്കവാറും എല്ലാം സൂക്ഷിക്കുക (-H ഓപ്ഷൻ ശ്രദ്ധേയമായ ഒരു ഒഴിവാക്കലാണ്). -files-from വ്യക്തമാക്കുമ്പോൾ, മുകളിലുള്ള തുല്യതയ്ക്ക് ഒരേയൊരു അപവാദം, ഈ സാഹചര്യത്തിൽ -r ഓപ്ഷന് യാതൊരു ഫലവുമില്ല. ഒന്നിലധികം പ്രതീകങ്ങളുള്ള ഫയലുകൾക്കായി തിരയുന്നത് ചെലവേറിയതിനാൽ -a ഓപ്ഷൻ ഹാർഡ് ലിങ്കുകൾ സംരക്ഷിക്കുന്നില്ല എന്നത് ശ്രദ്ധിക്കുക. നിങ്ങൾ -H ഓപ്ഷൻ പ്രത്യേകം ഉപയോഗിക്കണം.

    -ഓപ്ഷൻ ഇല്ല"no-" എന്ന ഓപ്‌ഷൻ നാമം പ്രിഫിക്‌സ് ചെയ്‌ത് നിങ്ങൾക്ക് ഒന്നോ അതിലധികമോ ഓപ്‌ഷനുകൾ പ്രവർത്തനരഹിതമാക്കാം. എല്ലാ ഓപ്‌ഷനുകളിലും ഈ പ്രിഫിക്‌സ് പ്രയോഗിക്കാൻ കഴിയില്ല: മറ്റ് ഓപ്‌ഷനുകളിൽ നിന്ന് പിന്തുടരുന്ന ഓപ്‌ഷനുകൾ മാത്രം (ഉദാ -no-D, -no-perms) അല്ലെങ്കിൽ വ്യത്യസ്‌ത സാഹചര്യങ്ങളിൽ വ്യത്യസ്‌ത ബാധ്യതകൾ (ഉദാ -no-whole-file, -no- blocking-io) , -no-dirs). പ്രിഫിക്‌സിന് ശേഷം നിങ്ങൾക്ക് ദൈർഘ്യമേറിയതോ ഹ്രസ്വമോ ആയ ഓപ്ഷനുകൾ വ്യക്തമാക്കാൻ കഴിയും (ഉദാഹരണത്തിന് -no-R അല്ലെങ്കിൽ -no-relative). ഉദാഹരണത്തിന്: നിങ്ങൾക്ക് -a (-archive) ഓപ്ഷൻ ഉപയോഗിക്കണമെങ്കിൽ -o (-owner) ആവശ്യമില്ലെങ്കിൽ -a -rlptgD ആക്കി മാറ്റുന്നതിന് പകരം, നിങ്ങൾക്ക് -a -no-o (അല്ലെങ്കിൽ -a) വ്യക്തമാക്കാം. -ഉടമയില്ല). ഓപ്ഷനുകളുടെ ക്രമം പ്രധാനമാണ്: നിങ്ങൾ -no-r -a വ്യക്തമാക്കുകയാണെങ്കിൽ, -r ഓപ്ഷൻ തുടർന്നും പ്രവർത്തനക്ഷമമായിരിക്കും; നിങ്ങൾ -a -no-r വ്യക്തമാക്കണം. -files-from ഓപ്ഷൻ്റെ പാർശ്വഫലം പൊസിഷനൽ അല്ല എന്ന കാര്യം ശ്രദ്ധിക്കുക, അതേസമയം അത് പല ഓപ്ഷനുകളുടെയും ഡിഫോൾട്ട് അവസ്ഥയെ ബാധിക്കുകയും -a ഓപ്ഷൻ്റെ അർത്ഥം ചെറുതായി മാറ്റുകയും ചെയ്യുന്നു (കൂടുതൽ വിശദാംശങ്ങൾക്ക് -files-from ഓപ്ഷൻ കാണുക)

    -z, -കംപ്രസ്ഈ ഓപ്ഷൻ ഉപയോഗിച്ച്, കൈമാറ്റം ചെയ്ത എല്ലാ ഫയൽ ഡാറ്റയും rsync കംപ്രസ് ചെയ്യുന്നു. സ്ലോ ലൈനുകളിൽ ഇത് ഉപയോഗപ്രദമാണ്. ഉപയോഗിച്ചിരിക്കുന്ന കംപ്രഷൻ രീതി gzip നടപ്പിലാക്കിയതിന് സമാനമാണ്. റിമോട്ട് ഷെൽ പ്രോഗ്രാം കംപ്രഷൻ അല്ലെങ്കിൽ ട്രാൻസ്പോർട്ട് ലെയർ കംപ്രഷൻ ഉപയോഗിച്ച് നേടാവുന്നതിനേക്കാൾ മികച്ച കംപ്രഷൻ അനുപാതം ഇത് സാധാരണയായി കൈവരിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കുക. കംപ്രഷൻ പ്രക്രിയയിൽ ബന്ധപ്പെട്ട ഡാറ്റ ബ്ലോക്കുകളിൽ അയച്ച എല്ലാ വിവരങ്ങളും ഉൾപ്പെടുന്നു. --compress-level=NUM സ്‌പഷ്‌ടമായി സജ്ജീകരിച്ച കംപ്രഷൻ ലെവൽ --skip-compress=LIST ലിസ്റ്റിലെ സഫിക്‌സ് ഉള്ള ഫയലുകൾ കംപ്രസ് ചെയ്യുന്നത് ഒഴിവാക്കുക

    -ബി, -ബാക്കപ്പ്ബാക്കപ്പുകൾ ഉണ്ടാക്കുക --backup-dir=DIR നിർദ്ദിഷ്ട ഡയറക്ടറിയിലേക്ക് ബാക്കപ്പുകൾ ഉണ്ടാക്കുക --suffix=SUFFIX ബാക്കപ്പ് സഫിക്സ് (സ്ഥിരസ്ഥിതി ~)

    -സംഖ്യാ-ഐഡികൾഗ്രൂപ്പിനും ഉപയോക്തൃ നാമങ്ങൾക്കും പകരം, അവയുടെ സംഖ്യാ ഐഡികൾ അയച്ച് രണ്ടറ്റത്തും പരസ്പരം പൊരുത്തപ്പെടുത്തുന്നു. സ്ഥിരസ്ഥിതിയായി, ഫയലുകളുടെ ഉടമയെ നിർണ്ണയിക്കാൻ rsync ഗ്രൂപ്പും ഉപയോക്തൃനാമങ്ങളും ഉപയോഗിക്കുന്നു. -ന്യൂമെറിക്-ഐഡികൾ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽപ്പോലും, പ്രത്യേക യുഐഡി 0, ജിഡി 0 എന്നിവ ഒരിക്കലും ഉപയോക്തൃ/ഗ്രൂപ്പ് പേരുകളിലൂടെ വെളിപ്പെടുത്തില്ല.

ഒരു ക്രോട്ട് ചെയ്ത പരിതസ്ഥിതിയിലാണ് സോഴ്‌സ് സിസ്റ്റം പ്രവർത്തിക്കുന്നതെങ്കിൽ അല്ലെങ്കിൽ സ്വീകരിക്കുന്ന അവസാനത്തിൽ ഉപയോക്താവോ ഗ്രൂപ്പോ നിലവിലില്ലെങ്കിലോ, യഥാർത്ഥ സംഖ്യാ ഐഡികൾ ഉപയോഗിക്കുന്നു.

    -സി, -ചെക്ക്സംമാറിയ ഫയലുകൾ പരിശോധിക്കുന്ന രീതി മാറ്റുന്നു. ഈ ഐച്ഛികം കൂടാതെ, rsync ഒരു "ക്വിക്ക് ചെക്ക്" അൽഗോരിതം ഉപയോഗിക്കുന്നു (സ്ഥിരസ്ഥിതിയായി സജ്ജീകരിച്ചിരിക്കുന്നു), ഇത് ഫയൽ വലുപ്പത്തിലും പരിഷ്ക്കരണ സമയത്തിലും വ്യത്യാസങ്ങൾ പരിശോധിക്കുന്നു. വലുപ്പവുമായി പൊരുത്തപ്പെടുന്ന ഓരോ ഫയലിനും 128-ബിറ്റ് MD4 ചെക്ക്സം ഉപയോഗിച്ച് താരതമ്യം ചെയ്യാൻ ഈ ഓപ്ഷൻ അൽഗോരിതം മാറ്റുന്നു. ചെക്ക്‌സം കംപൈൽ ചെയ്യുന്നത് അർത്ഥമാക്കുന്നത്, ട്രാൻസ്ഫർ ചെയ്ത ഫയലുകളിലെ എല്ലാ ഡാറ്റയും വായിച്ച് ഇരുവശവും ഡിസ്‌ക് I/O ധാരാളം പാഴാക്കും (ഇത് മാറ്റിയ ഫയലുകൾ കൈമാറുന്നതിന് മുമ്പ് വായിക്കുന്നതാണ്), അതിനാൽ ഇത് കാര്യങ്ങളെ ഗണ്യമായി മന്ദഗതിയിലാക്കും. ലഭ്യമായ ഫയലുകളുടെ ഒരു ലിസ്റ്റ് നിർമ്മിക്കുന്ന ഫയൽ സിസ്റ്റം സ്കാൻ ചെയ്യുമ്പോൾ അയയ്ക്കുന്ന വശം ചെക്ക്സം സൃഷ്ടിക്കുന്നു. സ്വീകർത്താവ് മാറിയ ഫയലുകൾക്കായി തിരയുമ്പോൾ ചെക്ക്‌സം ജനറേറ്റുചെയ്യുന്നു, കൂടാതെ അയയ്‌ക്കുന്ന അനുബന്ധ ഫയലിൻ്റെ അതേ വലുപ്പത്തിലുള്ള ഏതെങ്കിലും ഫയലിൻ്റെ ചെക്ക്‌സം പരിശോധിക്കുന്നു: മാറിയ വലുപ്പമോ മാറിയ ചെക്ക്‌സമോ ഉള്ള ഫയലുകൾ പ്രക്ഷേപണത്തിനായി തിരഞ്ഞെടുത്തു. കൈമാറ്റം ചെയ്യപ്പെടുന്ന ഓരോ ഫയലും സ്വീകരിക്കുന്ന അറ്റത്ത് ശരിയായി പുനർനിർമ്മിച്ചിട്ടുണ്ടോയെന്ന് rsync എല്ലായ്പ്പോഴും പരിശോധിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കുക, ഫയൽ കൈമാറ്റ സമയത്ത് ജനറേറ്റ് ചെയ്ത മുഴുവൻ ഫയൽ ചെക്ക്സം പരിശോധിച്ചാണ് ഇത് ചെയ്യുന്നത്.

    -ഇ, –rsh=COMMAND - നിങ്ങൾക്ക് ഏതെങ്കിലും റിമോട്ട് ഷെൽ (SSH, rsh, remsh സജ്ജീകരിക്കുകയും ഉപയോഗിക്കുകയും ചെയ്യുക) അല്ലെങ്കിൽ RSYNC_RSH എൻവയോൺമെൻ്റ് വേരിയബിൾ സജ്ജമാക്കുക. --rsync-path=പ്രോഗ്രാം റിമോട്ട് മെഷീനിൽ പ്രവർത്തിപ്പിക്കുന്നതിന് rsync വ്യക്തമാക്കുന്നു --നിലവിലുള്ള റിസീവറിൽ പുതിയ ഫയലുകൾ സൃഷ്ടിക്കുന്നത് ഒഴിവാക്കുക --ignore-existing skip റിസീവറിൽ നിലവിലുള്ള ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്യുക --remove-source-files അയച്ചയാൾ സമന്വയിപ്പിച്ച ഫയലുകൾ നീക്കം ചെയ്യുന്നു (അല്ലാത്ത- dir) --del --delete-during --delete എന്നതിൻ്റെ അപരനാമം dest dirs-ൽ നിന്ന് അധിക ഫയലുകൾ ഇല്ലാതാക്കുക. സോഴ്‌സ് സൈഡിൽ ഇല്ലാത്ത ഫയലുകൾ ബാക്കപ്പിൽ നിന്ന് ഇല്ലാതാക്കുക --ഡിലീറ്റ്-ബിഫോർ റിസീവറുകൾ കൈമാറ്റത്തിന് മുമ്പ് ഇല്ലാതാക്കുന്നു (സ്ഥിരസ്ഥിതി) --ഡിലീറ്റ്-റിസീവർ സമയത്ത് ഇല്ലാതാക്കുന്നത് xfer സമയത്തല്ല, മുമ്പല്ല --ഡിലീറ്റ്-ഡെലേ ഡിലീറ്റ് സമയത്ത് ഇല്ലാതാക്കലുകൾ കണ്ടെത്തുക, അതിനുശേഷം ഇല്ലാതാക്കുക -- ഡിലീറ്റ്- കൈമാറ്റത്തിന് ശേഷം റിസീവർ ഇല്ലാതാക്കിയതിന് ശേഷം, "-after" എന്നതിന് മുമ്പല്ല, സമന്വയം പൂർത്തിയായതിന് ശേഷം മാത്രമേ നിങ്ങൾ ഫയലുകൾ ഇല്ലാതാക്കേണ്ടതുള്ളൂ എന്നാണ്. --delete-excluded dest dirs-ൽ നിന്ന് ഒഴിവാക്കിയ ഫയലുകളും ഇല്ലാതാക്കുക --ignore-errors I/O പിശകുകൾ ഉണ്ടെങ്കിലും ഇല്ലാതാക്കുക. I/O പിശകുകൾ ഉണ്ടെങ്കിൽ പോലും ഇല്ലാതാക്കുക. --ഫോഴ്‌സ് ഫോഴ്‌സ് ഡിലീറ്റ് ഓഫ് ഡിറീസ് ശൂന്യമല്ലെങ്കിലും --max-delete=NUM NUM ഫയലുകൾ ഇല്ലാതാക്കരുത് --max-size=SIZE SIZE-നേക്കാൾ വലിയ ഫയലുകളൊന്നും കൈമാറരുത് --min-size=SIZE ഡോൺ "SIZE-നേക്കാൾ ചെറിയ ഫയലുകളൊന്നും കൈമാറ്റം ചെയ്യരുത് --ഭാഗികമായി കൈമാറ്റം ചെയ്ത ഫയലുകൾ ഭാഗികമായി സൂക്ഷിക്കുക --partial-dir=DIR ഭാഗികമായി ട്രാൻസ്ഫർ ചെയ്ത ഫയൽ DIR-ലേക്ക് ഇടുക --delay-updates അവസാനം അപ്ഡേറ്റ് ചെയ്ത എല്ലാ ഫയലുകളും സ്ഥാപിക്കുന്നു

ഡിലീറ്റ് എന്നത് -delete-after എന്നതിൽ നിന്ന് വ്യത്യസ്‌തമാണ്, കാരണം ഇല്ലാതാക്കൽ ആരംഭത്തിൽ നടത്തുന്നു, ബാക്കപ്പ് പ്രക്രിയയുടെ അവസാന ഘട്ടത്തിലല്ല. -delete-after വേഗതയുള്ളതാണ്, കാരണം ഇതിന് ഫയലുകളുടെ പട്ടികയിൽ സഞ്ചരിക്കുന്നതിന് അധിക ഘട്ടം ആവശ്യമില്ല, എന്നാൽ ഒരു ഫയൽ ഇല്ലാതാക്കുന്നതും അതേ പേരിൽ ഒരു ഡയറക്ടറി സൃഷ്ടിക്കുന്നതും പോലുള്ള സാഹചര്യങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിന് -force ഓപ്ഷൻ ആവശ്യമാണ്;

ഒഴിവാക്കൽ പാറ്റേണുകൾ

ഒഴിവാക്കൽ, ഉൾപ്പെടുത്തൽ പാറ്റേണുകൾ, ഒരിക്കൽ വ്യക്തമാക്കിയാൽ, ഏതൊക്കെ ഫയലുകൾ കൈമാറ്റം ചെയ്യണമെന്നും ഏതൊക്കെ ഒഴിവാക്കണമെന്നും തിരഞ്ഞെടുക്കുന്നതിൽ വഴക്കം അനുവദിക്കുന്നു.

കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ -include/-exclude ഓപ്ഷനുകളെ അടിസ്ഥാനമാക്കി rsync ഒരു ഓർഡർ ചെയ്ത ലിസ്റ്റ് നിർമ്മിക്കുന്നു. ഓരോ ഉൾപ്പെടുത്തൽ/ഒഴിവാക്കൽ പാറ്റേണിനെതിരെ Rsync ഓരോ ഫയലും അല്ലെങ്കിൽ ഡയറക്ടറി നാമവും പരിശോധിക്കുന്നു. ആദ്യ മത്സരം പ്രാബല്യത്തിൽ വരും. പൊരുത്തപ്പെടുന്ന പാറ്റേൺ എക്സ്ക്ലൂസീവ് ആണെങ്കിൽ, അനുബന്ധ ഫയൽ ഒഴിവാക്കപ്പെടും. പാറ്റേൺ ഉൾപ്പെടുത്തിയാൽ, അത് ഒഴിവാക്കില്ല. ഫയലിൻ്റെ പേരിന് പൊരുത്തപ്പെടുന്ന പാറ്റേണുകൾ ഇല്ലെങ്കിൽ, അതും ഒഴിവാക്കില്ല.

അത്തരം പാറ്റേണുകൾക്കെതിരെ പരിശോധിച്ച ഫയലുകളുടെ പേരുകൾ ഡെസ്റ്റിനേഷൻ ഡയറക്‌ടറിയായ "ടോപ്പ് ഡയറക്‌ടറി" യുമായി ബന്ധപ്പെട്ടതാണ്, അതിനാൽ പാറ്റേണുകളിൽ ഉറവിടത്തിൻ്റെയോ ലക്ഷ്യസ്ഥാന ഡയറക്‌ടറികളുടെയോ ഘടകങ്ങൾ ഉൾപ്പെടുത്തേണ്ടതില്ല. സോഴ്‌സ് പാത്ത് ഫയൽ സിസ്റ്റത്തിൻ്റെ റൂട്ട് ഡയറക്‌ടറി ആയിരിക്കുമ്പോൾ മാത്രമാണ് സമ്പൂർണ്ണ ഫയൽ അല്ലെങ്കിൽ ഡയറക്‌ടറി പാഥുകൾക്കെതിരെ ടൈം പാറ്റേണുകൾ പരിശോധിക്കുന്നത്.

-r ഓപ്‌ഷൻ ഉപയോഗിക്കുമ്പോൾ (-a സൂചിപ്പിക്കുന്നത്), ഓരോ പാതയുടെയും ഓരോ ഭാഗവും മുകളിൽ നിന്ന് താഴേക്ക് തിരയുന്നു, അങ്ങനെ ഓരോ ഭാഗത്തിനും ഉൾപ്പെടുത്തൽ/ഒഴിവാക്കൽ പാറ്റേണുകൾ ആവർത്തിച്ച് പ്രയോഗിക്കുന്നു.

-ഉൾപ്പെടുത്തുക, ഒഴിവാക്കുക ഓപ്ഷനുകൾ ഓരോന്നിനും ഓരോ പാറ്റേൺ മാത്രമേ അനുവദിക്കൂ എന്നതും ശ്രദ്ധിക്കുക. ഒന്നിലധികം ടെംപ്ലേറ്റുകൾ ചേർക്കുന്നതിന്, യഥാക്രമം -include-from, -exclude-from ഓപ്‌ഷനുകൾ അല്ലെങ്കിൽ പല -ഉൾപ്പെടുത്തൽ, -ഒഴിവാക്കൽ ഓപ്ഷനുകൾ എന്നിവ ഉപയോഗിക്കുക.

ടെംപ്ലേറ്റുകൾ പല തരത്തിൽ വ്യക്തമാക്കാം. അവർക്കുള്ള നിയമങ്ങൾ ഇവയാണ്:

    പാറ്റേൺ ആരംഭിക്കുന്നത് / എന്നാണെങ്കിൽ, അത് ഫയലിൻ്റെ പേരിൻ്റെ തുടക്കത്തിനെതിരായി പരിശോധിക്കും, അല്ലാത്തപക്ഷം - പേരിൻ്റെ പിന്നിലുള്ള ഭാഗത്തിനെതിരെ. റെഗുലർ എക്സ്പ്രഷനുകളിലെ ലീഡിംഗ് ^ എന്നതിന് തുല്യമാണിത്. അങ്ങനെ, "/foo" കടന്നുപോകുന്ന മരത്തിൻ്റെ മുകളിലുള്ള "foo" എന്ന പേരിലുള്ള ഫയലുമായി പൊരുത്തപ്പെടണം. മറുവശത്ത്, ഡയറക്‌ടറി ട്രീയിൽ എവിടെയും "foo" എന്ന ഫയലുമായി "foo" പൊരുത്തപ്പെടണം, കാരണം അൽഗോരിതം മുകളിൽ നിന്ന് താഴേക്ക് ആവർത്തിച്ച് പ്രയോഗിക്കുന്നു. പാതയുടെ ഓരോ ഘടകവും അവസാനിപ്പിക്കുന്ന ഫയൽ നാമം പോലെയാണ് ഇത് പ്രവർത്തിക്കുന്നത്. പ്രാരംഭം / പാറ്റേണിനെ ഒരു കേവല പാതയാക്കി മാറ്റില്ല.

    പാറ്റേൺ / എന്നതിൽ അവസാനിക്കുകയാണെങ്കിൽ, അത് ഒരു ഡയറക്ടറിയുമായി മാത്രമേ പൊരുത്തപ്പെടുന്നുള്ളൂ, ഒരു ഫയലല്ല, ഒരു ലിങ്കല്ല, ഒരു ഉപകരണമല്ല.

    പാറ്റേണിൽ *?[ സെറ്റിൽ നിന്നുള്ള വൈൽഡ്കാർഡ് പ്രതീകങ്ങൾ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, പൊരുത്തം പരിശോധിക്കാൻ ഫയലിൻ്റെ പേരുകൾക്കായുള്ള ഷെല്ലിൻ്റെ വൈൽഡ്കാർഡ് നിയമങ്ങൾ ഉപയോഗിക്കുന്നു. അല്ലെങ്കിൽ, സ്ട്രിംഗുമായി പൊരുത്തപ്പെടൽ മാത്രമാണ് ഉപയോഗിക്കുന്നത്.

    ഇരട്ട നക്ഷത്രചിഹ്ന പൊരുത്തങ്ങളിൽ ഒരു സ്ലാഷ് ഉൾപ്പെടുന്നു, അതേസമയം ഒറ്റ നക്ഷത്രചിഹ്നം * പൊരുത്തങ്ങൾ ഒരു സ്ലാഷിൽ അവസാനിക്കുന്നു.

    ഒരു പാറ്റേണിൽ ഒരു സ്ലാഷ് (ട്രെയിലിംഗ് സ്ലാഷ് കണക്കാക്കുന്നില്ല) അല്ലെങ്കിൽ "" ഉണ്ടെങ്കിൽ, പാറ്റേൺ ഏതെങ്കിലും പാരൻ്റ് ഡയറക്‌ടറികൾ ഉൾപ്പെടെയുള്ള പൂർണ്ണ ഫയൽ നാമത്തിൽ പരിശോധിക്കും. പാറ്റേണിൽ / അല്ലെങ്കിൽ "" അടങ്ങിയിട്ടില്ലെങ്കിൽ, ഫയലിൻ്റെ പേരിൻ്റെ പിന്നിലുള്ള ഭാഗത്ത് പാറ്റേൺ പരിശോധിക്കും. ഒരിക്കൽ കൂടി, അൽഗോരിതം ആവർത്തനമായി പ്രയോഗിച്ചിട്ടുണ്ടെന്ന് ഓർക്കുക, അതിനാൽ "പൂർണ്ണമായ ഫയൽനാമം" യഥാർത്ഥത്തിൽ ആരംഭിക്കുന്ന ഡയറക്ടറിയിൽ നിന്നുള്ള ശ്രേണിയിൽ ആഴത്തിലുള്ള പാതയുടെ ഏതെങ്കിലും ഭാഗമാകാം.

    ഒരു പാറ്റേൺ ആരംഭിക്കുന്നത് "+" (ഒരു പ്ലസ് തുടർന്ന് ഒരു സ്‌പെയ്‌സ്) എന്നതിൽ നിന്നാണ് എങ്കിൽ, ഒരു ഒഴിവാക്കൽ പാരാമീറ്ററിൻ്റെ ഭാഗമായി വ്യക്തമാക്കിയാലും അത് എല്ലായ്‌പ്പോഴും ഉൾക്കൊള്ളുന്ന പാറ്റേണായി കണക്കാക്കും. പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുമ്പോൾ "+" ഭാഗം തന്നെ കണക്കിലെടുക്കുന്നില്ല.

    ഒരു പാറ്റേൺ ആരംഭിക്കുന്നത് "-" (മൈനസ് ശേഷം ഒരു സ്‌പെയ്‌സ്) ആണെങ്കിൽ, അത് ഒരു ഇൻക്ലൂഷൻ പാരാമീറ്ററിൻ്റെ ഭാഗമായി ദൃശ്യമാണെങ്കിലും, അത് എല്ലായ്പ്പോഴും ഒരു എക്‌സ്‌ക്ലൂസീവ് പാറ്റേണായി കണക്കാക്കും. പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുമ്പോൾ "-" ഭാഗം തന്നെ കണക്കിലെടുക്കുന്നില്ല.

    പാറ്റേൺ ഒരൊറ്റ ആശ്ചര്യചിഹ്നമാണ് സൂചിപ്പിക്കുന്നതെങ്കിൽ! , തുടർന്ന്, മുമ്പ് നിർവചിച്ച എല്ലാ പാറ്റേണുകളും നീക്കം ചെയ്തുകൊണ്ട് നിലവിലുള്ള ഉൾപ്പെടുത്തൽ/ഒഴിവാക്കൽ ലിസ്റ്റ് പുനഃസജ്ജമാക്കുന്നു.

ഒരു ഫയലിൽ നിന്ന് വായിക്കുന്ന ലിസ്റ്റുകളിൽ +/- നിയമങ്ങൾ ഏറ്റവും ഉപയോഗപ്രദമാണ്, ഇത് എക്‌സ്‌ക്ലൂസീവ്, ഇൻക്ലൂസീവ് പാറ്റേണുകൾ ഉൾക്കൊള്ളുന്ന ഒരു മൊത്തത്തിലുള്ള ഒരു ലിസ്റ്റ് നിങ്ങളെ അനുവദിക്കുന്നു.

നിങ്ങൾ ഒഴിവാക്കൽ ലിസ്റ്റ് അവസാനിപ്പിച്ചാൽ --ഒഴിവാക്കൽ "*", ആവർത്തന സ്വഭാവം കാരണം, പാരൻ്റ് ഡയറക്‌ടറികളിൽ അൽഗോരിതം നിർത്തും, നിങ്ങളുടെ ഫയലുകളുടെ പാരൻ്റ് ഡയറക്‌ടറികൾ ഉൾപ്പെടുത്താൻ നിങ്ങൾ വ്യക്തമായി വ്യക്തമാക്കിയില്ലെങ്കിൽ അവയ്ക്കുള്ളിൽ ഫയലുകൾ പരീക്ഷിക്കില്ല. അത് ഓണാക്കാൻ ആഗ്രഹിക്കുന്നു. എല്ലാ ഡയറക്‌ടറികളും ഉൾപ്പെടുത്തുന്നതിന്, ഉപയോഗിക്കുക -ഉൾപ്പെടുത്തുന്നതിന് മുമ്പ് "*/" -ഒഴിവാക്കുക "*".

ചില ഉൾപ്പെടുത്തൽ/ഒഴിവാക്കൽ ഉദാഹരണങ്ങൾ:

"*.o" ഒഴിവാക്കുക പൊരുത്തമുള്ള എല്ലാ ഫയൽനാമങ്ങളും ഒഴിവാക്കുക *.o --ഒഴിവാക്കുക "/foo" മുകളിലെ ഡയറക്‌ടറിയിൽ foo എന്ന് പേരുള്ള ഒരു ഫയൽ ഒഴിവാക്കുക --"foo/" ഒഴിവാക്കുക foo എന്ന് പേരുള്ള ഏതെങ്കിലും ഡയറക്ടറി ഒഴിവാക്കുക --ഒഴിവാക്കുക "/foo/ */ ബാർ" ട്രീയുടെ മുകളിലുള്ള "foo" എന്ന ഡയറക്‌ടറിയിൽ നിന്ന് ശ്രേണിയിൽ രണ്ട് ലെവലുകൾ ആഴത്തിൽ ബാർ എന്ന് പേരുള്ള ഏതെങ്കിലും ഫയലിനെ ഒഴിവാക്കുക --ഒഴിവാക്കുക "/foo/**/bar" ശ്രേണിയിൽ രണ്ടോ അതിലധികമോ ലെവലുകൾ ഉള്ള ബാർ എന്ന് പേരുള്ള ഏതെങ്കിലും ഫയലിനെ ഒഴിവാക്കുക മുകളിലെ ഡയറക്‌ടറി "foo"-ൽ നിന്ന് --ഉൾപ്പെടുത്തുക "*/" --ഉൾപ്പെടെ "*.c" --ഒഴിവാക്കുക "*" സി ഉറവിടങ്ങളുള്ള ഡയറക്ടറികളും ഫയലുകളും മാത്രം ഉൾപ്പെടുത്തുക --"foo/" --ഉൾപ്പെടെ "foo/bar" .c" --ഒഴിവാക്കുക "*" എന്നതിൽ foo/bar.c മാത്രമേ ഉൾപ്പെടൂ (foo/ ഡയറക്ടറി വ്യക്തമായി ഉൾപ്പെടുത്തിയിരിക്കണം, അല്ലാത്തപക്ഷം "*" കാരണം അത് ഒഴിവാക്കപ്പെടും)

പൂർത്തീകരണ കോഡുകൾ

0 വിജയം 1 വാക്യഘടന അല്ലെങ്കിൽ ഉപയോഗ പിശക് 2 പ്രോട്ടോക്കോൾ പൊരുത്തക്കേട് 3 ഇൻപുട്ട്/ഔട്ട്‌പുട്ട് ഫയലും ഡയറക്‌ടറി തിരഞ്ഞെടുക്കൽ പിശകുകളും 4 അഭ്യർത്ഥിച്ച പ്രവർത്തനം പിന്തുണയ്‌ക്കുന്നില്ല: 64-ബിറ്റ് ഫയലുകളെ പിന്തുണയ്‌ക്കാത്ത ഒരു പ്ലാറ്റ്‌ഫോമിൽ പ്രവർത്തിക്കാൻ ശ്രമിച്ചു; അല്ലെങ്കിൽ ക്ലയൻ്റ് മാത്രം പിന്തുണയ്ക്കുന്നതും സെർവർ പിന്തുണയ്ക്കാത്തതുമായ ഒരു പരാമീറ്റർ വ്യക്തമാക്കിയിട്ടുണ്ട്. 5 ക്ലയൻ്റ്-സെർവർ പ്രോട്ടോക്കോൾ വഴി പ്രവർത്തിക്കാൻ ശ്രമിക്കുമ്പോൾ പിശക് 10 I/O സോക്കറ്റ് പിശക് 11 ഫയൽ I/O പിശക് 12 rsync പ്രോട്ടോക്കോൾ ഡാറ്റ സ്ട്രീമിലെ പിശക് 13 ഡയഗ്നോസ്റ്റിക് പിശകുകൾ 14 IPC കോഡിലെ പിശക് 20 SIGUSR1 അല്ലെങ്കിൽ SIGINT സിഗ്നലുകൾ ലഭിച്ചു 21 Waitpid() കോൾ റിട്ടേൺസ് പിശക് 22 കോർ മെമ്മറി ബഫറുകൾ അനുവദിക്കുന്നതിൽ പിശക് 23 പിശക് കാരണം അപൂർണ്ണമായ കൈമാറ്റം 24 ഉറവിട ഫയൽ നഷ്‌ടമായതിനാൽ അപൂർണ്ണമായ കൈമാറ്റം 30 ഡാറ്റ അയയ്ക്കുമ്പോൾ/സ്വീകരിക്കുമ്പോൾ കാത്തിരിക്കുന്ന സമയം

പരിസ്ഥിതി വേരിയബിളുകൾ

CVSIGNORE CVSIGNORE എൻവയോൺമെൻ്റ് വേരിയബിൾ .cvsignore ഫയലിൽ നിന്നുള്ള ഒഴിവാക്കൽ പാറ്റേണുകൾ പൂർത്തീകരിക്കുന്നു. വിശദാംശങ്ങൾക്ക് --cvs-exclude ഓപ്ഷൻ കാണുക. RSYNC_RSH RSYNC_RSH എൻവയോൺമെൻ്റ് വേരിയബിൾ rsync ഒരു ട്രാൻസ്പോർട്ട് ആയി ഉപയോഗിക്കുന്ന റിമോട്ട് ഷെൽ പ്രോഗ്രാമിനെ അസാധുവാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.ഷെല്ലിനുള്ള കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾ പ്രോഗ്രാമിൻ്റെ പേരിന് ശേഷം, അതുപോലെ -e പാരാമീറ്ററിന് ശേഷം വ്യക്തമാക്കിയിരിക്കുന്നു. rsync സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന് ഒരു വെബ് പ്രോക്സി ഉപയോഗിക്കാൻ rsync ക്ലയൻ്റിനോട് പറയുക, നിങ്ങൾ പ്രോക്സിയെ ഒരു ഹോസ്റ്റ്നാമം:പോർട്ട് ജോടിയായി വ്യക്തമാക്കണം. RSYNC_PASSWORD മൂല്യം RSYNC_PASSWORD ആയി സജ്ജീകരിക്കുന്നത്, ഒരു പാസ്‌വേഡ് നൽകുന്നതിന് rsync സെർവറിലേക്ക് ഒരു rsync കണക്ഷൻ അനുവദിക്കുന്നു. ഇത് ട്രാൻസ്പോർട്ട് ഷെൽ പാസ്‌വേഡിന് സമാനമല്ലെന്ന കാര്യം ശ്രദ്ധിക്കുക ഉദാ ssh.USER അല്ലെങ്കിൽ LOGNAME ആധികാരികത ഉറപ്പാക്കുന്നതിനായി rsync സെർവറിലേക്ക് പേര് നൽകിയിരിക്കുന്ന സ്ഥിരസ്ഥിതി ഉപയോക്താവിനെ നിർവചിക്കാൻ USER അല്ലെങ്കിൽ LOGNAME എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ ഉപയോഗിക്കുന്നു. ഉപയോക്താവിൻ്റെ .cvsignore ഫയൽ.

ഉദാഹരണം rsync സ്ക്രിപ്റ്റുകൾ

#!/bin/bash # നിങ്ങളുടെ ഡയറക്ടറി ലിസ്റ്റിംഗിലേക്കുള്ള പൂർണ്ണ പാത BACKUP_LST =/ etc/ backup/ backup.lst cat $(BACKUP_LST) | വായിക്കുമ്പോൾ Res; rsync -e ssh -acq --delete --force $Res ബാക്കപ്പ്@ B:/ var/ backup$Res ചെയ്തു

ഉബുണ്ടുവിനൊപ്പം ആമസോൺ EC2-ൽ സമാനമായ നിരവധി സെർവറുകൾ (4 നോഡുകൾ) ഉണ്ട്. എല്ലാവരും സമന്വയിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന ഒരു കാഷെ അവരുടെ ഡിസ്കിൽ സൃഷ്ടിക്കുകയും സംഭരിക്കുകയും ചെയ്യുന്നു. എന്നാൽ ലളിതമായ rsync ഇവിടെ പ്രവർത്തിക്കില്ല - നിരവധി ബില്യൺ ഫയലുകൾ ഉണ്ട്, nfs വളരെ മന്ദഗതിയിലാണ്, മുതലായവ. വിശദീകരണങ്ങൾക്കൊപ്പം പരിഗണിക്കുന്ന ഓപ്ഷനുകളുടെ പൂർണ്ണമായ ലിസ്റ്റ് ചുവടെയുണ്ട്.

കൂടാതെ, കാലാകാലങ്ങളിൽ നിങ്ങൾ എല്ലാ സെർവറുകളിലും കാലഹരണപ്പെട്ട ഫയലുകൾ ഒരേസമയം ഇല്ലാതാക്കേണ്ടതുണ്ട്, അത് നിലവിൽ സ്വമേധയാ ചെയ്യപ്പെടുകയും നിരവധി ദിവസങ്ങൾ എടുക്കുകയും ചെയ്യുന്നു. അത്തരം ഒരു ഉപയോഗ കേസിനായുള്ള ഏറ്റവും വേഗതയേറിയ ഫയൽ സിസ്റ്റത്തിൻ്റെ ചോദ്യം പിന്നീട് വിവരിക്കാൻ ഞാൻ ഉദ്ദേശിക്കുന്നു. പല കാരണങ്ങളാൽ XFS തിരഞ്ഞെടുത്തുവെന്ന് ഞാൻ ഒരു റിസർവേഷൻ നടത്താം.

നിരവധി ക്ലസ്റ്റർ സാങ്കേതികവിദ്യകളും ഫയൽ സിസ്റ്റങ്ങളും പരീക്ഷിച്ച ശേഷം, ഒരു പഴയ സുഹൃത്തിൻ്റെ ഉപദേശപ്രകാരം, ഞങ്ങൾ അതേ rsync ഉപയോഗിക്കാൻ തീരുമാനിച്ചു, എന്നാൽ inotify-യുമായി ചേർന്ന്. ചക്രം പുനർനിർമ്മിക്കാതിരിക്കാൻ, ഒരു റെഡിമെയ്ഡ് പരിഹാരത്തിനായി ഇൻ്റർനെറ്റിൽ അൽപ്പം തിരഞ്ഞപ്പോൾ, എനിക്ക് csyncd, inosync, lsyncd എന്നിവ കണ്ടു. ഞാൻ നേരത്തെ തന്നെ ഹബ്ബിലായിരുന്നു, പക്ഷെ അത് ഇവിടെ ചേരില്ല, കാരണം... ഒരു SQLite ഡാറ്റാബേസിൽ ഫയലുകളുടെ ഒരു ലിസ്റ്റ് സംഭരിക്കുന്നു, അത് ഒരു ദശലക്ഷം റെക്കോർഡുകൾക്കൊപ്പം നന്നായി പ്രവർത്തിക്കാൻ സാധ്യതയില്ല. അത്തരം വോള്യങ്ങൾക്കൊപ്പം ഒരു അധിക ലിങ്കിൻ്റെ ആവശ്യമില്ല. എന്നാൽ lsyncd ഞങ്ങൾക്ക് ആവശ്യമുള്ളത് തന്നെയായി മാറി.

4. നമുക്ക് ഭൂതം ആരംഭിക്കാംഎല്ലാ നോഡുകളിലും:

/etc/init.d/lsyncd ആരംഭിക്കുക

നിങ്ങൾ കോൺഫിഗറേഷനിൽ "nodaemon = true" വിട്ടാൽ, എന്താണ് സംഭവിക്കുന്നതെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും.

ഡാറ്റാ ട്രാൻസ്ഫർ വേഗത 300 Mbit/s ൽ എത്തുന്നു, ഇത് സെർവർ ലോഡിൽ കാര്യമായ സ്വാധീനം ചെലുത്തുന്നില്ല (ഉദാഹരണത്തിന്, അതേ GlusterFS മായി താരതമ്യപ്പെടുത്തുമ്പോൾ), ഈ കേസിലെ കാലതാമസം കൊടുമുടികളെ സുഗമമാക്കുന്നു. ഇപ്പോഴും ഉപയോഗിക്കുന്ന FS-നെ ആശ്രയിച്ചിരിക്കുന്നു. ഇവിടെയും, അക്കങ്ങളും ഗ്രാഫുകളും ഉപയോഗിച്ച് എനിക്ക് ഒരു ചെറിയ ഗവേഷണം നടത്തേണ്ടിവന്നു, കാരണം സാഹചര്യം തികച്ചും നിർദ്ദിഷ്ടവും നിലവിലുള്ള പ്രസിദ്ധീകരിച്ച ടെസ്റ്റുകളുടെ ഫലങ്ങൾ ടാസ്ക്കിൽ ആവശ്യമുള്ളത് പ്രതിഫലിപ്പിക്കുന്നില്ല.

മറ്റെന്താണ് പരിഗണിച്ചത്, എന്തുകൊണ്ട് ഈ കേസിൽ അനുയോജ്യമല്ല

ആമസോൺ EC2-ൻ്റെ പരിമിതികളും സവിശേഷതകളും കണക്കിലെടുത്ത് പ്രവർത്തിക്കാൻ ലക്ഷ്യമിട്ടുള്ളതാണ് മുഴുവൻ പഠനവും, അതിനാൽ കണ്ടെത്തലുകൾ പ്രധാനമായും അതിനെ മാത്രം ബാധിക്കുന്നു.
  • DRBD - ബ്ളോക്ക് തലത്തിൽ അനുകരണം സംഭവിക്കുന്നു. ഒരു ഹോസ്റ്റ് അധഃപതിച്ചാൽ രണ്ടും കൊല്ലപ്പെടും. 2 നോഡുകളുടെ പരിധി. (കൂടുതൽ സാധ്യമാണ്, എന്നാൽ 3-ഉം 4-ഉം ഉള്ളവരെ അടിമകളായി മാത്രമേ ബന്ധിപ്പിക്കാൻ കഴിയൂ.)
  • Ocfs2 - ഒന്നുകിൽ DRBD-യുടെ മുകളിൽ ഉപയോഗിക്കുന്നു (ഹബ്രെയിൽ നല്ല ഒന്ന് ഉണ്ട്), അല്ലെങ്കിൽ നിങ്ങൾക്ക് നിരവധി നോഡുകളിൽ നിന്ന് ഒരു പാർട്ടീഷൻ മൌണ്ട് ചെയ്യാൻ കഴിയണം. ec2-ൽ സാധ്യമല്ല.
  • ocfs2 ൻ്റെ അനലോഗ് ആണ് Gfs2. ഞാൻ ഇത് പരീക്ഷിച്ചിട്ടില്ല, കാരണം പരിശോധനകൾ അനുസരിച്ച്, ഈ FS ocfs2 നേക്കാൾ വേഗത കുറവാണ്, അല്ലാത്തപക്ഷം ഇത് അതിൻ്റെ അനലോഗ് ആണ്.
  • GlusterFS - ഇവിടെ എല്ലാം ഏതാണ്ട് ഉടനടി പ്രവർത്തിച്ചു! കൈകാര്യം ചെയ്യാൻ ലളിതവും യുക്തിസഹവുമാണ്. അനിയന്ത്രിതമായ ഒരു പകർപ്പ് മൂല്യമുള്ള 255 നോഡുകൾ വരെ നിങ്ങൾക്ക് ഒരു ക്ലസ്റ്റർ ഉണ്ടാക്കാം. ഞാൻ രണ്ട് സെർവറുകളിൽ നിന്ന് ഒരു ക്ലസ്റ്റർ പാർട്ടീഷൻ സൃഷ്ടിച്ച് അവയിൽ മൌണ്ട് ചെയ്തു, പക്ഷേ മറ്റൊരു ഡയറക്ടറിയിൽ (അതായത്, സെർവറുകളും ക്ലയൻ്റുകളായിരുന്നു). നിർഭാഗ്യവശാൽ, ഈ ക്ലസ്റ്റർ ഫ്യൂസ് വഴി ക്ലയൻ്റിലേക്ക് ഘടിപ്പിച്ചിരിക്കുന്നു, കൂടാതെ എഴുത്ത് വേഗത 3 MB/sec-ൽ താഴെയായി. അതിനാൽ, ഉപയോഗത്തിൽ നിന്നുള്ള ഇംപ്രഷനുകൾ വളരെ നല്ലതാണ്.
  • തിളക്കം - ഇത് ക്രെനൽ മോഡിൽ പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങൾ കേർണൽ പാച്ച് ചെയ്യേണ്ടതുണ്ട്. വിചിത്രമെന്നു പറയട്ടെ, ഉബുണ്ടു ശേഖരണത്തിൽ ഈ പാച്ചുകളുള്ള ഒരു പാക്കേജ് ഉണ്ട്, പക്ഷേ അതിനുള്ള പാച്ചുകളോ കുറഞ്ഞത് ഡെബിയനോ എനിക്കൊന്നും കണ്ടെത്താൻ കഴിഞ്ഞില്ല. അവലോകനങ്ങൾ വിലയിരുത്തുമ്പോൾ, ഡെബ് സിസ്റ്റത്തിൽ ഇത് പ്രവർത്തിപ്പിക്കുന്നത് ഷാമനിസമാണെന്ന് ഞാൻ മനസ്സിലാക്കി.
  • Hadoop w/ HDFS, Cloudera - മറ്റൊരു പരിഹാരം കണ്ടെത്തിയതിനാൽ ശ്രമിച്ചില്ല (ചുവടെ കാണുക). എന്നാൽ നിങ്ങളുടെ ശ്രദ്ധയിൽപ്പെടുന്ന ആദ്യ കാര്യം അത് ജാവയിൽ എഴുതിയിരിക്കുന്നു എന്നതാണ്, അതിനാൽ ഇത് ധാരാളം വിഭവങ്ങൾ ഉപയോഗിക്കും, കൂടാതെ സ്കെയിൽ Facebook അല്ലെങ്കിൽ Yahoo പോലെയല്ല, ഇപ്പോൾ 4 നോഡുകൾ മാത്രം.

UPD:ഈ പരിഹാരം ടെസ്റ്റുകളിൽ നന്നായി പ്രവർത്തിച്ചു (അതിനു ശേഷം ലേഖനം എഴുതി), എന്നാൽ പോരാട്ട സാഹചര്യങ്ങളിൽ എല്ലാം തികച്ചും വ്യത്യസ്തമായി മാറി. ഏറ്റവും കുറഞ്ഞ പ്രൊഡക്ഷൻ കോൺഫിഗറേഷൻ 584 ആയിരം നെസ്റ്റഡ് ഡയറക്ടറികളാണ്. ഒപ്പം lsyncd ഹാംഗ്സ് ഇനോട്ടിഫൈ" എന്നതും ഓണാണ് ഓരോന്നുംഡയറക്ടറി. മുഴുവൻ മരത്തിനും ഒരേസമയം ഇത് ചെയ്യുന്നത് അസാധ്യമാണ്. മെമ്മറി, 584 ആയിരം അറിയിപ്പുകൾ, താരതമ്യേന കുറച്ച് മാത്രമേ കഴിക്കൂ, ഏകദേശം 200 MB (ലഭ്യമായ 16 GB ൽ), എന്നാൽ ഈ പ്രക്രിയയ്ക്ക് 22 മിനിറ്റ് എടുക്കും. തത്വത്തിൽ, ഇത് ഭയാനകമല്ല: ഒരിക്കൽ നിങ്ങൾ അത് സമാരംഭിക്കുകയും അത് മറക്കുകയും ചെയ്യുക. എന്നാൽ ഇതിന് ശേഷം, സ്റ്റാൻഡേർഡ് കോൺഫിഗറേഷൻ ഉപയോഗിച്ച്, lsyncd എല്ലാ ഫയലുകളും സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നു, അത് ഞങ്ങളുടെ അവസ്ഥകളിൽ ഒന്നുകിൽ ബഗ്ഗി അല്ലെങ്കിൽ ദിവസങ്ങൾ എടുത്തു. പൊതുവേ - ഒരു ഓപ്ഷൻ അല്ല. 100% സ്ഥിരത ആവശ്യമില്ല കൂടാതെ പ്രാരംഭ സമന്വയം വിതരണം ചെയ്യാവുന്നതാണ്. "അത് ഓഫാക്കുക" മാത്രമാണ് അവശേഷിക്കുന്നത്. ഭാഗ്യവശാൽ, ഡെമൺ അതിൻ്റെ മിക്കവാറും എല്ലാ പ്രവർത്തനങ്ങളും കോൺഫിഗറിൽ നിന്ന് നേരിട്ട് മാറ്റാൻ കഴിയുന്ന തരത്തിലാണ് എഴുതിയിരിക്കുന്നത്. കൂടാതെ, പ്രകടനം വർദ്ധിപ്പിക്കുന്നതിന്, default.rsync-ന് പകരം default.rsyncssh നൽകി, കൂടാതെ inotify പരിധികൾക്കായി കേർണൽ ട്യൂൺ ചെയ്തു. അതായത്, മുകളിലുള്ള കോൺഫിഗറേഷൻ മിക്ക ജോലികൾക്കും അനുയോജ്യമാണ്, എന്നാൽ ഞങ്ങളുടെ നിർദ്ദിഷ്ട സാഹചര്യത്തിൽ ഇനിപ്പറയുന്നവ പ്രവർത്തിക്കുന്നു:

ക്രമീകരണങ്ങൾ = ( logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", statusInterval = 5, --<== чтобы видеть что происходит без включения подробного лога } sync { default.rsyncssh, source = "/raid", host = "node02", targetdir = "/raid", rsyncOps = {"-ausS", "--temp-dir=/tmp"}, --<== описано выше delay = 3, --<== ставим по-меньше, чтобы очередь не забивать init = function(event) --<== перезагрузка функции инициализации. как она выглядела в оригинале можно посмотреть в документации или в исходниках log("Normal","Skipping startup synchronization...") --<== чтобы знать, что мы этот код вообще запускали и когда end } sync { default.rsyncssh, source = "/raid", host = "node03", targetdir = "/raid", rsyncOps = {"-ausS", "--temp-dir=/tmp"}, delay = 3, init = function(event) log("Normal","Skipping startup synchronization...") end }

കേർണൽ ക്രമീകരണങ്ങൾ

inotify-ന് മൂന്ന് ഓപ്ഷനുകൾ ഉണ്ട് (ls /proc/sys/fs/inotify/ കാണുക):
max_queued_events - ക്യൂവിൽ പരമാവധി എണ്ണം ഇവൻ്റുകൾ; സ്ഥിരസ്ഥിതി = 16384;
max_user_instances - ഒരു ഉപയോക്താവിന് എത്ര inotify സംഭവങ്ങൾ സമാരംഭിക്കാനാകും; സ്ഥിരസ്ഥിതി = 128;
max_user_watches - ഒരു ഉപയോക്താവിന് എത്ര ഫയലുകൾ കാണാൻ കഴിയും; സ്ഥിരസ്ഥിതി = 8192.

പ്രവർത്തന മൂല്യങ്ങൾ:
echo " fs.inotify.max_user_watches = 16777216 # fs.inotify.max_queued_events = 65536 " >> /etc/sysctl.conf echo 16777216 > /proc/sys/fs/inotify/watches_user_6 ify /max_queued_events

അങ്ങനെ എല്ലാം നിർമ്മാണത്തിൽ പ്രവർത്തിക്കാൻ തുടങ്ങി.

നിങ്ങളുടെ ശ്രദ്ധയ്ക്ക് നന്ദി!

റിക്രൂട്ട് ചെയ്യുക ഒക്ടോബർ 24, 2011 00:52

Rsync: വേഗതയേറിയതും വഴക്കമുള്ളതുമായ റിമോട്ട്, ലോക്കൽ ഫയൽ കോപ്പി ചെയ്യുന്നതിനുള്ള ശക്തമായ യൂട്ടിലിറ്റി

  • തടി മുറി *

Unix-നുള്ള പുരാതന റിമോട്ട് കോപ്പി പ്രോഗ്രാമായ rcp-യെ മാറ്റിസ്ഥാപിക്കുന്നതിനാണ് Rsync രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. അതിൻ്റെ വിപുലമായ സമന്വയവും ഫയൽ ട്രാൻസ്ഫർ കഴിവുകളും കാരണം, മിററുകൾ സൃഷ്ടിക്കാൻ rsync ഉപയോഗിക്കാറുണ്ട്.
ഒരു സമർത്ഥമായ അൽഗോരിതം ഉപയോഗിച്ച്, മാറ്റങ്ങൾ കണ്ടെത്തുന്നതിന് രണ്ട് ഫയലുകൾ താരതമ്യം ചെയ്യാതെ ഫയലുകളിലേക്ക് മാറ്റങ്ങൾ മാത്രം കൈമാറാൻ rsync rsync-നെ അനുവദിക്കുന്നു. കൂടാതെ, rsync ഓൺ-ദി-ഫ്ലൈ കംപ്രഷൻ നടത്തുന്നു, പരമാവധി കാര്യക്ഷമതയോടെ ഫയലുകൾ കൈമാറാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
മുകളിൽ വിവരിച്ച ഗുഡികൾക്ക് പുറമേ, rsync-ന് ഉപയോഗപ്രദമായ നിരവധി സുരക്ഷാ സവിശേഷതകളും ഉണ്ട്. സുരക്ഷിതമായ ഡാറ്റ കൈമാറ്റത്തിനുള്ള ശുപാർശ ചെയ്യുന്ന പ്രോട്ടോക്കോൾ ആയ ssh-നെ ഇത് പിന്തുണയ്ക്കുന്നു; വിവരങ്ങൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് മുമ്പ്, ഇത് ഒരു താൽക്കാലിക ഫയലിലേക്ക് എഴുതുന്നു, അങ്ങനെ ഒറിജിനലിന് ഒന്നും സംഭവിക്കുന്നില്ല; ഒടുവിൽ, കമാൻഡുകൾ സുരക്ഷിതമായി ഡീബഗ്ഗുചെയ്യുന്നതിനുള്ള ഒരു പ്രത്യേക മോഡിനെ ഇത് പിന്തുണയ്ക്കുന്നു.
Rsync ഉപയോഗിക്കാൻ എളുപ്പമാണ്, എന്നാൽ ഒരു ക്ലിക്ക് ആൻഡ് പ്ലേ പ്രോഗ്രാമല്ല. ഇത് വളരെ ഉപയോഗപ്രദമായ ഒരു ശക്തമായ ഉപകരണമാണ്, എന്നാൽ ഇത് എളുപ്പത്തിൽ എന്തെങ്കിലും നശിപ്പിക്കാൻ കഴിയുന്നതിനാൽ ശ്രദ്ധിക്കുക.

യൂട്ടിലിറ്റി വാക്യഘടന
യൂട്ടിലിറ്റിയുടെ വാക്യഘടന ലളിതവും തികച്ചും സാധാരണവുമാണ്.
rsync [ഓപ്ഷനുകൾ] ഉറവിടം [ലക്ഷ്യം]
ഉറവിടം മാത്രം വ്യക്തമാക്കുന്നതിലൂടെ, കോപ്പി ഓപ്പറേഷൻ ഇല്ലാത്ത ഫയലുകളുടെ ഒരു ലിസ്റ്റ് ഞങ്ങൾ കാണും.

ഓപ്ഷനുകളും ഉദാഹരണങ്ങളും
മനസ്സിലാക്കാനുള്ള എളുപ്പത്തിനായി, ഞാൻ ആദ്യം പ്രാദേശികമായി സമന്വയ പ്രവർത്തനങ്ങൾ അവതരിപ്പിക്കുന്നു.
രണ്ട് ഡയറക്ടറികൾ സമന്വയിപ്പിക്കുന്നതിനുള്ള ഒരു ദ്രുത മാർഗം ഓപ്ഷൻ ഉപയോഗിക്കുക എന്നതാണ് -എ:
rsync -a foobar_src/ foobar_dst/
ഈ സാഹചര്യത്തിൽ, ഉറവിടത്തിൽ നിന്നുള്ള ഫയലുകളും ഡയറക്ടറികളും ലക്ഷ്യസ്ഥാനത്തേക്ക് പകർത്തും, അവിടെ ഫയലുകൾ ഉണ്ടെങ്കിൽ, പേരുമായി പൊരുത്തപ്പെടുന്നവ തിരുത്തിയെഴുതപ്പെടും, ബാക്കിയുള്ളവ സ്പർശിക്കില്ല.

ഓപ്ഷൻ -എയൂട്ടിലിറ്റിയുടെ ആർക്കൈവ് മോഡ് വ്യക്തമാക്കുന്നു, കൂടാതെ ഒരു കൂട്ടം ഓപ്ഷനുകൾക്ക് തുല്യമാണ്:
-r, --recursive - ആവർത്തന മോഡ്;
-l, --links - പുനഃസൃഷ്ടി സിംലിങ്കുകൾ, പ്രതീകാത്മക ലിങ്കുകളും കൈമാറ്റം ചെയ്യപ്പെടും എന്നാണ് ഇതിനർത്ഥം;
-p, --perms - അവകാശങ്ങളുടെ കൈമാറ്റം;
-t, --times - പരിഷ്ക്കരണ സമയം കൈമാറുകയും റിമോട്ട് സിസ്റ്റത്തിൽ അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുക. കൃത്യമായ സമന്വയത്തിനായി ഈ കീ സജ്ജമാക്കിയിരിക്കണം;
-g, --group - ടാർഗെറ്റ് ഫയലിൻ്റെ ഗ്രൂപ്പിനെ ഉറവിടത്തിന് തുല്യമായി സജ്ജമാക്കുക;
-o, --owner - ടാർഗെറ്റ് ഫയലിൻ്റെ ഉടമയെ സോഴ്‌സ് ഒന്നായി സജ്ജമാക്കുക;
-D, - --devices --specials - പോലെ തന്നെ - ഉപകരണ ഫയൽ തരവും പ്രത്യേക ഫയൽ തരവും യഥാർത്ഥമായതിന് സമാനമായി സജ്ജമാക്കുക.
തൽഫലമായി, ഉറവിട ഡയറക്ടറിയുടെ ഒരു പകർപ്പ് നമുക്ക് ലഭിക്കും. വഴിയിൽ, പുതിയ ഹാർഡ് ഡ്രൈവിൽ /etc/fstab എഡിറ്റ് ചെയ്‌ത്, ഗ്രബ് ഇൻസ്റ്റാൾ/വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് മറ്റൊരു ഹാർഡ് ഡ്രൈവിലേക്ക് OS കൈമാറുമ്പോൾ ഇത് ഉപയോഗിക്കാം - ഞങ്ങൾക്ക് ഒരു വർക്കിംഗ് സിസ്റ്റം ലഭിക്കുന്നു, പക്ഷേ അത് മറ്റൊരു വിഷയമാണ്.

യൂട്ടിലിറ്റിയുടെ പ്രവർത്തനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന്, ഒരു ഓപ്ഷൻ ഉണ്ട് - v, --വെർബോസ്. കൂടുതൽ ഓപ്ഷനുകൾ -വി, യൂട്ടിലിറ്റിയുടെ ഔട്ട്പുട്ട് കൂടുതൽ വിവരദായകമായിരിക്കും. നാല് ഓപ്ഷനുകൾ ഉപയോഗിച്ച് പരമാവധി വിവര ഉള്ളടക്കം നേടാനാകും -v, --verbose.

സോഴ്‌സ് ഡയറക്‌ടറിയിൽ ഞങ്ങൾക്ക് കാലികമായ വിവരങ്ങൾ ഉണ്ടെങ്കിൽ, ജോലി സമയത്ത് ഉറവിടത്തിൽ നിന്ന് ഇല്ലാതാക്കിയതോ നീക്കിയതോ ആയ വിവരങ്ങൾ ഉപയോഗിച്ച് റിസീവറിനെ തടസ്സപ്പെടുത്താതിരിക്കാൻ, ഞങ്ങൾ പഴയ ഫയലുകളും ഡയറക്ടറികളും ഇല്ലാതാക്കേണ്ടതുണ്ട്. ഇതിനായി നിരവധി നീക്കംചെയ്യൽ ഓപ്ഷനുകൾ ഉണ്ട്, അവയിൽ ഓരോന്നിനും അതിൻ്റേതായ നീക്കംചെയ്യൽ അൽഗോരിതം നൽകുന്നു. അവയിൽ ഇതിനകം ആറ് ഉണ്ട്!
--delte-during എന്നതിൻ്റെ ചുരുക്കിയ രൂപമാണ് --del;
--delete - റിസീവറിൽ നിന്ന് അധിക ഫയലുകൾ ഇല്ലാതാക്കുക;
--delete-before - ട്രാൻസ്മിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് റിസീവർ ഇല്ലാതാക്കുന്നു;
--delete-during - ട്രാൻസ്മിഷൻ സമയത്ത് റിസീവർ ഇല്ലാതാക്കുന്നു, പക്ഷേ മുമ്പ്;
--delete-delay - ഇല്ലാതാക്കൽ കാലതാമസം/കൈമാറ്റ സമയത്ത് ഇല്ലാതാക്കാൻ ഫയലുകൾ കണ്ടെത്തുക, എന്നാൽ കൈമാറ്റത്തിന് ശേഷം ഇല്ലാതാക്കുക;
--delete-after - സംപ്രേഷണത്തിന് ശേഷം റിസീവർ ഇല്ലാതാക്കുന്നു, പക്ഷേ അതിന് മുമ്പല്ല;
--delete-excluded - റിസീവറിലെ ഒഴിവാക്കിയ ഫയലുകളും ഇല്ലാതാക്കുന്നു; ഇതിനായി, ഒരു പാറ്റേൺ വ്യക്തമാക്കിയിരിക്കുന്നു (--exclude=PATTERN).

നമുക്ക് റിസീവറിൽ ഏറ്റവും പുതിയ ഫയലുകൾ ഉണ്ടെന്ന് കരുതുക, അവ ഉറവിടത്തിൽ നിന്ന് പഴയവ ഉപയോഗിച്ച് തിരുത്തിയെഴുതാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നില്ല, തുടർന്ന് കീ ഇതിനായി ഉപയോഗിക്കുന്നു -u, --അപ്ഡേറ്റ്.
-u, --update - റിസീവറിലെ ഫയൽ പുതിയതാണെങ്കിൽ ഫയലുകൾ ഒഴിവാക്കുക.
ഡയറക്‌ടറി തീയതികൾ മാറിയെങ്കിൽ പരിഭ്രാന്തരാകരുത്, കാരണം... ഫയലുകൾ തന്നെ തിരുത്തിയെഴുതിയിട്ടില്ല.

ചിലപ്പോൾ ഫയലുകൾ കേടാകുകയോ പരിഷ്കരിക്കുകയോ ചെയ്യാം, എന്നാൽ തീയതിയും വലുപ്പവും ഒന്നുതന്നെയാണ്. അപ്പോൾ നിങ്ങൾക്ക് ചെക്ക്സം പരിശോധന, ഓപ്ഷൻ ഉപയോഗിക്കാം -സി, --ചെക്ക്സം.

യൂണിവേഴ്സിറ്റിയിൽ നിന്നും ജോലിയിൽ നിന്നുമുള്ള ഫോട്ടോഗ്രാഫുകൾ, സംഗീതം, ജോലി എന്നിവയുടെ ശേഖരങ്ങളുടെ ബാക്കപ്പ് പകർപ്പ് എങ്ങനെ നിർമ്മിക്കാമെന്ന് കണ്ടെത്തുക എന്നതായിരുന്നു എൻ്റെ ചുമതല. അതേ സമയം, ഉറവിടത്തിലെ വിവരങ്ങൾ എല്ലായ്പ്പോഴും കാലികമാണ്, ഇല്ലാതാക്കുന്നത് മാലിന്യമാണ്. എൻ്റെ പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം:
foobar_src/ foobar_dst/ സമയത്ത് rsync -auvv --delete-during
ഇത് എൻ്റെ റിസീവറിനെ അപ്‌ഡേറ്റ് ചെയ്യും, അതിൽ ഇതിനകം എന്തെങ്കിലും പൂരിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ - ഇത് ഉറവിടത്തിൽ ഇല്ലാത്തവ വൃത്തിയാക്കും, പക്ഷേ പുതിയ ഫയലുകളെ ബാധിക്കില്ല, ഓരോ ഫയലിൻ്റെയും സ്ഥിതിവിവരക്കണക്കുകളും സ്റ്റാറ്റസും പ്രദർശിപ്പിക്കുക.

ദൂരെയുള്ള ജോലി
കൂടാതെ, ssh വഴി പ്രവർത്തിക്കാനുള്ള അതിൻ്റെ കഴിവ് വളരെ ഉപയോഗപ്രദമാകും. ഇത് ചാനൽ എൻക്രിപ്ഷൻ ഉറപ്പാക്കുന്നു, നിങ്ങൾ ഇൻ്റർനെറ്റിൽ രണ്ട് സെർവറുകൾ സമന്വയിപ്പിക്കുകയാണെങ്കിൽ ഇത് വളരെ പ്രധാനമാണ്. ട്രാഫിക് കുറയ്ക്കാൻ, നെറ്റ്‌വർക്കിലൂടെ കൈമാറുമ്പോൾ rsync-ന് ഡാറ്റ കംപ്രസ്സുചെയ്യാനും കഴിയും.
ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ ആവശ്യമാണ്:
-e - ഉപയോഗിക്കാൻ റിമോട്ട് ഷെൽ സജ്ജമാക്കുക;
-z - ട്രാൻസ്മിറ്റ് ചെയ്ത ഡാറ്റ കംപ്രസ് ചെയ്യുക, അല്ലെങ്കിൽ സജ്ജമാക്കുക:
-compress-level=9 - കംപ്രഷൻ ലെവൽ സജ്ജീകരിക്കുന്ന കംപ്രഷൻ.

ഒരു റിമോട്ട് ഹോസ്റ്റിൽ നിന്ന് ssh വഴി പകർത്തുന്നതിനുള്ള ഉദാഹരണം:
rsync -avv --delete-during -compress-level=9 -e "ssh -p remote_ssh_port" user@host:/dir/to/foobar_src foobar_dst/
ഈ സാഹചര്യത്തിൽ, ഉറവിട ഭാഗത്ത് നിങ്ങൾ rsync യൂട്ടിലിറ്റി ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

ഈ വിവരം പലർക്കും ഉപകാരപ്പെടുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. rsync യൂട്ടിലിറ്റിയെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ അതിൻ്റെ ഡോക്യുമെൻ്റേഷനിൽ നിങ്ങൾക്ക് കണ്ടെത്താനാകും, ഭാഗ്യവശാൽ അത് നന്നായി വിവരിച്ചിരിക്കുന്നു.
ഒരു റിമോട്ട് ssh ഷെൽ ഉപയോഗിക്കാതെ നേരിട്ടുള്ള കണക്ഷനായി rSync ഡെമൺ എങ്ങനെ ഉയർത്താം എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങളും ഓരോ രുചിക്കും നിറത്തിനുമുള്ള മറ്റ് നിരവധി ഓപ്ഷനുകളുടെ വിവരണവും അവിടെ നിങ്ങൾക്ക് കണ്ടെത്താനാകും.

ടാഗുകൾ: rsync, പകർത്തൽ, ഫയൽ ബാക്കപ്പ്, ഫയൽ സമന്വയം

rsync ഗ്നു ലോംഗ് പാരാമീറ്റർ നാമകരണ കൺവെൻഷൻ ഉപയോഗിക്കുന്നു. പല കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾക്കും രണ്ട് ഓപ്ഷനുകളുണ്ട്: ഒന്ന് ചെറുതും മറ്റൊന്ന് ദൈർഘ്യമേറിയതുമാണ്. രണ്ട് ഓപ്ഷനുകളെ കോമ ഉപയോഗിച്ച് വേർതിരിക്കുന്നതിലൂടെ ഇത് ചുവടെ പ്രതിഫലിക്കുന്നു. ചില ഓപ്ഷനുകൾക്ക് ദൈർഘ്യമേറിയ ഓപ്ഷൻ മാത്രമേയുള്ളൂ. ഒരു അധിക മൂല്യമുള്ള പാരാമീറ്ററുകൾക്കുള്ള "=" ചിഹ്നം ഓപ്ഷണൽ ആണ് കൂടാതെ ഒരു സ്പേസ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാം.

    H, --help ലഭ്യമായ rsync ഓപ്ഷനുകൾ വിവരിക്കുന്ന ഒരു ചെറിയ സൂചന പ്രിൻ്റ് ചെയ്യുന്നു

    പതിപ്പ് rsync പതിപ്പ് നമ്പർ പ്രിൻ്റ് ചെയ്ത് പുറത്തുകടക്കുന്നു

    V, --verbose ഈ ഐച്ഛികം കൈമാറ്റം ചെയ്യുമ്പോൾ അച്ചടിക്കുന്ന വെർബോസിറ്റിയുടെ അളവ് വർദ്ധിപ്പിക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, rsync നിശബ്ദമായി പ്രവർത്തിക്കുന്നു. ട്രാൻസ്ഫർ ചെയ്ത ഫയലുകളുടെ ഒരു ലിസ്റ്റും അവസാനം ഒരു ചെറിയ സംഗ്രഹവും പ്രദർശിപ്പിക്കുന്നതിൻ്റെ ഫലമാണ് One -v. രണ്ട് -vs നഷ്‌ടമായ ഫയലുകളെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ വെളിപ്പെടുത്തുകയും അവസാനം കുറച്ച് കൂടുതൽ വിവരങ്ങൾ നൽകുകയും ചെയ്യുന്നു. rsync ഡീബഗ്ഗ് ചെയ്യുമ്പോൾ മാത്രം ഒരു വലിയ സംഖ്യ ആവശ്യമായി വന്നേക്കാം.

    Q, --quiet ട്രാൻസ്മിഷൻ വിശദാംശങ്ങളുടെ അളവ് കുറയ്ക്കുന്നു, പ്രാഥമികമായി റിമോട്ട് സെർവറിൽ നിന്നുള്ള സന്ദേശങ്ങൾ. ക്രോണിൽ നിന്ന് വിളിക്കുമ്പോൾ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാണ്.

    I, --ignore-times വലുപ്പവും പരിഷ്‌ക്കരണ സമയവും ഒരേപോലെയുള്ള ഫയലുകളെ സാധാരണയായി rsync ഒഴിവാക്കും. ഈ ക്രമീകരണം ഈ "ദ്രുത പരിശോധന" പ്രവർത്തനത്തെ പ്രവർത്തനരഹിതമാക്കുന്നു.

    വലിപ്പം മാത്രം സാധാരണയായി ഒരേ വലിപ്പവും പരിഷ്ക്കരണ സമയവും ഉള്ള ഫയലുകൾ rsync ഒഴിവാക്കുന്നു. --size-only ഉപയോഗിച്ച്, ഫയലുകൾ ഒരേ വലുപ്പമാണെങ്കിൽ, പരിഷ്‌ക്കരണ സമയം പരിഗണിക്കാതെ അവ ഒഴിവാക്കപ്പെടും. കൃത്യമായ സമയം സംഭരിക്കാത്ത മറ്റൊരു മിററിംഗ് സിസ്റ്റം പ്രവർത്തിപ്പിച്ചതിന് ശേഷം ഉടൻ തന്നെ rsync ഉപയോഗിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്.

    modify-window രണ്ട് ടൈംസ്റ്റാമ്പുകൾ താരതമ്യം ചെയ്യുമ്പോൾ, modify_window മൂല്യത്തിനുള്ളിൽ വ്യതിചലിച്ചാൽ ടൈംസ്റ്റാമ്പുകളെ rsync തുല്യമായി കണക്കാക്കുന്നു. സാധാരണയായി ഈ മൂല്യം പൂജ്യമാണ്, എന്നാൽ ചില സന്ദർഭങ്ങളിൽ ഇത് ഉയർന്ന മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കുന്നത് നിങ്ങൾക്ക് ഉപയോഗപ്രദമാണെന്ന് തോന്നിയേക്കാം. പ്രായോഗികമായി, രണ്ടാമത്തേതിലേക്ക് സമയത്തെ പ്രതിനിധീകരിക്കാൻ കഴിയാത്ത ഒരു Windows FAT ഫയൽ സിസ്റ്റത്തിലേക്ക് മാറ്റുമ്പോൾ, --modify_window=1 വളരെ ഉപയോഗപ്രദമാണ്.

    C, --checksum പ്രക്ഷേപണത്തിന് മുമ്പ് 128-ബിറ്റ് MD4 അൽഗോരിതം ഉപയോഗിച്ച് എല്ലാ ഫയലുകളുടെയും ചെക്ക്സം കണക്കാക്കാൻ അയയ്ക്കുന്ന വശത്തെ നിർബന്ധിക്കുന്നു. അതേ വലുപ്പത്തിലും ചെക്ക്‌സത്തിലും നിലവിലുള്ള ഫയലുകളുടെ സംപ്രേക്ഷണം അനുവദിക്കുന്നതിന് ചെക്ക്സം സ്വീകരിക്കുന്ന അവസാനത്തിൽ പരിശോധിച്ചുറപ്പിക്കുന്നു. ഈ ക്രമീകരണം ചില മന്ദതയ്ക്ക് കാരണമായേക്കാം.

എന്നിരുന്നാലും, മൾട്ടിലിങ്ക് ചെയ്ത ഫയലുകൾക്കായി തിരയുന്നത് ചെലവേറിയതിനാൽ -a ഹാർഡ് ലിങ്കുകൾ സംരക്ഷിക്കുന്നില്ല എന്നത് ശ്രദ്ധിക്കുക. നിങ്ങൾ -H പ്രത്യേകം വ്യക്തമാക്കേണ്ടതുണ്ട്.

    R, --relative ആപേക്ഷിക പാതകൾ ഉപയോഗിക്കുക. ഇതിനർത്ഥം കമാൻഡ് ലൈനിൽ വ്യക്തമാക്കിയ മുഴുവൻ പാതകളും ഫയലിൻ്റെ പേരുകളുടെ അവസാന ഭാഗങ്ങൾക്ക് പകരം അയച്ചു എന്നാണ്. പ്രായോഗികമായി, നിങ്ങൾക്ക് ഒരേസമയം നിരവധി വ്യത്യസ്ത ഡയറക്ടറികൾ അയയ്ക്കേണ്ടിവരുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്. ഉദാഹരണത്തിന്, നിങ്ങൾ കമാൻഡ് വ്യക്തമാക്കുകയാണെങ്കിൽ:

rsync foo/bar/foo.c remote:/tmp/

അപ്പോൾ അത് റിമോട്ട് മെഷീനിൽ foo.c in /tmp ഫയൽ സൃഷ്ടിക്കും. പകരം എങ്കിൽ നിങ്ങൾ വ്യക്തമാക്കുക

Rsync -R foo/bar/foo.c remote:/tmp/

അപ്പോൾ ഫയൽ റിമോട്ട് മെഷീനിൽ /tmp/foo/bar/foo.c-ൽ സൃഷ്ടിക്കപ്പെടും - മുഴുവൻ പാതയും സംരക്ഷിക്കപ്പെടും.

--relative ഓപ്ഷൻ പ്രവർത്തനരഹിതമാക്കുന്നു. നിങ്ങൾക്ക് --files-from ഓപ്ഷൻ ഉപയോഗിക്കണമെങ്കിൽ --relative ഓപ്‌ഷൻ പ്രവർത്തനക്ഷമമാക്കിയാൽ മാത്രമേ ഇത് ആവശ്യമുള്ളൂ.

    ഇല്ല-സൂചിപ്പിച്ച-ദിർസ്

--relative എന്നതുമായി സംയോജിപ്പിക്കുമ്പോൾ, ഓരോ പാഥിലുമുള്ള എല്ലാ ബാധിത ഡയറക്‌ടറികളും ട്രാൻസ്ഫർ പ്രക്രിയയുടെ ഭാഗമായി വ്യക്തമായി പകർത്തില്ല. ഇത് കൈമാറ്റത്തെ കൂടുതൽ അനുയോജ്യമാക്കുകയും കൈമാറ്റം സൂചിപ്പിക്കുന്ന പാതകളിൽ ജോടിയാക്കാത്ത (താഴെ ഉദാഹരണം കാണുക) പ്രതീകാത്മക ലിങ്കുകൾ അനുവദിക്കുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഫയൽ "/path/foo/file" എന്നത് -R ഓപ്‌ഷനിലൂടെ കടന്നുപോകുകയാണെങ്കിൽ, "/path", "/path/foo" എന്നിവ സ്വീകരിക്കുന്ന അവസാനത്തിലെ ഡയറക്‌ടറികൾ/ലിങ്കുകളുമായി കൃത്യമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് സ്ഥിരസ്ഥിതിയായി rsync ഉറപ്പാക്കും. . "/path" ഒരു യഥാർത്ഥ ഡയറക്ടറിയും മറുവശത്ത് ഒരു പ്രതീകാത്മക ലിങ്കും ആയിരിക്കുമ്പോൾ --no-inmplied-dirs ഓപ്ഷൻ നിങ്ങളെ പൊരുത്തക്കേട് അവഗണിക്കാൻ അനുവദിക്കുന്നു. ഈ സാഹചര്യത്തിൽ ഈ പരാമീറ്റർ ഉപയോഗിച്ച് ഒന്നും മാറ്റാൻ rsync ശ്രമിക്കുന്നില്ല.

    B, --backup ഈ ഓപ്‌ഷൻ ഉപയോഗിച്ച്, സ്വീകരിക്കുന്ന വശത്ത് നിലവിലുള്ള ഫയലുകൾ ബന്ധപ്പെട്ട ഫയൽ കൈമാറ്റം ചെയ്യപ്പെടുകയോ ഇല്ലാതാക്കുകയോ ചെയ്യുമ്പോൾ ഉടൻ തന്നെ പുനർനാമകരണം ചെയ്യപ്പെടും. --backup-dir, --suffix എന്നീ ഓപ്‌ഷനുകൾ ഉപയോഗിച്ച് ഫയലുകൾ എവിടേക്കാണ് നീക്കിയിരിക്കുന്നതെന്നും പേരിലേക്ക് എന്ത് സഫിക്‌സ് (ആവശ്യമെങ്കിൽ) ചേർക്കണമെന്നും നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാകും.

    Backup-dir=DIR --ബാക്കപ്പുമായി സംയോജിപ്പിച്ച്, ബാക്കപ്പുകൾ എവിടെ സംരക്ഷിക്കണമെന്ന് ഡയറക്ടറി വ്യക്തമാക്കുന്നു. വർദ്ധിച്ചുവരുന്ന ബാക്കപ്പുകൾക്ക് ഇത് വളരെ ഉപയോഗപ്രദമാണ്. --suffix ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഓപ്ഷണലായി ഒരു സഫിക്സ് വ്യക്തമാക്കാം (അല്ലെങ്കിൽ ബാക്കപ്പ് ഫയലുകൾ അവയുടെ യഥാർത്ഥ പേരുകൾ സൂക്ഷിക്കും).

    Suffix=SUFFIX --backup (-b) സജ്ജീകരിക്കുമ്പോൾ ഫയൽ ബാക്കപ്പുകൾക്കുള്ള ഡിഫോൾട്ട് സഫിക്സ് അല്ലാതെ മറ്റൊരു സഫിക്സ് വ്യക്തമാക്കാൻ ഈ ഐച്ഛികം നിങ്ങളെ അനുവദിക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, ഈ സഫിക്‌സ് ശൂന്യമായ സ്‌ട്രിംഗിലേക്ക് പുനഃസജ്ജമാക്കുന്ന --backup-dir സജ്ജീകരിക്കാതെ ~ ആയി സജ്ജീകരിച്ചിരിക്കുന്നു.

    യു, --അപ്‌ഡേറ്റ് സ്രോതസ് ഫയലുകളേക്കാൾ പിന്നീടുള്ള തീയതിയിൽ സ്വീകരിക്കുന്ന അവസാനത്തിൽ നിലവിലുള്ള ഏതെങ്കിലും ഫയലുകൾ ഒഴിവാക്കണമെന്ന് വ്യക്തമാക്കുന്നു.

    L, --copy-links ഒരു പ്രതീകാത്മക ലിങ്ക് കണ്ടെത്തിയാൽ, അത് ചൂണ്ടിക്കാണിക്കുന്ന ഫയൽ അതേ പ്രതീകാത്മക ലിങ്കിന് പകരം സ്വീകരിക്കുന്ന അവസാനത്തിലേക്ക് പകർത്തുന്നു.

    കോപ്പി-സുരക്ഷിത-ലിങ്കുകൾ പ്രതീകാത്മക ലിങ്കുകളാൽ പരാമർശിച്ചിരിക്കുന്ന യഥാർത്ഥ ഡയറക്‌ടറി ട്രീയ്‌ക്ക് പുറത്തുള്ള എല്ലാ ഒബ്‌ജക്റ്റുകളും പകർത്തുന്നു. സമ്പൂർണ്ണ പ്രതീകാത്മക ലിങ്കുകൾ, കൂടാതെ --relative സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ഉറവിട ഡയറക്ടറി ട്രീയിലെ ഏതെങ്കിലും പ്രതീകാത്മക ലിങ്കുകൾ, സാധാരണ ഫയലുകളായി കണക്കാക്കുന്നു.

    ടാർഗെറ്റ് ഡയറക്‌ടറി ട്രീയ്‌ക്ക് പുറത്തുള്ള ഒബ്‌ജക്‌റ്റിനെ സൂചിപ്പിക്കുന്ന ഏതെങ്കിലും പ്രതീകാത്മക ലിങ്ക് അവഗണിക്കാൻ സുരക്ഷിത ലിങ്കുകൾ വ്യക്തമാക്കുന്നു. എല്ലാ സമ്പൂർണ്ണ റഫറൻസുകളും ഒഴിവാക്കിയിരിക്കുന്നു. --relative എന്നതിനൊപ്പം ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നത് അപ്രതീക്ഷിത ഫലങ്ങൾ ഉണ്ടാക്കിയേക്കാം.

    H, --hard-links ഉറവിടത്തിൽ നിലവിലുള്ളത് അനുസരിച്ച് ലക്ഷ്യസ്ഥാനത്ത് ഹാർഡ് ലിങ്കുകൾ പുനഃസൃഷ്ടിക്കാൻ വ്യക്തമാക്കുന്നു. ഈ ഓപ്ഷൻ കൂടാതെ, ഹാർഡ് ലിങ്കുകൾ സാധാരണ ഫയലുകൾ പോലെ പരിഗണിക്കും.

കൈമാറ്റം ചെയ്യേണ്ട ഫയലുകളുടെ പട്ടികയിൽ ലിങ്കിൻ്റെ രണ്ട് ഭാഗങ്ങളും ഉണ്ടെങ്കിൽ മാത്രമേ rsync-ന് ഹാർഡ് ലിങ്കുകൾ കണ്ടെത്താനാകൂ എന്നത് ശ്രദ്ധിക്കുക. ഈ ക്രമീകരണം ഉപയോഗിച്ച് കൈമാറ്റങ്ങൾ വളരെ മന്ദഗതിയിലാകും, അതിനാൽ ആവശ്യമുള്ളപ്പോൾ മാത്രം ഉപയോഗിക്കുക.

    W, --whole-file ഈ ഓപ്‌ഷൻ rsync-ൻ്റെ ഡിഫറൻഷ്യൽ അൽഗോരിതം അപ്രാപ്‌തമാക്കുകയും അതിലൂടെ മുഴുവൻ ഫയലും പൂർണ്ണമായി കൈമാറ്റം ചെയ്യപ്പെടുകയും ചെയ്യുന്നു. ഉറവിടത്തിനും ഡെസ്റ്റിനേഷൻ മെഷീനുകൾക്കുമിടയിലുള്ള ബാൻഡ്‌വിഡ്ത്ത് ഡിസ്‌ക് ആക്‌സസിനേക്കാൾ വിശാലമാണെങ്കിൽ ഈ ഓപ്‌ഷൻ ഉപയോഗിച്ച് കൈമാറ്റം വേഗത്തിലായേക്കാം. ബാൻഡ്‌വിഡ്ത്ത് (പ്രത്യേകിച്ച് "ഡ്രൈവ്" യഥാർത്ഥത്തിൽ ഒരു നെറ്റ്‌വർക്ക് ഫയൽ സിസ്റ്റമാണെങ്കിൽ.) ഉറവിടവും ലക്ഷ്യസ്ഥാനവും പ്രാദേശികമാണെങ്കിൽ ഈ ഓപ്ഷൻ സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കും.

    നോ-ഹോൾ-ഫയൽ സ്ഥിരസ്ഥിതിയായി പ്രാപ്തമാക്കിയാൽ --all-file ഓപ്ഷൻ അപ്രാപ്തമാക്കുന്നു.

    P, --perms സ്വീകരിക്കുന്ന ഭാഗത്തേക്കുള്ള എല്ലാ അവകാശങ്ങളും യഥാർത്ഥമായത് പോലെ തന്നെ പകർത്തുന്നു.

ഈ പരാമീറ്റർ വ്യക്തമാക്കാതെ, ഓരോ പുതിയ ഫയലിനും യഥാർത്ഥമായതിന് സമാനമായ അനുമതികൾ ലഭിക്കുന്നു, സ്വീകരിക്കുന്ന ഭാഗത്ത് പ്രാബല്യത്തിൽ വരുന്ന ഉമാസ്ക് കണക്കിലെടുക്കുമ്പോൾ, മറ്റുള്ളവരെല്ലാം (അപ്‌ഡേറ്റ് ചെയ്യുന്നവ ഉൾപ്പെടെ) നിലവിലുള്ള അനുമതികൾ നിലനിർത്തുന്നു (ഇത് മറ്റുള്ളവരുടെ അതേ സ്വഭാവമാണ്. പകർത്തൽ യൂട്ടിലിറ്റികൾക്ക് cp പോലുള്ള ഫയലുകളുണ്ട്).

    O, --owner, യഥാർത്ഥമായത് പോലെ തന്നെ, സ്വീകരിക്കുന്ന ഭാഗത്തേക്ക് ഉടമയുടെ ആട്രിബ്യൂട്ടുകൾ പകർത്തുന്നു. മിക്ക സിസ്റ്റങ്ങളിലും, ഒരു ഫയലിൻ്റെ ഉടമയെ സജ്ജമാക്കാൻ സൂപ്പർ ഉപയോക്താവിന് മാത്രമേ അവകാശമുള്ളൂ. ഒരു chrooted പരിതസ്ഥിതിയിലാണ് റിമോട്ട് ഡെമൺ പ്രവർത്തിക്കുന്നതെങ്കിൽ, റിമോട്ട് സൈഡിന് /etc/passwd-ലെ ഉപയോക്തൃനാമങ്ങളിലേക്കുള്ള ആക്‌സസ് ഇല്ലാത്തതിനാൽ --numeric-ids ഐച്ഛികം സൂചിപ്പിക്കപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്.

    G, --group ഗ്രൂപ്പ് ആട്രിബ്യൂട്ടുകൾ സ്വീകരിക്കുന്ന ഭാഗത്തേക്ക് യഥാർത്ഥമായത് പോലെ തന്നെ പകർത്തുന്നു. റിമോട്ട് സൈഡ് ഒരു സൂപ്പർ-യൂസർ ആയി പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ, സ്വീകരിക്കുന്ന സൈഡ് ഉപയോക്താവ് അംഗമായ ഗ്രൂപ്പുകളുടെ മൂല്യങ്ങൾ മാത്രമേ സംരക്ഷിക്കപ്പെടുകയുള്ളൂ (ഗ്രൂപ്പിൻ്റെ പേരാണ് പ്രധാനം, അതിൻ്റെ ഐഡിയല്ല).

    D, --devices പ്രതീകങ്ങളെ കുറിച്ചുള്ള വിവരങ്ങൾ കൈമാറുന്നതിനും സ്വീകരിക്കുന്ന ഭാഗത്ത് അവ പുനഃസൃഷ്ടിക്കുന്നതിന് ബ്ലോക്ക് ഉപകരണങ്ങൾ നൽകുന്നതിനും വ്യക്തമാക്കുന്നു. സൂപ്പർ യൂസറിന് മാത്രമേ ലഭ്യമാകൂ.

    T, --times ഫയൽ പരിഷ്‌ക്കരണ സമയങ്ങൾ ട്രാൻസ്മിറ്റ് ചെയ്യുന്നതിനും സ്വീകരിക്കുന്ന ഭാഗത്തുള്ള അനുബന്ധ ആട്രിബ്യൂട്ട് അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനും വ്യക്തമാക്കുന്നു. ഈ പരാമീറ്റർ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, കാലക്രമേണ മാറാത്ത ഫയലുകൾ ഒഴിവാക്കുന്നതിനുള്ള ട്രാൻസ്ഫർ ഒപ്റ്റിമൈസേഷൻ ഫലപ്രദമല്ലെന്ന് ശ്രദ്ധിക്കുക; മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, -t അല്ലെങ്കിൽ -a ഒഴിവാക്കുന്നത് അർത്ഥമാക്കുന്നത് അടുത്ത കൈമാറ്റം -I ഓപ്ഷൻ ഉപയോഗിച്ചായിരിക്കും, ചെക്ക്സമുകൾ എല്ലാ ഫയലുകൾക്കുമായി താരതമ്യം ചെയ്യും, അവയുമായി ബന്ധപ്പെട്ട സന്ദേശങ്ങൾ ലോഗിൽ ദൃശ്യമാകും. മാറിയിട്ടില്ല.

    N, --dry-run എന്നത് ഏതെങ്കിലും കൈമാറ്റങ്ങൾ നടത്താനല്ല, സംഭവിക്കാനിടയുള്ള പ്രവർത്തനങ്ങൾ റിപ്പോർട്ടുചെയ്യുന്നതിന് മാത്രമാണ് വ്യക്തമാക്കുന്നു.

    S, --sparse സ്വീകരിക്കുന്ന അവസാനത്തിൽ സ്ഥലം ലാഭിക്കുന്നതിന് ഫയൽ വിഘടനം കൂടുതൽ കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യാൻ ശ്രമിക്കുക.

ശ്രദ്ധിക്കുക: ലക്ഷ്യസ്ഥാനത്തിന് Solaris "tmpfs" ഫയൽ സിസ്റ്റം ഉണ്ടെങ്കിൽ ഈ ഓപ്ഷൻ ഉപയോഗിക്കരുത്. ഫയൽ അഴിമതിയിൽ അവസാനിക്കുന്ന "ദ്വാരങ്ങൾ" (ശൂന്യമായ പ്രദേശങ്ങൾ) ഇടയിലുള്ള തിരയൽ ശരിയായി കൈകാര്യം ചെയ്യാൻ സാധ്യമല്ല.

    പുതിയ ഫയലുകളൊന്നും സൃഷ്‌ടിക്കരുതെന്ന് നിലവിലുള്ളത് വ്യക്തമാക്കുന്നു - സ്വീകരിക്കുന്ന അവസാനത്തിൽ നിലവിലുള്ളവ മാത്രം അപ്‌ഡേറ്റ് ചെയ്യുക.

    അവഗണിക്കുക-നിലവിലുള്ളത് സ്വീകരിക്കുന്ന അവസാനത്തിൽ ഇതിനകം നിലവിലുള്ള ഫയലുകൾ അപ്‌ഡേറ്റ് ചെയ്യരുതെന്ന് വ്യക്തമാക്കുന്നു.

    Max-delete=NUM NUM ഫയലുകളും ഡയറക്‌ടറികളും ഇല്ലാതാക്കരുത്. കാര്യങ്ങളെ പ്രശ്‌നത്തിൽ നിന്ന് അകറ്റിനിർത്താൻ വളരെ വലിയ ഡയറക്ടറി മരങ്ങൾ മിറർ ചെയ്യുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്.

    അയയ്‌ക്കുന്ന ഭാഗത്ത് ഇല്ലാത്ത ഫയലുകൾ സ്വീകരിക്കുന്ന ഭാഗത്ത് ഇല്ലാതാക്കുക. --delete-excluded വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, കൈമാറ്റത്തിൽ നിന്ന് ഒഴിവാക്കിയ ഫയലുകളും ഇല്ലാതാക്കൽ പ്രക്രിയയിൽ നിന്ന് ഒഴിവാക്കപ്പെടും.

ആവർത്തന ഡയറക്‌ടറി പകർത്തൽ പ്രവർത്തനക്ഷമമാക്കിയില്ലെങ്കിൽ ഈ ക്രമീകരണത്തിന് ഫലമുണ്ടാകില്ല. തെറ്റായി ഉപയോഗിച്ചാൽ ഈ ഓപ്ഷൻ അപകടകരമാണ്! ഏതൊക്കെ ഫയലുകൾ ഇല്ലാതാക്കാമെന്നും അവയിൽ ഏതെങ്കിലും പ്രധാനപ്പെട്ടതാണോയെന്നും കാണുന്നതിന് ആദ്യം ഒരു നിഷ്‌ക്രിയ rsync (-n) ഉപയോഗിക്കുക എന്നതാണ് വളരെ നല്ല നിയമം. അയയ്‌ക്കുന്ന ഭാഗത്ത് എന്തെങ്കിലും I/O പിശകുകൾ സംഭവിക്കുകയാണെങ്കിൽ, സ്വീകരിക്കുന്ന ഭാഗത്തുള്ള ഏതെങ്കിലും ഫയലുകൾ ഇല്ലാതാക്കുന്നത് സ്വയമേവ പ്രവർത്തനരഹിതമാക്കും. അയയ്‌ക്കുന്ന ഭാഗത്തെ താൽക്കാലിക ഫയൽ സിസ്റ്റം (ഉദാ. NFS) പിശകുകൾ കാരണം സ്വീകരിക്കുന്ന അവസാനത്തിൽ വൻതോതിൽ ഫയൽ ഇല്ലാതാക്കുന്നത് ഇത് തടയുന്നു. --ignore-errors ഓപ്ഷൻ ഉപയോഗിച്ച് ഈ സ്വഭാവം പ്രവർത്തനരഹിതമാക്കാം.

    ഡിലീറ്റ്-ഒഴിവാക്കിയത് അയയ്‌ക്കുന്ന ഭാഗത്ത് ഇല്ലാത്തതിനാൽ സ്വീകരിക്കുന്ന ഭാഗത്ത് ഇല്ലാതാക്കപ്പെടുന്ന ഫയലുകൾക്ക് പുറമേ, സ്വീകരിക്കുന്ന ഭാഗത്തുള്ള --exclude ഓപ്ഷൻ ഒഴിവാക്കിയിട്ടുള്ള ഫയലുകളും ഇല്ലാതാക്കണമെന്ന് വ്യക്തമാക്കുന്നു. --delete ഓപ്ഷൻ അനുമാനിക്കുന്നു.

    ഡിഫോൾട്ടായി, ഡിഫോൾട്ടായി, സ്വീകരിക്കുന്ന ഭാഗത്ത് മതിയായ ഇടമുണ്ടെന്ന് ഉറപ്പാക്കാൻ പകർത്തുന്നതിന് മുമ്പ് rsync ഫയലുകൾ ഇല്ലാതാക്കുന്നു. ഇല്ലാതാക്കൽ പിന്നീട് ചെയ്യണമെങ്കിൽ, --delete-after ഉപയോഗിക്കുക. --delete ഓപ്ഷൻ അനുമാനിക്കുന്നു.

    അവഗണിക്കുക-പിശകുകൾ ഇല്ലാതാക്കുമ്പോൾ (--delete), പ്രക്രിയയെ നിർബന്ധിക്കുകയും ഏതെങ്കിലും പിശകുകൾ അവഗണിക്കുകയും ചെയ്യുന്നു, I/O പിശകുകൾ പോലും.

    ഡയറക്‌ടറികൾ ശൂന്യമല്ലെങ്കിൽപ്പോലും അവയെ നോൺ-ഡയറക്‌ടറികൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുമ്പോൾ അവ നീക്കം ചെയ്യുക. ഇല്ലാതെ മാത്രം ഉചിതം

    ഇല്ലാതാക്കുക, കാരണം ഒരേ തലത്തിലുള്ള ഡയറക്‌ടറികൾക്ക് മാത്രമേ ഇല്ലാതാക്കൽ സംഭവിക്കൂ. അർത്ഥവത്തായ ഇഫക്റ്റിന് --ആവർത്തനാത്മകം (ഇത് -a ആണെങ്കിൽ സൂചിപ്പിക്കും) ആവശ്യമാണ്.

    B, --block-size=BLOCKSIZE rsync അൽഗോരിതം ഉപയോഗിക്കുന്ന ബ്ലോക്ക് വലുപ്പം ക്രമീകരിക്കുന്നു. വിശദാംശങ്ങൾക്ക് ഡാറ്റ ഷീറ്റ് കാണുക.

    E, --rsh=COMMAND rsync-ൻ്റെ റിമോട്ട്, ലോക്കൽ കോപ്പികൾ തമ്മിലുള്ള കണക്ഷൻ കൈകാര്യം ചെയ്യുന്നതിനായി ഒരു ബദൽ റിമോട്ട് ഷെൽ പ്രോഗ്രാം തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. സാധാരണയായി rsync സ്ഥിരസ്ഥിതിയായി ssh ഉപയോഗിക്കുന്നതിന് ക്രമീകരിച്ചിരിക്കുന്നു, എന്നാൽ നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്‌വർക്കിൽ rsh ഉപയോഗിക്കാൻ നിങ്ങൾ താൽപ്പര്യപ്പെട്ടേക്കാം.

ഈ പരാമീറ്റർ ഫോം ഹോസ്റ്റ്:: മൊഡ്യൂൾ/പാത്ത് എന്ന പാത്ത് ഉപയോഗിച്ചാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, റിമോട്ട് സൈഡിൽ rsync സെർവർ ആരംഭിക്കാൻ COMMAND റിമോട്ട് ഷെൽ പ്രോഗ്രാം ഉപയോഗിക്കും, കൂടാതെ എല്ലാ ഡാറ്റയും റിമോട്ട് ഷെൽ കണക്ഷനിലൂടെ കൈമാറ്റം ചെയ്യപ്പെടും. "ആ" അറ്റത്തുള്ള rsync സെർവറിലേക്കുള്ള കണക്ഷനിലൂടെ നേരിട്ട്. "ഒരു റിമോട്ട് ഷെൽ വഴി RSYNC സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നു" എന്ന വിഭാഗം കാണുക. COMMAND-ലേക്കുള്ള കമാൻഡ് ലൈൻ ആർഗ്യുമെൻ്റുകൾ ഒരൊറ്റ ആർഗ്യുമെൻ്റായി rsync-ലേക്ക് COMMAND-നെ തുറന്നുകാട്ടുന്ന ഒരു രൂപത്തിൽ വ്യക്തമാക്കാൻ അനുവദിച്ചിരിക്കുന്നു. ഉദാഹരണത്തിന്:

    E "ssh -p 2234" (ssh ഉപയോക്താക്കൾക്ക് അവരുടെ .ssh/config ഫയലുകളിൽ പരിസ്ഥിതി-നിർദ്ദിഷ്ട കണക്ഷൻ ഓപ്ഷനുകൾ കോൺഫിഗർ ചെയ്യാൻ കഴിയും എന്നത് ശ്രദ്ധിക്കുക.)

RSYNC_RSH എൻവയോൺമെൻ്റ് വേരിയബിളിലൂടെ നിങ്ങൾക്ക് ഒരു റിമോട്ട് ഷെൽ പ്രോഗ്രാം തിരഞ്ഞെടുക്കാനും കഴിയും, അത് -e-യുടെ മൂല്യങ്ങളുടെ അതേ ശ്രേണി എടുക്കുന്നു. --ബ്ലോക്കിംഗ്-io-ഉം കാണുക, ഇത് -e ഓപ്‌ഷൻ സജ്ജീകരിക്കുന്നത് ബാധിക്കുന്നു.

    C, --cvs-exclude ഈ ഐച്ഛികം ഉപയോഗിച്ച് നിങ്ങൾ സിസ്റ്റങ്ങൾക്കിടയിൽ കൈമാറാൻ ആഗ്രഹിക്കാത്ത ഫയലുകളുടെ വിപുലമായ ശ്രേണി ഒഴിവാക്കുന്നു. ഏതൊക്കെ ഫയലുകളാണ് അവഗണിക്കേണ്ടതെന്ന് നിർണ്ണയിക്കാൻ CVS ഉപയോഗിക്കുന്ന അതേ അൽഗോരിതം തന്നെയാണ് ഇത് ഉപയോഗിക്കുന്നത്.

ഒഴിവാക്കലുകളുടെ പട്ടികയിൽ തുടക്കത്തിൽ ഉൾപ്പെടുന്നു:

RCS/ SCCS/ CVS/ .svn/ CVS.adm RCSLOG cvslog.* ടാഗുകൾ TAGS .make.state .nse_depinfo *~ #* .#* ,* *.old *.bak *.BAK *.orig *.rej .del * വേരിയബിൾ (സ്പെയ്സുകളാൽ വേർതിരിച്ചിരിക്കുന്നു). അവസാനമായി, ഫയലുമായി പൊരുത്തപ്പെടുന്ന ടെംപ്ലേറ്റ് ഉള്ള അതേ ഡയറക്‌ടറിയിൽ ഒരു .cvsignore ഫയൽ ഉണ്ടെങ്കിൽ അത് ഒഴിവാക്കപ്പെടും. കൂടുതൽ വിവരങ്ങൾക്ക് cvs(1) മാനുവൽ കാണുക. * --exclude=PATTERN കൈമാറ്റ പ്രക്രിയയിൽ നിന്ന് ചില ഫയലുകൾ തിരഞ്ഞെടുത്ത് ഒഴിവാക്കുന്നതിന് നിങ്ങളെ അനുവദിക്കുന്നു. ആവർത്തിച്ച് കടന്നുപോകുമ്പോൾ ഇത് ഏറ്റവും ഉപയോഗപ്രദമാണ്.

ഒഴിവാക്കാനുള്ള ഫയലുകളുടെ ഒരു ഇഷ്‌ടാനുസൃത ലിസ്റ്റ് നിർമ്മിക്കാൻ നിങ്ങൾക്ക് ഇഷ്ടമുള്ളത്ര --ഒഴിവാക്കലുകൾ ഉപയോഗിക്കാം. ഈ പരാമീറ്ററിനുള്ള വാക്യഘടനയെക്കുറിച്ചുള്ള വിവരങ്ങൾക്ക് "ഒഴിവാക്കൽ പാറ്റേണുകൾ" വിഭാഗം കാണുക.

    Exclude-file=FILE --exclude-ന് സമാനമാണ്, പകരം FILE ഫയലിൽ ലിസ്റ്റുചെയ്തിരിക്കുന്ന ഫയൽ ഒഴിവാക്കൽ പാറ്റേണുകൾ ഉപയോഗിക്കുന്നു. ";" എന്ന് തുടങ്ങുന്ന വരികൾക്കൊപ്പം ശൂന്യമായ വരകളും അല്ലെങ്കിൽ "#" അവഗണിക്കപ്പെടുന്നു. FILE - എന്ന് വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, പാറ്റേണുകളുടെ ലിസ്റ്റ് സാധാരണ ഇൻപുട്ടിൽ നിന്ന് വായിക്കും.

    Include=PATTERN പ്രക്രിയയിൽ നിന്ന് ഒഴിവാക്കാനാവാത്ത ഫയലുകളുടെ പേരുകൾക്കുള്ള പാറ്റേണുകൾ വ്യക്തമാക്കുന്നു. ഇത് വളരെ സങ്കീർണ്ണമായ ഉൾപ്പെടുത്തൽ/ഒഴിവാക്കൽ നിയമങ്ങൾ നിർമ്മിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നതിനാൽ ഇത് ഉപയോഗപ്രദമാണ്.

ഈ പരാമീറ്ററിനുള്ള വാക്യഘടനയെക്കുറിച്ചുള്ള വിവരങ്ങൾക്ക് "ഒഴിവാക്കൽ പാറ്റേണുകൾ" വിഭാഗം കാണുക.

    Include-from=FILE ഫയലിൽ നിന്നുള്ള കൈമാറ്റത്തിൽ ഉൾപ്പെടുത്തേണ്ട ഫയലുകളുടെ ലിസ്റ്റ് എടുക്കാൻ വ്യക്തമാക്കുന്നു. FILE - എന്ന് വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, പാറ്റേണുകളുടെ ലിസ്റ്റ് സാധാരണ ഇൻപുട്ടിൽ നിന്ന് വായിക്കും.

    Files-from=FILE കൈമാറ്റം ചെയ്യാനുള്ള ഫയലുകളുടെ കൃത്യമായ ലിസ്റ്റ് വ്യക്തമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു (നിർദ്ദിഷ്ട ഫയലിൽ നിന്നോ അല്ലെങ്കിൽ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്നോ - വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ അവ വായിക്കും). നിർദ്ദിഷ്‌ട ഫയലുകളും ഡയറക്‌ടറികളും കൈമാറുന്നത് എളുപ്പമാക്കുന്നതിന് ഇത് rsync-ൻ്റെ സ്ഥിരസ്ഥിതി സ്വഭാവവും മാറ്റുന്നു. ഉദാഹരണത്തിന്, ഡിഫോൾട്ടായി --relative ഓപ്ഷൻ്റെ ഉപയോഗം പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു (ഇത് പ്രവർത്തനരഹിതമാക്കുന്നതിന്, --no-relative ഉപയോഗിക്കുക), ലിസ്റ്റ് ചെയ്ത എല്ലാ ഡയറക്ടറികളും സ്വീകരിക്കുന്ന ഭാഗത്ത് സൃഷ്ടിക്കപ്പെടുന്നു (നിശബ്ദമായി കടന്നുപോകുന്നതിന് പകരം, -r പോലെ. ഓപ്ഷൻ ഉപയോഗിച്ചിട്ടില്ല), കൂടാതെ (--ആർക്കൈവ്) സ്വഭാവം -r (--ആവർത്തന) സാന്നിധ്യത്തെ സൂചിപ്പിക്കുന്നില്ല - ആവശ്യമെങ്കിൽ അത് വ്യക്തമായി വ്യക്തമാക്കണം.

FILE-ൽ നിന്ന് വായിച്ച എല്ലാ ഫയൽനാമങ്ങളും സോഴ്സ് ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ടതായി കണക്കാക്കുന്നു -- മുൻനിര സ്ലാഷുകൾ നീക്കം ചെയ്യപ്പെടുന്നു, കൂടാതെ ഉറവിട ഡയറക്ടറി ട്രീയുടെ മുകളിലേക്ക് ചൂണ്ടുന്ന ".." റഫറൻസുകൾ അനുവദനീയമല്ല. ഉദാഹരണത്തിന്, പരിഗണിക്കുക:

    rsync -a --files-from=/tmp/foo /usr റിമോട്ട്:/ബാക്കപ്പ്

/tmp/foo-ൽ സ്ട്രിംഗ് ബിൻ (അല്ലെങ്കിൽ "/bin" പോലും) അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, റിമോട്ട് മെഷീനിൽ /usr/bin ഡയറക്‌ടറി /backup/bin ആയി സൃഷ്‌ടിക്കപ്പെടും (എന്നാൽ /usr/bin-ൻ്റെ ഉള്ളടക്കങ്ങൾ കൈമാറ്റം ചെയ്യാൻ പാടില്ല. ഒബ്‌ജക്‌റ്റുകൾ /tmp/foo-ൽ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടുണ്ട്, അല്ലെങ്കിൽ -r ഓപ്ഷൻ വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ). --relative (സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കിയത്) എന്നതിൻ്റെ പ്രഭാവം ഒരു ഫയലിൽ നിന്ന് വായിച്ച പാതകൾ പകർത്തുക എന്നതാണ് - ഇത് മുഴുവൻ നിർദ്ദിഷ്ട ഉറവിട പാതയും (/usr ഉദാഹരണത്തിൽ) പകർത്താൻ നിർബന്ധിക്കുന്നില്ല. കൂടാതെ, ഫയലിൻ്റെ പേരിന് മുമ്പായി "ഹോസ്റ്റ്:" (ഇത് കൈമാറ്റത്തിൻ്റെ അറ്റങ്ങളിൽ ഒന്നുമായി പൊരുത്തപ്പെടണം) വ്യക്തമാക്കുന്നതിലൂടെ പ്രാദേശികമായി ഉപയോഗിക്കുന്നതിനുപകരം ഒരു റിമോട്ട് മെഷീനിൽ നിന്ന് --files-from ഒരു ഫയലിൽ നിന്ന് വായിക്കാനാകും. സംക്ഷിപ്തതയ്ക്കായി, റിമോട്ട് കോപ്പി പാർട്ടിയെ സൂചിപ്പിക്കാൻ നിങ്ങൾക്ക് ഒരു ":" പ്രിഫിക്‌സ് മാത്രമേ നൽകാനാവൂ. ഉദാഹരണത്തിന്: rsync -a --files-from=:/path/file-list src:/ /tmp/copy റിമോട്ട് മെഷീനിൽ സ്ഥിതി ചെയ്യുന്ന ഫയലിൽ /path/file-list-ൽ വ്യക്തമാക്കിയിട്ടുള്ള എല്ലാ ഫയലുകളും ഈ കമാൻഡ് പകർത്തണം. "src".

    0, --from0 NL, CR, അല്ലെങ്കിൽ CR+LF എന്നിവയിലല്ല, ബാഹ്യമായി വായിക്കുന്ന ഫയൽനാമങ്ങൾ "\0" പ്രതീകത്തിലാണ് അവസാനിക്കുന്നതെന്ന് rsync-നോട് പറയുന്നു. ഇത് --exclude-from, --include-from, --files-from എന്നീ ഓപ്‌ഷനുകൾക്ക് ബാധകമാണ്.

    T, --temp-dir=DIR

കൈമാറ്റം ചെയ്യപ്പെട്ട ഫയലുകളുടെ താത്കാലിക പകർപ്പുകൾ സ്വീകരിക്കുന്നതിനുള്ള ഒരു ഡയറക്ടറിയായി DIR ഉപയോഗിക്കാൻ നിർദ്ദേശിക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, ഡെസ്റ്റിനേഷൻ ഡയറക്ടറിയിൽ താൽക്കാലിക ഫയലുകൾ സൃഷ്ടിക്കപ്പെടുന്നു.

    Compare-dest=DIR, ഡെസ്റ്റിനേഷൻ ഡയറക്ടറിയിൽ ഫയലുകളൊന്നും ഇല്ലെങ്കിൽ, ട്രാൻസ്ഫർ പ്രക്രിയയിൽ ഉള്ളടക്കങ്ങൾ താരതമ്യം ചെയ്യുന്ന ഡയറക്ടറിയായി ഡെസ്റ്റിനേഷൻ മെഷീനിൽ DIR ഉപയോഗിക്കാൻ നിർദ്ദേശിക്കുന്നു. ഒരു പുതിയ ലൊക്കേഷനിലേക്ക് ഒരു കൈമാറ്റം നടത്തുന്നതിനും നിലവിലുള്ള ഫയലുകൾ കേടുകൂടാതെയിരിക്കുന്നതിനും എല്ലാ ഫയലുകളും കൈമാറ്റം ചെയ്യപ്പെടുമ്പോൾ കൈമാറ്റം ചെയ്യുന്നതിനും വൃത്തിയാക്കുന്നതിനും ഇത് ഉപയോഗപ്രദമാണ് (ഉദാഹരണത്തിന്, ഡയറക്‌ടറികൾ പുതിയ സ്ഥലത്തേക്ക് മാറ്റുകയും പഴയത് ഇല്ലാതാക്കുകയും ചെയ്യുന്നു, എന്നിരുന്നാലും ഇത് പരിഷ്‌ക്കരിക്കാത്ത ഫയലുകൾ ഒഴിവാക്കുന്നു. ; ഇതും കാണുക - -link-dest).

കുറിപ്പ് പരിഭാഷകൻ: ഈ പരാമീറ്ററിൻ്റെ നിലനിൽപ്പ് അപ്ഡേറ്റ് ചെയ്യേണ്ടതിൻ്റെ ആവശ്യകതയാണ്, ഉദാഹരണത്തിന്, പരസ്പരാശ്രിത ഫയലുകളുള്ള ഒരു ട്രീ. ഈ സാഹചര്യത്തിൽ, ഫയൽ-ബൈ-ഫയൽ അടിസ്ഥാനത്തിൽ പകർത്തുന്നത് ഉചിതമല്ല. ട്രാൻസ്ഫർ ചെയ്ത ഫയലുകൾ പകർത്തിയ ഒരു താൽക്കാലിക ഡെസ്റ്റിനേഷൻ ഡയറക്ടറി വ്യക്തമാക്കാൻ --compare-dest പാരാമീറ്റർ നിങ്ങളെ അനുവദിക്കുന്നു. ട്രാൻസ്ഫർ പ്രക്രിയയുടെ അവസാനം, rsync യഥാർത്ഥ ഡെസ്റ്റിനേഷൻ ട്രീയുടെ പേര് മാറ്റുന്നു, തുടർന്ന് താൽകാലിക ഡയറക്ടറി DIR-നെ ഒറിജിനൽ ആയി പുനർനാമകരണം ചെയ്യുന്നു, കൂടാതെ ആദ്യ ഘട്ടത്തിൽ പുനർനാമകരണം ചെയ്ത "പഴയ" ഫയലുകൾ ഉപയോഗിച്ച് യഥാർത്ഥ ഡയറക്ടറി ഇല്ലാതാക്കുന്നു. ഈ ഐച്ഛികം --partial-ൻ്റെ ഉപയോഗക്ഷമത വർദ്ധിപ്പിക്കുന്നു, കാരണം ഭാഗികമായി കൈമാറ്റം ചെയ്യപ്പെടുന്ന ഫയലുകൾ പൂർണ്ണമായും നിലവിലുണ്ടാകുന്നതുവരെ പുതിയ താൽക്കാലിക ഡയറക്ടറിയിൽ നിലനിൽക്കും. DIR ഒരു ആപേക്ഷിക പാതയായി വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, അത് ലക്ഷ്യസ്ഥാന ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ടതാണ്.

    Link-dest=DIR --compare-dest പോലെ തന്നെ പ്രവർത്തിക്കുന്നു, എന്നാൽ ഡെസ്റ്റിനേഷൻ ഡയറക്ടറിയിലെ പരിഷ്‌ക്കരിക്കാത്ത ഫയലുകളിലേക്ക് DIR-ൽ ഹാർഡ് ലിങ്കുകൾ സൃഷ്ടിക്കുന്നു. മാറിയ അവകാശങ്ങളും ഉടമസ്ഥതയുമുള്ള ഫയലുകളെ ഇത് ബാധിക്കില്ല. --compare-dest പോലെ, DIR ഒരു ആപേക്ഷിക നാമമായി വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, പ്രവർത്തനങ്ങൾ ലക്ഷ്യസ്ഥാന ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ടതാണ്.

    Z, --compress ഈ ഓപ്ഷൻ ഉപയോഗിച്ച്, rsync കൈമാറ്റം ചെയ്ത എല്ലാ ഫയൽ ഡാറ്റയും കംപ്രസ് ചെയ്യുന്നു. സ്ലോ ലൈനുകളിൽ ഇത് ഉപയോഗപ്രദമാണ്. ഉപയോഗിച്ചിരിക്കുന്ന കംപ്രഷൻ രീതി gzip നടപ്പിലാക്കിയതിന് സമാനമാണ്.

റിമോട്ട് ഷെൽ പ്രോഗ്രാം കംപ്രഷൻ അല്ലെങ്കിൽ ട്രാൻസ്പോർട്ട് ലെയർ കംപ്രഷൻ ഉപയോഗിച്ച് നേടാവുന്നതിനേക്കാൾ മികച്ച കംപ്രഷൻ അനുപാതം ഇത് സാധാരണയായി കൈവരിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കുക. കംപ്രഷൻ പ്രക്രിയയിൽ ബന്ധപ്പെട്ട ഡാറ്റ ബ്ലോക്കുകളിൽ അയച്ച എല്ലാ വിവരങ്ങളും ഉൾപ്പെടുന്നു.

    സംഖ്യാ-ഐഡികൾ ഗ്രൂപ്പിനും ഉപയോക്തൃ നാമത്തിനും പകരം, അവയുടെ സംഖ്യാ ഐഡികൾ അയച്ച് രണ്ട് അറ്റത്തും പരസ്പരം പൊരുത്തപ്പെടുത്തുന്നു.

സ്ഥിരസ്ഥിതിയായി, ഫയലുകളുടെ ഉടമയെ നിർണ്ണയിക്കാൻ rsync ഗ്രൂപ്പും ഉപയോക്തൃനാമങ്ങളും ഉപയോഗിക്കുന്നു. --numeric-ids വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽപ്പോലും, പ്രത്യേക uid 0, gid 0 എന്നിവ ഒരിക്കലും ഉപയോക്തൃ/ഗ്രൂപ്പ് പേരുകളിലൂടെ വെളിപ്പെടുത്തില്ല. ഒരു ക്രോട്ട് ചെയ്ത പരിതസ്ഥിതിയിലാണ് സോഴ്‌സ് സിസ്റ്റം പ്രവർത്തിക്കുന്നതെങ്കിൽ അല്ലെങ്കിൽ സ്വീകരിക്കുന്ന അവസാനത്തിൽ ഉപയോക്താവോ ഗ്രൂപ്പോ നിലവിലില്ലെങ്കിലോ, യഥാർത്ഥ സംഖ്യാ ഐഡികൾ ഉപയോഗിക്കുന്നു.

    ടൈംഔട്ട്=TIMEOUT സെക്കൻഡിൽ പരമാവധി I/O കാത്തിരിപ്പ് സമയം സജ്ജമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. നിർദ്ദിഷ്ട കാലയളവിനുള്ളിൽ ഒന്നും കൈമാറുന്നില്ലെങ്കിൽ, rsync അവസാനിക്കും. സ്ഥിരസ്ഥിതി 0 ആണ്, അതിനർത്ഥം കാത്തിരിക്കേണ്ടതില്ല എന്നാണ്.

    ഡെമൺ ഒരു ഡെമൺ ആയി rsync പ്രവർത്തിപ്പിക്കുന്നു. ഹോസ്റ്റ് :: മൊഡ്യൂൾ അല്ലെങ്കിൽ rsync:/\/host/module വാക്യഘടന വഴി ഡെമൺ ക്ലയൻ്റുകൾക്ക് ആക്സസ് ചെയ്യാവുന്നതാണ്. സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് ഒരു സോക്കറ്റ് ആണെങ്കിൽ, അത് inetd-ൽ നിന്നാണ് പ്രവർത്തിക്കുന്നതെന്ന് rsync അനുമാനിക്കുന്നു, അല്ലാത്തപക്ഷം അത് നിലവിലെ ടെർമിനലിൽ നിന്ന് വിച്ഛേദിക്കുകയും ഒരു പശ്ചാത്തല ഡെമൺ പ്രക്രിയയായി മാറുകയും ചെയ്യുന്നു. ക്ലയൻ്റുകളിൽ നിന്നുള്ള ഓരോ കണക്ഷനുമുള്ള കോൺഫിഗറേഷൻ ഫയൽ (rsyncd.conf) ഡെമൺ വായിക്കുകയും അതനുസരിച്ച് അവരുടെ അഭ്യർത്ഥനകളോട് പ്രതികരിക്കുകയും ചെയ്യുന്നു.

    നോ-ഡിറ്റാച്ച് ഒരു ഡെമൺ ആയി പ്രവർത്തിപ്പിക്കുമ്പോൾ, ടെർമിനലിൽ നിന്ന് വേർപെടുത്തരുതെന്നും ഒരു പശ്ചാത്തല പ്രക്രിയയായി മാറരുതെന്നും ഈ ഐച്ഛികം rsync-ന് നിർദ്ദേശിക്കുന്നു. Cygwin-ന് കീഴിൽ ഒരു സേവനം പ്രവർത്തിപ്പിക്കുമ്പോൾ ഇത് ആവശ്യമാണ്, ഡെമോണ്ടൂളുകൾ അല്ലെങ്കിൽ AIX-ൻ്റെ സിസ്റ്റം റിസോഴ്‌സ് കൺട്രോളർ പോലുള്ള പ്രോഗ്രാമുകൾ rsync നിരീക്ഷിക്കുകയാണെങ്കിൽ ഇത് ഉപയോഗപ്രദമാകും.--no-detach ഒരു ഡീബഗ്ഗറിന് കീഴിൽ rsync പ്രവർത്തിപ്പിക്കുമ്പോൾ ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ ഓപ്ഷന് ഇല്ല inetd അല്ലെങ്കിൽ sshd-ൽ നിന്ന് പ്രവർത്തിക്കുമ്പോൾ പ്രഭാവം.

    വിലാസം സ്ഥിരസ്ഥിതിയായി, --daemon ഉപയോഗിച്ച് ഒരു ഡെമൺ ആയി പ്രവർത്തിക്കുമ്പോൾ അല്ലെങ്കിൽ ഒരു rsync സെർവറിലേക്ക് കണക്‌റ്റ് ചെയ്യുമ്പോൾ rsync മൾട്ടികാസ്റ്റ് വിലാസം 0.0.0.0 ഉപയോഗിക്കുന്നു. ഇതിനായി കൃത്യമായ ഐപി വിലാസം (അല്ലെങ്കിൽ ഹോസ്റ്റ്നാമം) വ്യക്തമാക്കാൻ --വിലാസം നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് --config-മായി സംയോജിപ്പിച്ച് വെർച്വൽ ഹോസ്റ്റിംഗ് സാധ്യമാക്കുന്നു.

    Config=FILE ഒരു ഇതര കോൺഫിഗറേഷൻ ഫയൽ വ്യക്തമാക്കുന്നു. --deemon വ്യക്തമാക്കിയാൽ മാത്രമേ ഇത് പ്രാധാന്യമുള്ളൂ. ഒരു റിമോട്ട് ഷെല്ലിനു മുകളിൽ ഡെമൺ പ്രവർത്തിക്കുകയും വിദൂര ഉപയോക്താവ് റൂട്ട് അല്ലാതിരിക്കുകയും ചെയ്യുന്നില്ലെങ്കിൽ /etc/rsyncd.conf ലേക്ക് ഡിഫോൾട്ടുകൾ. പിന്നീടുള്ള സന്ദർഭത്തിൽ, സ്ഥിരസ്ഥിതിയായി നിലവിലെ ഡയറക്ടറിയിൽ (സാധാരണയായി $HOME) rsyncd.conf സ്ഥിതി ചെയ്യുന്നു.

    പോർട്ട്=പോർട്ട് ഡിഫോൾട്ട് 873-ന് പകരം പ്രവർത്തിക്കാൻ ഒരു ബദൽ TCP പോർട്ട് നമ്പർ വ്യക്തമാക്കുന്നു.

    ഒരു റിമോട്ട് ഷെൽ ട്രാൻസ്പോർട്ട് പ്രോഗ്രാമിൽ പ്രവർത്തിക്കുമ്പോൾ ബ്ലോക്ക് ചെയ്യൽ I/O ഉപയോഗിക്കുന്നതിന് Blocking-io വ്യക്തമാക്കുന്നു. ആ പ്രോഗ്രാം ഒന്നുകിൽ rsh അല്ലെങ്കിൽ remsh ആണെങ്കിൽ, rsync സ്ഥിരസ്ഥിതിയായി I/O തടയൽ ഉപയോഗിക്കുന്നു, അല്ലാത്തപക്ഷം അത് സ്ഥിരസ്ഥിതിയായി നോൺ-ബ്ലോക്കിംഗ് I/O ഉപയോഗിക്കുന്നു. (നോൺ-ബ്ലോക്കിംഗ് തിരഞ്ഞെടുക്കുന്നത് ssh ആണെന്ന് ശ്രദ്ധിക്കുക.)

    No-blocking-io സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ --blocking-io പ്രവർത്തനം പ്രവർത്തനരഹിതമാക്കുന്നു.

    Log-format=FORMAT ഒരു ഫയൽ-ബൈ-ഫയൽ അടിസ്ഥാനത്തിൽ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക് rsync റിപ്പോർട്ടുകൾ (ലോഗുകൾ) കൃത്യമായി വ്യക്തമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. rsyncd.conf ഫയലിലെ ലോഗിംഗ് ഓപ്ഷൻ്റെ അതേ കൺവെൻഷനാണ് സന്ദേശങ്ങളുടെ ഫോർമാറ്റ് നിർണ്ണയിക്കുന്നത്.

    സ്ഥിതിവിവരക്കണക്കുകൾ വിശദമായ ഫയൽ കൈമാറ്റ സ്ഥിതിവിവരക്കണക്കുകളുടെ പ്രദർശനം വ്യക്തമാക്കുന്നു, നിങ്ങളുടെ ഡാറ്റയുമായി ബന്ധപ്പെട്ട് rsync അൽഗോരിതം എത്രത്തോളം കാര്യക്ഷമമാണെന്ന് വിലയിരുത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.

    ഭാഗികമായി, കൈമാറ്റം തടസ്സപ്പെട്ടാൽ, ഭാഗികമായി കൈമാറ്റം ചെയ്യപ്പെട്ട എല്ലാ ഫയലുകളും rsync ഇല്ലാതാക്കും. ചില സന്ദർഭങ്ങളിൽ അത്തരം ഫയലുകൾ സംരക്ഷിക്കുന്നത് കൂടുതൽ അഭികാമ്യമാണ്. --partial ഓപ്ഷൻ ഉപയോഗിച്ച്, ഭാഗികമായി കൈമാറ്റം ചെയ്ത ഫയൽ സൂക്ഷിക്കാൻ നിങ്ങൾക്ക് rsync-നോട് പറയാൻ കഴിയും, അത്തരം കൈമാറ്റങ്ങൾ തുടർച്ചയായി ആവർത്തിക്കുമ്പോൾ മുഴുവൻ ഫയലിൻ്റെയും കൈമാറ്റം വേഗത്തിലാക്കാൻ ഇത് സഹായിക്കും.

    കൈമാറ്റത്തിൻ്റെ പുരോഗതിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ പ്രദർശിപ്പിക്കാൻ പുരോഗതി rsync-നോട് പറയുന്നു. വിരസനായ ഉപയോക്താവിന് നോക്കാൻ എന്തെങ്കിലും ഉണ്ടാകും. അർത്ഥമാക്കുന്നത് --വെർബോസിറ്റി വർദ്ധിപ്പിക്കാതെ തന്നെ.

    പി --ഭാഗിക --പുരോഗതിക്ക് തുല്യം. രചയിതാവ് ഈ കോമ്പിനേഷൻ പതിവായി ഉപയോഗിക്കുന്നതായി കണ്ടെത്തി, അതിനാൽ ഇത് എളുപ്പമാക്കുന്നതിന് അദ്ദേഹം ഒരു പ്രത്യേക പാരാമീറ്റർ അവതരിപ്പിച്ചു.

    പാസ്‌വേഡ്-ഫയൽ ഒരു ഫയലിൽ സംരക്ഷിച്ച് rsync സെർവർ ആക്‌സസ് ചെയ്യുന്നതിനായി ഒരു പാസ്‌വേഡ് നൽകാൻ നിങ്ങളെ അനുവദിക്കുന്നു. rsync സെർവർ ആക്സസ് ചെയ്യുന്നതിന് ബിൽറ്റ്-ഇൻ rsync ട്രാൻസ്പോർട്ട് ഉപയോഗിക്കുമ്പോൾ മാത്രമേ ഈ ഓപ്ഷൻ ഉപയോഗപ്രദമാകൂ എന്ന കാര്യം ശ്രദ്ധിക്കുക; റിമോട്ട് ഷെൽ പ്രോഗ്രാം ഉപയോഗിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമല്ല. ഫയൽ എല്ലാവർക്കും വായിക്കാൻ സാധിക്കണമെന്നില്ല. അതിൽ ഒരു വരിയിൽ പാസ്‌വേഡ് മാത്രം അടങ്ങിയിരിക്കണം.

    Bwlimit=KBPS നിങ്ങളെ പരമാവധി ട്രാൻസ്ഫർ സ്പീഡ്, സെക്കൻഡിൽ കിലോബൈറ്റുകൾ വ്യക്തമാക്കാൻ അനുവദിക്കുന്നു. വലിയ ഫയലുകൾ (നിരവധി മെഗാബൈറ്റുകളോ അതിൽ കൂടുതലോ) കൈമാറാൻ rsync ഉപയോഗിക്കുമ്പോൾ ഈ ഓപ്ഷൻ ഏറ്റവും ഫലപ്രദമാണ്. rsync കൈമാറ്റങ്ങളുടെ സ്വഭാവം കാരണം, ഡാറ്റയുടെ ഒരു സാധാരണ ബ്ലോക്ക് കൈമാറ്റം ചെയ്യപ്പെടുന്നു, അപ്പോൾ rsync വേഗത സെറ്റ് റേറ്റിനേക്കാൾ കൂടുതലാണെന്ന് നിർണ്ണയിക്കുകയാണെങ്കിൽ, അടുത്ത ബ്ലോക്ക് അയയ്‌ക്കുന്നതിന് മുമ്പ് അത് ഒരു കാലതാമസം അവതരിപ്പിക്കുന്നു. തൽഫലമായി, ശരാശരി ട്രാൻസ്ഫർ നിരക്ക് നിർദ്ദിഷ്ട പരിധിക്ക് തുല്യമാണ്. പൂജ്യത്തിൻ്റെ മൂല്യം എന്നാൽ നിയന്ത്രണമില്ല എന്നാണ്.

    Write-batch=PREFIX ഒരു ബാച്ച് അപ്‌ഡേറ്റിൽ കൈമാറാൻ കഴിയുന്ന ഒരു കൂട്ടം ഫയലുകൾ സൃഷ്ടിക്കുന്നു. സെറ്റിലെ ഓരോ ഫയലിൻ്റെ പേരും PREFIX-ൽ ആരംഭിക്കുന്നു. വിശദാംശങ്ങൾക്ക് ബാച്ച് മോഡ് വിഭാഗം കാണുക.

    Read-batch=PREFIX, PREFIX-ൽ തുടങ്ങുന്ന പേരുകളുള്ള ഫയലുകളുടെ സെറ്റ് ഉപയോഗിച്ച്, മുമ്പ് സൃഷ്ടിച്ച മാറ്റങ്ങളുടെ ഒരു ബാച്ച് പ്രയോഗിക്കുന്നു. വിശദാംശങ്ങൾക്ക് ബാച്ച് മോഡ് വിഭാഗം കാണുക.

rsync ഓപ്ഷനുകൾ

    സി - ജോലിയുടെ തുടക്കത്തിൽ ഇമേജ് ചെക്ക്സമുകളുടെ നിർബന്ധിത താരതമ്യം. ഉറവിടത്തിനും ലക്ഷ്യസ്ഥാന ഫയലുകൾക്കും ഒരേ വലുപ്പവും അവസാന പരിഷ്ക്കരണ സമയവുമുണ്ടെങ്കിൽ, വ്യത്യസ്തമാണെങ്കിൽ, ഈ ഓപ്ഷൻ അവയെ സമന്വയിപ്പിക്കാൻ പ്രേരിപ്പിക്കുന്നു.

    വി - എന്താണ് സംഭവിക്കുന്നത് എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങളുടെ വിശദമായ ഔട്ട്പുട്ട്. ഒന്നിലധികം തവണ വ്യക്തമാക്കാം. അപ്‌ഡേറ്റ് പ്രക്രിയയ്‌ക്കിടെ ഡാറ്റാ കൈമാറ്റത്തെക്കുറിച്ചുള്ള ഒരു കൂട്ടം ആന്തരിക വിവരങ്ങൾ ആസ്വദിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

    ഇൻപ്ലേസ് - ഒരു താൽക്കാലിക ഫയൽ സൃഷ്ടിക്കാതെ ചിത്രം അപ്‌ഡേറ്റ് ചെയ്യുന്നു. മതിയായ ഇടം ഇല്ലെങ്കിൽ, അതുപോലെ തന്നെ ഒരു അസ്ഥിരമായ കണക്ഷൻ്റെ കാര്യത്തിലും ഉപയോഗപ്രദമാണ്: --inplace, നഷ്ടപ്പെട്ട കണക്ഷൻ കാരണം അപ്ഡേറ്റ് നിർത്തിയ സ്ഥാനത്ത് നിന്ന് ചിത്രം അപ്ഡേറ്റ് ചെയ്യുന്നത് തുടരാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നത് ഫയലുകൾ തമ്മിലുള്ള വ്യത്യാസം കണക്കാക്കുന്നതിനുള്ള അൽഗോരിതത്തിൻ്റെ കാര്യക്ഷമതയെ ചെറുതായി കുറയ്ക്കുന്നു.

    H, --human-readable - ട്രാൻസ്മിറ്റ് ചെയ്ത/പ്രോസസ്സ് ചെയ്ത ഡാറ്റയുടെ വലുപ്പങ്ങൾ സൗകര്യപ്രദമായ രൂപത്തിൽ കാണിക്കുക (ബൈറ്റുകൾക്ക് പകരം), ഉദാഹരണത്തിന് 234K അല്ലെങ്കിൽ 1.35G

    Z, --compress - ട്രാൻസ്മിറ്റ് ചെയ്ത ഡാറ്റയുടെ കംപ്രഷൻ പ്രവർത്തനക്ഷമമാക്കുക.

    പുരോഗതി - ഫയൽ പ്രോസസ്സിംഗ് പ്രക്രിയയുടെ ഒരു സൂചന കാണിക്കുക.

    ഭാഗികം - സമന്വയിപ്പിക്കുന്നതിന് മുമ്പ് ലോക്കൽ ഫയൽ ഇല്ലാതാക്കരുത്

    പി - അതേ പോലെ --പാർഷ്യൽ ഒരുമിച്ച് --പ്രോഗ്രസ്

    സ്ഥിതിവിവരക്കണക്കുകൾ - സ്ഥിതിവിവരക്കണക്കുകൾ പ്രദർശിപ്പിക്കുക - എത്ര ലഭിച്ചു/കൈമാറ്റം ചെയ്തു, എത്ര സംരക്ഷിച്ചു, മുതലായവ കാണിക്കുന്നു.

പ്രാദേശികവും വിദൂരവുമായ സിസ്റ്റങ്ങൾക്കിടയിൽ ഡാറ്റ കൈമാറുന്നതും സമന്വയിപ്പിക്കുന്നതും എളുപ്പമാക്കുന്ന ഒരു ശക്തമായ ഉപകരണമാണ് Rsync. ഈ ലേഖനത്തിൽ നമ്മൾ സംസാരിക്കും Rsync സിൻക്രൊണൈസേഷൻ ഉദാഹരണങ്ങൾ, ഫയലുകൾ പകർത്തൽ, അടിസ്ഥാന ഉപയോഗം, കമാൻഡുകൾ.

Rsync സിൻക്രൊണൈസേഷൻ ഉദാഹരണങ്ങൾ: അടിസ്ഥാന ഉപയോഗം

നമുക്ക് /tmp-നുള്ളിൽ "foo", "bar" എന്ന് വിളിക്കുന്ന രണ്ട് ഡയറക്ടറികൾ സൃഷ്ടിക്കാം കൂടാതെ /tmp/foo ഉള്ളിൽ ധാരാളം ഡമ്മി ഫയലുകൾ സൃഷ്ടിക്കാം

mkdir /tmp/foo /tmp/bar
`seq 1 100` എന്നതിനായി; ടച്ച് ചെയ്യുക /tmp/foo/file$i;ചെയ്തു

ഞങ്ങൾക്ക് ഇപ്പോൾ /tmp/foo-ൽ 100 ​​ഫയലുകൾ ഉണ്ട്; /tmp/bar എന്തായാലും നിലനിൽക്കാൻ പാടില്ല. എല്ലാ ഫയലുകളും /tmp/foo-ൽ നിന്ന് /tmp/bar-ലേക്ക് പകർത്താൻ നമുക്ക് rsync ഉപയോഗിക്കാം:

rsync /tmp/foo/* /tmp/bar

ഒരു അടിസ്ഥാന ഫയൽ എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച്, നമുക്ക് എല്ലാ ഫയലുകളും പിടിച്ചെടുത്ത് മറ്റൊരു ഡയറക്ടറിയിലേക്ക് പകർത്താനാകും. /tmp/foo ഉള്ളിൽ ഒരു ഡയറക്ടറി ഉണ്ടെങ്കിൽ എന്ത് ചെയ്യും? ഇത് കൈമാറില്ല. ഡയറക്‌ടറിയിലൂടെ കടന്നുപോകാൻ, ഓരോ ഫയലും ഉള്ളിലേക്ക് കടത്തിവിടാൻ നമുക്ക് -r (-recursive) ഫ്ലാഗ് ഉപയോഗിക്കേണ്ടതുണ്ട്:

rsync -r /tmp/foo/ /tmp/bar

ഇത് വളരെ ലളിതമായ ഒരു ഉദാഹരണമാണ് കൂടാതെ rsync കമാൻഡിൻ്റെ യഥാർത്ഥ ശക്തിയിൽ സ്പർശിക്കുന്നില്ല. അനുമതികൾ, ഉടമകൾ, ഗ്രൂപ്പുകൾ, സിംലിങ്കുകൾ മുതലായവ സംരക്ഷിക്കുന്നതിന് ഫ്ലാഗുകൾ ഉണ്ട്. ഈ ഫ്ലാഗുകൾ ഇടയ്ക്കിടെ ഉപയോഗിക്കുന്നതിനാൽ, -a (-ആർക്കൈവ്) ഫ്ലാഗ് -r ഉൾപ്പെടെ, അവയെല്ലാം പ്രവർത്തനക്ഷമമാക്കുന്നതിനുള്ള ഒരു അപരനാമമായി പ്രവർത്തിക്കുന്നു.

/tmp/bar മായ്‌ക്കുക, /tmp/foo-ലെ ഒരു ഫയലിലേക്ക് ഒരു സിംലിങ്ക് സൃഷ്‌ടിക്കുക, എല്ലാ ഫയലുകളും ആവർത്തിച്ച് പകർത്താൻ rsync ഉപയോഗിക്കുക:

കണ്ടെത്തുക /tmp/bar -delete
ln -s /tmp/foo/file100 /tmp/foo/file101
rsync -r /tmp/foo/ /tmp/bar

ഞങ്ങൾ സൃഷ്ടിച്ച സിംലിങ്ക് rsync ഉപേക്ഷിച്ചതായി ഞങ്ങൾ കാണുന്നു. വീണ്ടും /tmp/bar മായ്‌ക്കുക, ഇത്തവണ -a ഫ്ലാഗ് ഉപയോഗിച്ച് വീണ്ടും ശ്രമിക്കാം:

കണ്ടെത്തുക /tmp/bar -delete
rsync -a /tmp/foo/ /tmp/bar

/tmp/foo-ലെ ഒരു ഫയലിൻ്റെ ഉടമസ്ഥാവകാശം മറ്റൊരു ഉപയോക്താവിന് മാറ്റാനും -a to /tmp/bar ഉപയോഗിച്ച് ഫയലുകൾ പകർത്താനും chown ഉപയോഗിക്കുക. ls -l പ്രവർത്തിപ്പിക്കുക, ഫയലിനൊപ്പം ഉടമസ്ഥാവകാശം നീങ്ങിയതായി ശ്രദ്ധിക്കുക. സുഖപ്രദമായ മെറ്റീരിയൽ!

കുറിപ്പ്. ഉറവിട പാതയുടെ അവസാനത്തിൽ ഒരു ഫോർവേഡ് സ്ലാഷ് (/) ഉൾപ്പെടുത്തുന്നതും ഉൾപ്പെടുത്താത്തതും തമ്മിൽ വ്യത്യാസമുണ്ട്; ആദ്യത്തേത് നിർദ്ദിഷ്ട ഡയറക്‌ടറിക്കുള്ളിൽ എല്ലാ ഫയലുകളും കൈമാറും, രണ്ടാമത്തേത് എല്ലാ ഫയലുകളും ഉള്ള ഡയറക്ടറി തന്നെ കൈമാറും.

-ഒരു പതാക

ഞങ്ങൾ നേരത്തെ പറഞ്ഞതുപോലെ, ഈ ലേഖനത്തിൽ നമ്മൾ Rsync സിൻക്രൊണൈസേഷൻ ഉദാഹരണങ്ങളും കമാൻഡുകളും നോക്കും. എന്നാൽ അവ നിർവഹിക്കുന്നതിന്, പതാകകൾ സജ്ജീകരിക്കുന്നതിനുള്ള അടിസ്ഥാനകാര്യങ്ങൾ നിങ്ങൾ അറിഞ്ഞിരിക്കണം.
-a (-archive) ഫ്ലാഗ് മറ്റ് -rltpgoD ഫ്ലാഗുകളുടെ ഒരു അപരനാമമാണെന്ന് ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചു. തകർന്നു, ഓരോ പതാകയും ഇനിപ്പറയുന്നവ ചെയ്യുന്നു:

ആർ- ആവർത്തിച്ചുള്ള

എൽ- കണ്ടെത്തിയ ഏതെങ്കിലും സിംലിങ്കുകൾ നീക്കുക

ടി- ടൈംസ്റ്റാമ്പുകൾ സംരക്ഷിക്കുക

പി- അനുമതികൾ സംരക്ഷിക്കുക

ജി- ഗ്രൂപ്പുകൾ സംരക്ഷിക്കുക

- ഉടമസ്ഥാവകാശം നിലനിർത്തുക

ഡി- ബ്ലോക്കുകളും പ്രതീക ഉപകരണങ്ങളും സംരക്ഷിക്കുന്നു

ഫയലുകൾ വായിക്കുന്നത് എളുപ്പമാക്കുന്നതിന് നിങ്ങളുടെ കമാൻഡിലേക്ക് ഇനിപ്പറയുന്ന കമാൻഡുകൾ ചേർക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം:

എച്ച്- ഫയൽ ഫോർമാറ്റ് വായിക്കാൻ എളുപ്പമാണ്

എല്ലാവരും അവലോകനങ്ങൾ ഇഷ്ടപ്പെടുന്നു

-v (–verbose) ഫ്ലാഗ് നിങ്ങൾക്ക് ട്രാൻസ്ഫർ നിലയെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ നൽകും, അവസാനം ഒരു സംഗ്രഹം ഇതുപോലെ കാണപ്പെടും:

$ rsync -av foo/ ബാർ
ഫയൽ ലിസ്റ്റ് നിർമ്മിക്കുക ... ചെയ്തു
അയച്ച 1040 ബൈറ്റുകൾ 20 ബൈറ്റുകൾ ലഭിച്ചു 2120.00 ബൈറ്റുകൾ/സെക്കൻഡ്
ആകെ വലിപ്പം 7 സ്പീഡ് 0.01 ആണ്

നിങ്ങൾക്ക് കൂടുതൽ സ്ഥിതിവിവരക്കണക്കുകൾ ലഭിക്കണമെങ്കിൽ, -stats ഫ്ലാഗ് ഉപയോഗിച്ച് rsync പ്രവർത്തിപ്പിക്കുക. ഇത് നിങ്ങൾക്ക് മൊത്തം ഫയലുകളുടെ എണ്ണം, കൈമാറ്റം ചെയ്ത ഫയലുകൾ, ബെഞ്ച്മാർക്കുകൾ, കൂടാതെ ശരാശരി കൈമാറ്റ വേഗത എന്നിവയുടെ വിശദമായ ലിസ്റ്റ് നൽകും. മറുവശത്ത്, ഫീഡ്ബാക്ക് ആവശ്യമില്ലാത്തപ്പോൾ സ്ക്രിപ്റ്റിംഗിനായി ഉപയോഗിച്ചേക്കാവുന്ന എല്ലാ ഔട്ട്പുട്ടും -q (-quiet) അടിച്ചമർത്തും.

വിദൂര കൈമാറ്റങ്ങൾ എളുപ്പമാക്കി

പ്രാദേശിക കൈമാറ്റങ്ങൾ മാത്രമല്ല, വിദൂര കൈമാറ്റങ്ങളും നടത്താനുള്ള കഴിവിലാണ് rsync-ൻ്റെ യഥാർത്ഥ ശക്തി. നിങ്ങൾ മുമ്പ് scp ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, വിദൂര കൈമാറ്റങ്ങൾക്കുള്ള വാക്യഘടന വളരെ സമാനമാണ്:

rsync@:

ഒരു ഉദാഹരണമായി, ഈ വാക്യഘടന ഉപയോഗിക്കുന്ന rsync ഇതുപോലെ കാണപ്പെടും:

rsync -avh /tmp/foo/ root@host2:/tmp/bar

ശ്രദ്ധിക്കുക: റിമോട്ട് സെർവറിനും റിമോട്ട് പാത്തിനും ഇടയിൽ (കോളൻ); ഇത് അത്യാവശ്യമാണ്.

കൂടുതൽ ഓപ്ഷനുകൾ

Rsync ലഭ്യമായ ഓപ്‌ഷനുകളുടെ ഒരു വലിയ ലിസ്‌റ്റുമായി വരുന്നു, ഒരു ലേഖനത്തിലേക്ക് കടക്കാനാവാത്ത നിരവധി. ഞങ്ങൾ അവസാനമായി നോക്കുന്ന ഫ്ലാഗുകൾ -ഒഴിവാക്കുക, -ഒഴിവാക്കുക-നിന്ന്, -അപ്‌ഡേറ്റ് ചെയ്യുക, ഇല്ലാതാക്കുക എന്നീ ഫ്ലാഗുകളാണ്.

പാറ്റേൺ അടിസ്ഥാനമാക്കി ഫയലുകൾ ഒഴിവാക്കുക. Rsync ഇതുവരെ regex-നെ പിന്തുണയ്‌ക്കുന്നില്ല, അതിനാൽ സാധാരണ ഫയൽ പൊരുത്തപ്പെടുത്തലും ഗ്ലോബ് വർക്കും മാത്രമേ പ്രവർത്തിക്കൂ

ലൈൻ-ഡിലിമിറ്റഡ് ഫയലിൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന ഫയലുകൾ ഒഴിവാക്കുക.

യഥാർത്ഥ പകർപ്പ് അടുത്തിടെ പരിഷ്കരിച്ചിട്ടുണ്ടെങ്കിൽ മാത്രം ലക്ഷ്യസ്ഥാനത്തെ ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്യുക

യഥാർത്ഥ പകർപ്പ് നിലവിലില്ലെങ്കിൽ മാത്രം ലക്ഷ്യസ്ഥാനത്തെ ഫയലുകൾ ഇല്ലാതാക്കുക.

ഇതര SSH പോർട്ടുകൾ

നിങ്ങളുടെ സെർവറിലെ SSH പോർട്ട് മാറ്റിയാൽ, പുതിയ പോർട്ട് നമ്പർ ഉപയോഗിക്കാൻ നിങ്ങൾ rsync-നോട് പറയേണ്ടതുണ്ട്.

ഒരു സാധാരണ SSH പോർട്ട് ഉള്ള ഉദാഹരണം:
rsync -azh /local/path/file [ഇമെയിൽ പരിരക്ഷിതം]:/റിമോട്ട്/പാത്ത്/ഫയൽ

ഇതര SSH പോർട്ട് ഉള്ള ഉദാഹരണം (22334):
rsync -azh /local/path/file -e ‘ssh -p 22334’ [ഇമെയിൽ പരിരക്ഷിതം]:/റിമോട്ട്/പാത്ത്/ഫയൽ

പാസ്‌വേഡ് ഇല്ലാതെ വിദൂര കൈമാറ്റങ്ങൾ

റിമോട്ട് ടു ലോക്കൽ അല്ലെങ്കിൽ ലോക്കൽ ടു റിമോട്ട് ട്രാൻസ്ഫറുകൾ സുഗമമാക്കാൻ SSH കീകൾ ഉപയോഗിക്കാം. റിമോട്ട്, ലോക്കൽ സെർവറുകളിൽ കോൺഫിഗർ ചെയ്‌തിരിക്കുന്ന SSH കീകൾ ഉപയോഗിച്ച്, മനുഷ്യ ഇടപെടൽ കൂടാതെ (ഓരോ തവണയും പാസ്‌വേഡ് നൽകാതെ) സിൻക്രൊണൈസേഷൻ അനായാസമായി നടപ്പിലാക്കാൻ കഴിയും. മറ്റൊരു ലേഖനത്തിൽ, SSH കീകൾ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഞങ്ങൾ ചർച്ച ചെയ്യും.

"Rsync synchronization ഉദാഹരണങ്ങൾ" എന്ന വിഷയത്തിൽ നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ, അവ അഭിപ്രായങ്ങളിൽ എഴുതുക. നിങ്ങൾ ഉപയോഗിക്കുന്ന ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ഏത് പതിപ്പാണ് സൂചിപ്പിക്കുന്നതെന്ന് ഉറപ്പാക്കുക, അതുവഴി നിങ്ങളുടെ ചോദ്യത്തിൽ ഞങ്ങൾക്ക് സഹായിക്കാനാകും.

നിങ്ങൾ ഒരു പിശക് കണ്ടെത്തുകയാണെങ്കിൽ, ദയവായി ഒരു ടെക്‌സ്‌റ്റ് ഹൈലൈറ്റ് ചെയ്‌ത് ക്ലിക്കുചെയ്യുക Ctrl+Enter.