බාධා කිරීමෙන් පසු rsync නැවත ආරම්භ කළ හැකිද?


208

මම rsyncලිපිගොනු විශාල ප්‍රමාණයක් පිටපත් කිරීමට භාවිතා කළ නමුත් මගේ මෙහෙයුම් පද්ධතිය (උබුන්ටු) අනපේක්ෂිත ලෙස නැවත ආරම්භ විය.

නැවත පණගැන්වීමෙන් පසු, මම rsyncනැවත දිව්වා , නමුත් පර්යන්තයේ ප්‍රතිදානයෙන්, rsyncකලින් පිටපත් කළ ඒවා තවමත් පිටපත් කර ඇති බව මට පෙනී ගියේය. නමුත් rsyncප්‍රභවය සහ ගමනාන්තය අතර වෙනස්කම් සොයාගත හැකි බවත්, එම නිසා වෙනස්කම් පිටපත් කළ හැකි බවත් මම අසා ඇත්තෙමි . ඉතින් මගේ කාරණයේදී මම කල්පනා rsyncකරන්නේ අවසන් වරට ඉතිරි වූ දේ නැවත ආරම්භ කළ හැකිද?


ඔව්, rsync එය දැනටමත් පිටපත් කර ඇති ගොනු නැවත පිටපත් නොකරනු ඇත. එය හඳුනා ගැනීම අසමත් විය හැකි අවස්ථා කිහිපයක් තිබේ. එය දැනටමත් පිටපත් කර ඇති සියලුම ලිපිගොනු පිටපත් කර තිබේද? ඔබ භාවිතා කළ විකල්ප මොනවාද? ප්‍රභව සහ ඉලක්කගත ගොනු පද්ධති මොනවාද? සෑම දෙයක්ම පිටපත් කිරීමෙන් පසු ඔබ නැවත rsync ධාවනය කරන්නේ නම්, එය නැවත පිටපත් කරයිද?
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

Il ගිලස්: ස්තූතියි! (1) මම හිතන්නේ rsync ටර්මිනලයේ ප්‍රතිදානයෙන් එම ලිපිගොනු නැවත පිටපත් කළ බව. (2) විකල්ප මගේ අනෙක් පෝස්ටයට සමාන වේ, එනම් sudo rsync -azvv /home/path/folder1/ /home/path/folder2. (3) ප්‍රභවය සහ ඉලක්කය යන දෙකම NTFS වේ, මිලදී ගැනීමේ ප්‍රභවය බාහිර HDD වන අතර ඉලක්කය අභ්‍යන්තර HDD වේ. (3) එය දැන් ක්‍රියාත්මක වන අතර තවම අවසන් නැත.
ටිම්

අර්ධ වශයෙන් මාරු කරන ලද ගොනු නැවත ආරම්භ කිරීම සඳහා - පාර්ශවීය ධජය ද ඇත (විශාල ගොනු සඳහා ප්‍රයෝජනවත් වේ)
jwbensley

3
Im මගේ හිස මුදුනේ සිට, අවම වශයෙන් ඔරලෝසු ඇලවීමක් සහ කාල විභේදනයේ වෙනස්කම් තිබේ (තත්පර 2 ක වර්ධකවල වේලාවන් ගබඩා කරන FAT ගොනු පද්ධතිවල පොදු ගැටළුවක්, --modify-windowවිකල්පය ඒ සඳහා උපකාරී වේ).
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

1
ඔබට / හෝ / නොමැති නම්. ලිපිගොනු ප්‍රභව මාර්ග තර්කයේ වලිගය අවසානයේ එය ප්‍රභව නාමාවලියට සමාන නමක් ඇති උප බහලුමක අතිරේක පිටපතක්
සාදනු ඇත

Answers:


311

පළමුවෙන්ම, ඔබේ ප්‍රශ්නයේ "නැවත ආරම්භ කිරීම" කොටස සම්බන්ධයෙන්, --partialයැවීමේ අවසානය අතුරුදහන් වුවහොත් ඒවා සම්පුර්ණයෙන්ම මාරු වූවාක් මෙන් අතුරුදහන් වුවහොත් අර්ධ වශයෙන් මාරු කරන ලද ලිපිගොනු තබා ගන්නා ලෙස ලැබීමේ අවසානයට කියන්න.

