පළමුවෙන්ම, ඔබේ ප්රශ්නයේ "නැවත ආරම්භ කිරීම" කොටස සම්බන්ධයෙන්, --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 ජොනතන් විසින් කරන ලද කරුණු පිළිබිඹු වන පරිදි වෙනස් කරන ලදි (ස්තූතියි!)