ලිපිගොනු මාරු කරන අතරතුර, ඒවා තාවකාලිකව ඔවුන්ගේ ඉලක්ක ෆෝල්ඩර වල සැඟවුණු ගොනු ලෙස සුරකිනු ඇත (උදා .TheFileYouAreSending.lRWzDC), හෝ ඔබ --partial-dirස්විචය සකසන්නේ නම් විශේෂයෙන් තෝරාගත් ෆෝල්ඩරයක් . මාරුවක් අසමත් වූ විට සහ --partialසකසා නොමැති විට, මෙම සැඟවුණු ගොනුව මෙම ගුප්ත නාමය යටතේ ඉලක්ක ෆෝල්ඩරයේ පවතිනු ඇත, නමුත් --partialඑය සකසා ඇත්නම් , ගොනුව සත්‍ය ඉලක්ක ඉලක්ක නාමයට නැවත නම් කරනු ලැබේ (මෙම අවස්ථාවේදී, TheFileYouAreSending) සම්පූර්ණ නැත. කාරණය වන්නේ ඔබට පසුව --appendහෝ නැවත වරක් rsync ධාවනය කිරීමෙන් මාරුව සම්පූර්ණ කළ හැකිය --append-verify.

ඒ නිසා, --partialනැත අසාර්ථක හෝ අවලංගු මාරු නැවත ආරම්භ. එය නැවත ආරම්භ කිරීම සඳහා, ඊළඟ ධාවනයේදී ඉහත සඳහන් කළ ධජ වලින් එකක් භාවිතා කිරීමට ඔබට සිදුවේ. එබැවින්, ඉලක්කය කිසි විටෙකත් යහපත් යැයි පෙනෙන නමුත් ඇත්ත වශයෙන්ම අසම්පූර්ණ යැයි පෙනෙන ලිපිගොනු අඩංගු නොවන බවට වග බලා ගැනීමට ඔබට අවශ්‍ය නම්, ඔබ භාවිතා නොකළ යුතුය --partial. අනෙක් අතට, ඉලක්කගත නාමාවලියෙහි සඟවා ඇති අසාර්ථක ලිපිගොනු කිසි විටෙකත් ඔබ අතහැර නොයන බවට සහතික කර ගැනීමට ඔබට අවශ්‍ය නම්, පසුව ඔබට මාරුවීම සම්පූර්ණ කළ හැකි බව ඔබ දනී නම්, ඔබට --partialඋදව් කිරීමට තිබේ.

--appendඉහත සඳහන් කළ ස්විචය සම්බන්ධයෙන් , මෙය සත්‍ය "නැවත ආරම්භ කිරීම" ස්විචය වන අතර, ඔබ භාවිතා කරන්නේද නැද්ද යන්න ඔබට භාවිතා කළ හැකිය --partial. ඇත්ත වශයෙන්ම, ඔබ භාවිතා කරන විට --append, කිසිඳු තාවකාලික ලිපිගොනු නිර්මාණය නොවේ. ලිපිගොනු ඔවුන්ගේ ඉලක්ක වෙත කෙලින්ම ලියා ඇත. මේ සම්බන්ධයෙන්, අසාර්ථක මාරුවකට --appendසමාන ප්‍රති result ලයක් ලබා දෙයි --partial, නමුත් එම සැඟවුණු තාවකාලික ලිපිගොනු නිර්මාණය නොකර.

සාරාංශයක් ලෙස, ඔබ විශාල ලිපිගොනු ගෙනයන්නේ නම් සහ අවලංගු වූ හෝ අසාර්ථක වූ rsync මෙහෙයුම rsyncනැවතී ඇති නිශ්චිත ස්ථානයෙන් නැවත ආරම්භ කිරීමට ඔබට අවශ්‍ය නම්, ඔබ ඊළඟ උත්සාහය භාවිතා කිරීම --appendහෝ --append-verifyමාරු කිරීම අවශ්‍ය වේ .

Lex ඇලෙක්ස් පහත පෙන්වා ඇති පරිදි, 3.0.0 අනුවාදයට rsyncදැන් නව විකල්පයක් ඇත --append-verify, එය --appendඑම ස්විචය පැවතීමට පෙර මෙන් ක්‍රියා කරයි. ඔබට සැමවිටම හැසිරීම අවශ්‍ය වේ --append-verify, එබැවින් ඔබේ අනුවාදය සමඟ පරීක්ෂා කරන්න rsync --version. ඔබ මැක්හි rsyncසිට භාවිතා නොකරන්නේ නම් homebrew, ඔබට (අවම වශයෙන් එල් කැපිටන් ඇතුළු) පැරණි අනුවාදයක් ඇති අතර ඒ --appendවෙනුවට භාවිතා කිරීමට අවශ්‍ය වේ --append-verify. ඔවුන් හැසිරීම නොකියන්නේ මන්ද --appendසහ ඒ වෙනුවට නවකයා --append-no-verifyනම් කිරීම ටිකක් ප්‍රහේලිකාවක්. කොහොම උනත්, --appendමත rsyncවන අනුවාදය සහ 3 වන අනුවාදය පෙර හා සමාන වේ --append-verifyයන නවතම අනුවාද මත.

--append-verifyභයානක නොවේ: එය සෑම විටම දෙපැත්තේම දත්ත කියවා සංසන්දනය කරනු ඇති අතර ඒවා සමාන යැයි උපකල්පනය නොකරයි. එය චෙක්සම් භාවිතා කරමින් මෙය සිදු කරයි, එබැවින් එය ජාලයට පහසුය, නමුත් ඉලක්කයට එකතු කිරීමෙන් මාරුව නැවත ආරම්භ කිරීමට පෙර කම්බියේ දෙපසම බෙදාගත් දත්ත ප්‍රමාණය කියවීම අවශ්‍ය වේ.

දෙවනුව, ඔබ කියා සිටියේ "ප්‍රභවය සහ ගමනාන්තය අතර වෙනස්කම් සොයා ගැනීමට rsync හට හැකි බව ඔබ අසා ඇති අතර එම නිසා වෙනස්කම් පිටපත් කිරීමට පමණි."

එය නිවැරදියි, එය ඩෙල්ටා හුවමාරුව ලෙස හැඳින්වේ, නමුත් එය වෙනස් දෙයක්. මෙය සක්‍රිය කිරීම සඳහා, ඔබ එකතු කරන්න -c, නැතහොත් --checksumමාරු කරන්න. මෙම ස්විචය භාවිතා කළ පසු, කම්බියේ දෙපස ඇති ගොනු rsync විසින් පරීක්ෂා කරනු ඇත. එය කුට්ටි වලින් මෙය සිදු කරයි, චෙක්සම් දෙකම කෙළවරේ සංසන්දනය කරයි, ඒවා එකිනෙකට වෙනස් නම්, එය ගොනුවේ වෙනස් කොටස් පමණක් මාරු කරයි. @ ජොනතන් පහත පෙන්වා ඇති පරිදි, සැසඳීම සිදු කරනුයේ ලිපිගොනු දෙකේම එකම ප්‍රමාණයේ ගොනු ඇති විට පමණි - විවිධ ප්‍රමාණවලින් rsync මුළු ගොනුවම උඩුගත කිරීමට හේතු වන අතර ඉලක්කය එකම නමකින් නැවත ලියයි.

මේ සඳහා මුලදී දෙපැත්තෙන්ම මඳක් ගණනය කිරීම අවශ්‍ය වේ, නමුත් උදාහරණයක් ලෙස ඔබ බොහෝ විට සුළු වෙනස්කම් අඩංගු විශාල ප්‍රමාණයේ ස්ථාවර ප්‍රමාණයේ ගොනු උපස්ථ කරන්නේ නම් ජාල බර අඩු කිරීම සඳහා අතිශයින්ම කාර්යක්ෂම විය හැකිය. මතකයට එන උදාහරණ වන්නේ අතථ්‍ය යන්ත්‍ර හෝ iSCSI ඉලක්ක වල භාවිතා වන අථත්‍ය දෘ hard තැටි රූප ගොනු ය.

--checksumඉලක්කගත පද්ධතියට සම්පූර්ණයෙන්ම අළුත් ලිපිගොනු සමූහයක් මාරු කිරීමට ඔබ භාවිතා කරන්නේ නම් , ඒවා මාරු කිරීමට පෙර rsync ප්‍රභව පද්ධතියේ ඔවුන්ගේ චෙක්සම් ගණනය කරනු ඇත. ඇයි මම නොදන්නේ :)

ඉතින්, කෙටියෙන්:

ඔබ බොහෝ විට "A සිට B දක්වා පියවර දේවල්" නිකම් rsync භාවිතා කරන්නේ නම් සහ එම මෙහෙයුම අවලංගු කිරීමට හා පසුව එය නැවත ආරම්භ එම විකල්පය අවශ්ය නැහැ භාවිතා --checksum, නමුත් කරන්න භාවිතය --append-verify.

ඔබ බොහෝ විට දේවල් උපස්ථ කිරීම සඳහා rsync භාවිතා කරන්නේ නම්, --append-verifyවිශාල ප්‍රමාණයේ ලිපිගොනු යැවීමේ පුරුද්දක් ඔබට නොමැති නම්, දිගින් දිගටම ප්‍රමාණයෙන් වැඩෙන නමුත් ලිවීමෙන් පසු කලාතුරකින් වෙනස් කරනු ලැබේ. ප්‍රසාද දීමනාවක් ලෙස, ඔබ වැනි ස්නැප්ෂොට් කිරීම සඳහා සහය දක්වන ගබඩාවට උපස්ථ කරන්නේ නම් btrfsහෝ zfs, --inplaceස්විචය එක් කිරීමෙන් ඔබට වෙනස් කළ ලිපිගොනු ප්‍රතිනිර්මාණය නොකෙරෙන නමුත් වෙනස් කළ කොටස් කෙලින්ම පැරණි ඒවා මත ලියා ඇති බැවින් ස්නැප්ෂොට් ප්‍රමාණය අඩු කිරීමට උපකාරී වේ. සුළු වෙනස්කම් පමණක් සිදු වූ විට ඉලක්කය මත ලිපිගොනු පිටපත් කිරීම rsync වළක්වා ගැනීමට ඔබට අවශ්‍ය නම් මෙම ස්විචය ද ප්‍රයෝජනවත් වේ.

භාවිතා කරන විට --append-verify, rsync සෑම විටම එකම ප්‍රමාණයේ සියලුම ගොනු වල ක්‍රියා කරන ආකාරයටම ක්‍රියා කරයි. ඒවා වෙනස් කිරීම් හෝ වෙනත් කාලරාමු වලින් වෙනස් නම්, එම ලිපිගොනු තවදුරටත් සෝදිසි නොකර මූලාශ්‍රය සමඟ ඉලක්කය නැවත ලියනු ඇත. --checksumසෑම ගොනු යුගලයකම සමාන නම සහ ප්‍රමාණයන්හි අන්තර්ගතයන් (චෙක්සම්) සංසන්දනය කරනු ඇත.

යාවත්කාලීන කරන ලද්දේ 2015-09-01 lex ඇලෙක්ස් විසින් කරන ලද කරුණු පිළිබිඹු වන පරිදි වෙනස් කරන ලදි (ස්තූතියි!)

යාවත්කාලීන කරන ලද්දේ 2017-07-14 on ජොනතන් විසින් කරන ලද කරුණු පිළිබිඹු වන පරිදි වෙනස් කරන ලදි (ස්තූතියි!)


6
මෙම පවසයි --partialතරම් වේ.
සීස් ටිමර්මන්


3
@CMCDragonkai ඇත්තටම, ඇලෙක්සැන්ඩර්ගේ පිළිතුර ගැන පහත බලන්න --partial-dir- එය මේ සඳහා සුදුසුම උණ්ඩය බව පෙනේ. මට යමක් මුළුමනින්ම මග හැරී ඇති;)
ඩැනියෙල්ස්මෙගාඩ්බස්

3
An ඩැනියෙල්ස්මෙගාඩ්බස් මා එය මන්දගාමී සම්බන්ධතාවයකින් පරීක්‍ෂා කළ අතර මෙය මා දකින්නේ මෙයයි --partial : rsync ගොනුව තාවකාලික නමට පිටපත් කරයි, සම්බන්ධතාවය බාධා වේ, දුරස්ථ rsync අවසානයේදී එම ගොනුව සාමාන්‍ය නමට ගෙන ගොස් ඉවත්ව යයි. නැවත ධාවනය සමඟ --partialසහ තොරව --append , නව තාවකාලික ගොනුව අර්ධ වශයෙන්-මාරු දුරස්ථ ගොනු පිටපතක් සමඟ ආරම්භනය කර ඇත, එබැවින් පිටපත සම්බන්ධය මිය ගිය සිට දිගටම. (උබුන්ටු 14.04 / rsync 3.1)
ඉස්කාටා

4
විස්තර කර ඇති හැසිරීම පිළිබඳ ඔබේ විශ්වාසයේ මට්ටම --checksumකුමක්ද? එයට අනුව manඩෙල්ටා හුවමාරුවට වඩා මාරු කිරීම සඳහා කුමන ලිපිගොනු සලකුණු කළ යුතුද යන්න තීරණය කිරීම සඳහා වැඩි යමක් ඇත (එය අනුමාන වශයෙන් rsyncපෙරනිමි හැසිරීමයි).
ජොනතන් වයි.

68

ටීඑල්; ඩීආර්:

Rsync man පිටු නිර්දේශ කරන පරිදි අර්ධ නාමාවලියක් සඳහන් කරන්න:

--partial-dir=.rsync-partial

දිගු පැහැදිලි කිරීම:

--partial-dirවිකල්පය භාවිතා කරමින් මෙය සිදු කිරීම සඳහා සැබවින්ම සාදන ලද අංගයක් ඇත , එය --partialසහ --append-verify/ --appendවිකල්පයට වඩා වාසි කිහිපයක් ඇත .

Rsync man පිටු වලින් උපුටා ගැනීම:

--partial-dir=DIR
      A  better way to keep partial files than the --partial option is
      to specify a DIR that will be used  to  hold  the  partial  data
      (instead  of  writing  it  out to the destination file).  On the
      next transfer, rsync will use a file found in this dir  as  data
      to  speed  up  the resumption of the transfer and then delete it
      after it has served its purpose.

      Note that if --whole-file is specified (or  implied),  any  par-
      tial-dir  file  that  is  found for a file that is being updated
      will simply be removed (since rsync  is  sending  files  without
      using rsync's delta-transfer algorithm).

      Rsync will create the DIR if it is missing (just the last dir --
      not the whole path).  This makes it easy to use a relative  path
      (such  as  "--partial-dir=.rsync-partial")  to have rsync create
      the partial-directory in the destination file's  directory  when
      needed,  and  then  remove  it  again  when  the partial file is
      deleted.

      If the partial-dir value is not an absolute path, rsync will add
      an  exclude rule at the end of all your existing excludes.  This
      will prevent the sending of any partial-dir files that may exist
      on the sending side, and will also prevent the untimely deletion
      of partial-dir items on the receiving  side.   An  example:  the
      above  --partial-dir  option would add the equivalent of "-f '-p
      .rsync-partial/'" at the end of any other filter rules.

පෙරනිමියෙන්, rsync අහඹු තාවකාලික ගොනු නාමයක් භාවිතා කරයි, එය මාරුවීමක් අසමත් වූ විට මැකෙනු ඇත. සඳහන් කළ පරිදි, --partialඔබ භාවිතා කිරීමෙන් rsync අසම්පූර්ණ ගොනුව සාර්ථකව මාරු කළ ආකාරයට තබා ගත හැකිය , එවිට --append-verify/ --appendවිකල්ප භාවිතා කර පසුව එය එකතු කළ හැකිය . කෙසේ වෙතත් මෙය උප ප්‍රශස්ත වීමට හේතු කිහිපයක් තිබේ.

  1. ඔබගේ උපස්ථ ලිපිගොනු සම්පුර්ණ නොවිය හැකි අතර, තවමත් වෙනස් නොවන දුරස්ථ ගොනුව පරික්ෂා නොකර, දැන ගැනීමට ක්‍රමයක් නොමැත.

  2. ඔබ භාවිතා කිරීමට උත්සාහ කරන්නේ නම් --backupසහ --backup-dir, ඔබ මෙම ගොනුවේ නව අනුවාදයක් ඔබගේ අනුවාද ඉතිහාසයට පෙර කිසි විටෙකත් පිටව ගොස් නැත.

කෙසේ වෙතත්, අපි භාවිතා කරන්නේ නම් --partial-dir, rsync තාවකාලික අර්ධ ගොනුව ආරක්ෂා කරනු ඇති අතර, ඊළඟ වතාවේ ඔබ එය ක්‍රියාත්මක කරන විට එම අර්ධ ගොනුව භාවිතා කර නැවත බාගත කිරීම ආරම්භ කරනු ඇත, තවද අපි ඉහත ගැටළු වලින් පීඩා විඳින්නේ නැත.


--partial-dirඅයි / ඕ ප්‍රමාණය සහ / හෝ තැටි ලිවීමේ මෙහෙයුම් (සීඑෆ්, එස්එස්ඩී, ආදිය) සම්බන්ධව ස්වල්පයක් : 1. ලිපිගොනු සමමුහුර්ත කරන විට එකම කොටසක නොමැති මාර්ගයක් (වෙනත් තැටියක්, RAM ධාවකය, ආදිය), නිශ්චිත නාමාවලිය අතර ගොනු පිටපතක් සිදු වූ විට ඉලක්කය සිදුවනු ඇත; 2. විශාල ලිපිගොනු සම්බන්ධ වූ විට, සාපේක්ෂ මාර්ගයක් භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ ( එකම කොටසේ පිහිටා ඇත - සංකේතාත්මක සබැඳියක් නොවේ); 3. තාවකාලික ආචයනය භාවිතා කරන විට (RAM ධාවකය වැනි), සමමුහුර්ත කළ යුතු ලිපිගොනු තාවකාලික ගබඩා නිදහස් ඉඩකින් සීමා වන බව ද දැන සිටිය යුතුය.
හෙල්ඩර් මාගල්හීස්

39

-Pඔබේ විධානයට විකල්පය එක් කිරීමට ඔබට අවශ්‍ය විය හැකිය .

සිට manපිටුව:

--partial By default, rsync will delete any partially transferred file if the transfer
         is interrupted. In some circumstances it is more desirable to keep partially
         transferred files. Using the --partial option tells rsync to keep the partial
         file which should make a subsequent transfer of the rest of the file much faster.

  -P     The -P option is equivalent to --partial --progress.   Its  pur-
         pose  is to make it much easier to specify these two options for
         a long transfer that may be interrupted.

එබැවින් ඒ වෙනුවට:

sudo rsync -azvv /home/path/folder1/ /home/path/folder2

කරන්න:

sudo rsync -azvvP /home/path/folder1/ /home/path/folder2

ඇත්ත වශයෙන්ම, ඔබට ප්‍රගති යාවත්කාලීන කිරීම් අවශ්‍ය නැතිනම්, ඔබට භාවිතා කළ හැකිය --partial, එනම්:

sudo rsync --partial -azvv /home/path/folder1/ /home/path/folder2

LiFlimm තරමක් නිවැරදි නැත. බාධාවක් තිබේ නම් (ජාල හෝ ලැබීමේ පැත්ත) --partial භාවිතා කරන විට අර්ධ ගොනුව තබා ඇති අතර rsync නැවත ආරම්භ කරන විට එය භාවිතා වේ. මෑන්පේජ් වෙතින්: "--partial විකල්පය භාවිතා කිරීමෙන් rsync ට කියනුයේ අර්ධ ගොනුව තබා ගැනීමට <b> පසුව ඉතිරි ගොනුව වඩා වේගයෙන් මාරු කළ යුතු බවයි </ b>."
gaoithe

2
L ෆ්ලිම් සහ ඇගෝයිත්, මගේ පිළිතුර තරමක් නිවැරදි නොවූ අතර නිසැකවම යාවත්කාලීන නොවේ. හි 3 + අනුවාදය පිළිබිඹු කිරීම සඳහා මම එය යාවත්කාලීන කර ඇත rsync. එය, නමුත්, මානසික ආතතිය කිරීම වැදගත් --partialවන්නේ නැහැ ම අසාර්ථක මාරු නැවත ආරම්භ. විස්තර සඳහා මගේ පිළිතුර බලන්න :)
DanielSmedegaardBuus

2
An ඩැනියෙල්ස්මෙගාඩ්බස් මම එය අත්හදා බැලුවෙමි -P. අනුවාද: සේවාදායකයාට 3.1.0 ක් සහ සේවාදායකයට 3.1.1 ක් ඇත. Ctrl-c සමඟ තනි විශාල ගොනුවක් මාරු කිරීමට මම බාධා කළෙමි. මම හිතන්නේ මට යමක් මග හැරී ඇත.
guettli

ඇයි vv? එනම් v2 වතාවක් භාවිතා කර තිබේද?
mrgloom

Rsync ගොනුවේ කොටසක් ඉතිරි කරන්නේ කොහෙන්ද -azvvP?
mrgloom

2

මේ සඳහා ප්‍රමාද වී පැමිණීම, නමුත් මට එකම ප්‍රශ්නය ඇති අතර මට වෙනත් පිළිතුරක් හමු විය.

මෙම --partialධජය (දී "අර්ධ වශයෙන් මාරු ගොනු තබා" rsync -h) ලෙස වන අතර, විශාල ගොනු සඳහා ප්රයෝජනවත් වේ --append( "ඇතුලත් කෙටි ගොනු මතට දත්ත"), නමුත් ප්රශ්නය එය ගැන විශාල සංඛ්යාවක් ගොනු.

දැනටමත් පිටපත් කර ඇති ලිපිගොනු වලක්වා ගැනීම සඳහා -u(හෝ --update: "ග්‍රාහකයේ නවතම ගොනු මඟ හරින්න").


1
ස්වයං සටහන: --ignore-existingසමඟ ඒකාබද්ධව භාවිතා නොකරන්න --append. Rsync ඔබේ බාධා කළ ගොනුව අසම්පූර්ණ වුවද ඔබ ඒ ගැන සතුටු වන බව සිතයි. මෙය මට අවබෝධ කර ගැනීම සඳහා සුළු හිස් කබලක් ගෙන ගියේය. ඔබ පුරුද්දක් ලෙස භාවිතා කරන පෙර සැකසූ විකල්ප රාශියක් තිබීමේ අවාසිය එයයි.
ශ්‍රීධර් සර්නොබත්

1

මම හිතන්නේ ඔබ බලහත්කාරයෙන් අමතන්නේ rsyncඒ නිසා ඔබ එය නැවත සිහිපත් කරන විට සියලු දත්ත බාගත වේ. --progressපිටපත් නොකරන ලද ගොනු පමණක් පිටපත් කිරීමට විකල්පයක් භාවිතා කරන්න --deleteසහ දැනටමත් පිටපත් කර ඇත්නම් ඕනෑම ගොනුවක් මකාදැමීමේ විකල්පය භාවිතා කරන්න, දැන් එය ප්‍රභව ෆෝල්ඩරයේ නොපවතී ...

rsync -avz --progress --delete -e  /home/path/folder1/ /home/path/folder2

ඔබ වෙනත් පද්ධතියකට ප්‍රවේශ වී ගොනු පිටපත් කිරීමට ssh භාවිතා කරන්නේ නම්,

rsync -avz --progress --delete -e "ssh -o UserKnownHostsFile=/dev/null -o \
StrictHostKeyChecking=no" /home/path/folder1/ /home/path/folder2

මෙම සංකල්පය පිළිබඳ මගේ අවබෝධයේ යම් වැරැද්දක් තිබේ නම් මට දන්වන්න ...


1
කරුණාකර ඔබේ පිළිතුර සංස්කරණය කර ඔබගේ විශේෂ ssh ඇමතුම කරන්නේ කුමක්ද සහ එය කිරීමට ඔබ උපදෙස් දෙන්නේ ඇයි?
ෆේබියන්

3
Ab ෆේබියන් ඔහු rsync ට ssh විකල්ප දෙකක් සැකසීමට පවසයි (rsync සම්බන්ධ වීමට ssh භාවිතා කරයි). දෙවැන්න ssh ට පවසන්නේ ඔහු සම්බන්ධ කරන ධාරකය දැනටමත් නොදන්නේ නම් ("දන්නා ධාරක" ගොනුවේ පවතින පරිදි) තහවුරු කිරීම සඳහා විමසීමක් නොකරන ලෙසයි. පළමුවැන්න පෙරනිමි දන්නා ධාරක ගොනුව භාවිතා නොකරන ලෙස ssh ට පවසයි (එය ~ / .ssh / known_hosts වනු ඇත). ඔහු ඒ වෙනුවට / dev / null භාවිතා කරයි, එය ඇත්ත වශයෙන්ම සෑම විටම හිස් වන අතර ssh එවිට එහි ධාරකය සොයා නොගනු ඇත, එය සාමාන්‍යයෙන් තහවුරු කිරීම සඳහා විමසනු ඇත, එබැවින් විකල්ප දෙකකි. සම්බන්ධ වූ පසු, ssh දැන් දන්නා ධාරකය / dev / null වෙත ලියයි, එය ක්ෂණිකව අමතක කරයි :)
DanielSmedegaardBuus

2
... නමුත් ඔබ බොහෝ විට කල්පනා කරමින් සිටියේ එය rsync මෙහෙයුමට බලපාන්නේ කෙසේද යන්නයි. පිළිතුර කිසිවක් නැත. එය සේවය කරන්නේ ඔබ සම්බන්ධ කරන ධාරකය ඔබගේ SSH දන්නා ධාරක ගොනුවට එක් කිරීමට නොවේ. සමහර විට ඔහු බොහෝ විට නව සේවාදායකයන්, තාවකාලික පද්ධති හෝ වොට්නොට් විශාල සංඛ්‍යාවක් සමඟ සම්බන්ධ වන සයිසැඩ්මින් කෙනෙක් විය හැකිය. මම දන්නේ නැහැ :)
DanielSmedegaardBuus

5
"පිටපත් නොකරන ලද ගොනු පමණක් පිටපත් කිරීමට --progress විකල්පය භාවිතා කරන්න" කුමක්ද?
moi

1
මෙහි දෝෂ කිහිපයක් තිබේ; එකක් ඉතා බැරෑරුම් ය: ප්‍රභවයේ නොපවතින ගමනාන්තයේ--delete ගොනු මකා දමනු ඇත . අඩු බැරෑරුම් දෙය නම් දේවල් පිටපත් කරන ආකාරය වෙනස් නොකිරීමයි; එය එක් එක් ගොනුව පිටපත් කරන විට ප්‍රගති වාර්තාවක් ලබා දෙයි. (මම බරපතල වරදක් ස්ථාවර; එය වෙනුවට .)--progress--remove-source-files
පෝල් d'Aoust

1

මම මෙම සරල පිටපත භාවිතා කරමි. සමහර ධජ සැකසීමට සහ / හෝ පරාමිතිකරණය කිරීමට නිදහස් වන්න.

#!/bin/bash

while [ 1 ]
do
    rsync -avz --partial [source] [dest]:
    if [ "$?" = "0" ] ; then
        echo "rsync completed normally"
        exit
    else
        echo "Rsync failure. Backing off and retrying..."
        sleep 180
    fi
done
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.