නව ගොනු පමණක් rsync කරන්නේ කෙසේද


167

මගේ ප්‍රධාන වෙබ් සේවාදායකය දුරස්ථ සේවාදායකයට සමමුහුර්ත කිරීම සඳහා rsync සැකසීමට මම උත්සාහ කරමි.

මෙන්න මම භාවිතා කරන විධානය:

rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar

'--Update' ධජය නොතකා වෙබ් සේවාදායකය ඇත්ත වශයෙන්ම සියලුම ලිපිගොනු මාරු කරන බව පෙනේ. මම විවිධ ධජ සංයෝජන අත්හදා බැලුවෙමි (උදා: '-a' අතහැර දමා ඒ වෙනුවට '-uv' භාවිතා කිරීම) නමුත් කිසිවක් උදව් කළේ නැත. අලුතින් එකතු කරන ලද ගොනු පමණක් යැවීමට rsync විධානය වෙනස් කරන්නේ කෙසේද?


2
ඔබ ගොනු සමමුහුර්ත කිරීමට අවශ්ය නම් කිරීමට දුරස්ථ සේවාදායකය, එය පසුගිය පැමිණ කළ යුතු නොවේද? එනම් rsync /foo/bar remoteuser@remotehost:/foo/bar
ostrokach

මෙම වෙබ් පිටුවෙන් ඔබට උනන්දු විය හැකිය . එසේම, ගොනු පද්ධතිය සමඟ ප්රවේශම් වන්න. සේවාදායකයේ ගොනු පද්ධතිය ඒ සියලු -aවිකල්පයන්ට සහය නොදක්වන්නේ නම් (හිමිකරු, කණ්ඩායම, පර්ම්, ...) එය අපගේ ගැටලුවට හේතුව විය යුතුය.
ppr

2
දේශීය ලිපිගොනු දුරස්ථ ගමනාන්තයට සම්පූර්ණයෙන් පිටපත් නොකිරීමේ ගැටලුවට කිසිදු පිළිතුරක් විසඳන්නේ නැත, ඔබට අවශ්‍ය වන්නේ නව ලිපිගොනු නැවත සම්බන්ධ කිරීම පමණි.
ඇක්සෙල් බ්‍රෙන්ස්බෝ

මම දැන් -cවිකල්පය සොයා ගත්තා . වෙනස් කිරීමේ වේලාව හෝ ප්‍රමාණය වෙනුවට චෙක්සම් මත පදනම්ව පවතින ගොනු මඟ හැරේ.
haheute

Answers:


213

සිට man rsync:

--ignore-existing       skip updating files that exist on receiver

--updateතරමක් වෙනස් දෙයක් කරයි, ඒ නිසා ඔබ අනපේක්ෂිත ප්‍රති results ල ලබා ගන්නේ ඒ නිසා විය හැකිය (බලන්න man rsync):

ගමනාන්තයේ පවතින ඕනෑම ලිපිගොනු මඟ හැරීමට සහ ප්‍රභව ගොනුවට වඩා නවීකරණය කරන ලද කාලයක් ඇති කිරීමට මෙය rsync ට බල කරයි . (පවතින ගමනාන්ත ගොනුවකට ප්‍රභව ගොනුවට සමාන වෙනස් කිරීමේ කාලයක් තිබේ නම්, ප්‍රමාණයන් වෙනස් නම් එය යාවත්කාලීන වේ.)


2
ඇත්තෙන්ම මම විධානය උත්සාහ කළේ '--update' වෙනුවට '--ignore-existing' සමඟය. එය වේගයෙන් අවසන් වූ නමුත් නව ලිපිගොනු දුරස්ථ ධාරකයට දමන්නේ නැත. අදහස් තිබේද? ස්තූතියි
සුපර්මාරියෝ

15
මෑන් පිටු උරා බොයි (එය හරියටම මම එහි ගියෙමි), එයින් --ignore-existingඅදහස් කරන්නේ ග්‍රාහකයේ ඇති ගොනු මාරු නොකරන්න, නැතහොත් එකම නමක් සහිත සමහර ගොනුවක් / ෆෝල්ඩරයක් ග්‍රාහකයේ තිබේ නම් ගොනු මාරු නොකරන්නේද?
puk

8
--update කරන්නේ එම mtimes (වන සර්වසම විට ගොනු මඟ නොවන වචන ගම්ය දේ). මම මෙය පරීක්ෂා කළා. "ගමනාන්තයට වඩා අළුත් මූලාශ්‍ර ලිපිගොනු පමණක් පිටපත් කරනු ලැබේ" යැයි පැවසුවහොත් වචන වඩාත් හොඳින් තේරුම් ගත හැකි යැයි මම විශ්වාස කරමි.
ඔක්ටපස්

5
CtOctopus "ගමනාන්තයට වඩා අළුත් මූලාශ්‍ර ලිපිගොනු පමණක් පිටපත් කරනු ලැබේ" ... හෝ ගමනාන්ත ලිපිගොනු සගයන්ට සමාන වෙනස් කිරීමේ කාලයක් ඇති ප්‍රභව ගොනු, නමුත් විවිධ ප්‍රමාණ ඇත. මම හිතන්නේ එය වැදගත් කරුණක්. (ක්‍රිස් දැනටමත් එය ආවරණය කර ඇත, ස්තූතියි)
ජොනතන් කොමාර්

එබැවින් ඔබට --ignore-පවතින සහ -r (පුනරාවර්තන) අවශ්‍ය වේ. -v (වාචික) ද තිබීම සතුටක් :-)
ලන්දේසි අන්කල්

43

මගේ නඩුවේදී මට සමාන ගැටළු ඇති අතර, නවීකරණය කරන ලද / නව ගොනු වෙනුවට සියලු ලිපිගොනු මාරු කර ඇත. මම මෙය විසඳුවේ පරාමිතීන් -t(වෙනුවට -a) සහ -P(සමාන --partial --progress) භාවිතා කරමින්:

rsync -h -v -r -P -t ප්‍රභව ඉලක්කය

මෙය මාරු කරන්නේ නව ලිපිගොනු සහ දැනටමත් පවතින නමුත් වෙනස් කර ඇති ගොනු පමණි: -aපරිශීලක සහ කණ්ඩායම් හැඳුනුම් සමමුහුර්තකරණය වැනි බොහෝ දේ කරයි, මගේ ප්‍රභවයේ සහ ඉලක්කගත පද්ධතිවල විවිධ පරිශීලකයින් සහ කණ්ඩායම් ඇති බැවින් මගේ නඩුවේ ක්‍රියා කළ නොහැක.

පරාමිතීන් විස්තරාත්මකව:

  • -h: මිනිස් කියවිය හැකි සංඛ්‍යා
  • -v: වාචික
  • -r: නාමාවලි වලට යොමු වන්න
  • -P: --partial(අර්ධ වශයෙන් මාරු කරන ලද ලිපිගොනු තබා ගන්න) +
            --progress(මාරු කිරීමේදී ප්‍රගතිය පෙන්වන්න)
  • -t: වෙනස් කිරීමේ වේලාවන් ආරක්ෂා කරන්න

2
'-A සඳහා +1 ඕනෑවට වඩා වැඩ කරයි' (ඇත්ත වශයෙන්ම -rlptgoD, අවසරය සමතලා නොකෙරේ, කණ්ඩායම් සහ හිමිකරු ආරක්ෂා වේ - මගේ සාමාන්‍ය සෙල්ලම්-ආරක්ෂිත උපස්ථ නොවේ ...)
ෆ්‍රෑන්ක් නොක්

මා වෙනුවෙන් වැඩ කළා. rsync -hvrPtපහසුව සඳහා ටයිප් කිරීමට මම කැමැත්තෙමි .
මැන්ගෝ

2

Rsync පිළිබඳ මගේ අත්දැකීම් අනුව, 1TB කොටස් පිටපත් කිරීම කාර්යක්ෂම වීමට තරම් විශාලය. එය සැකසීමට සදහටම rsync අවශ්‍ය වේ. ඒ වෙනුවට, උප බහලුම් මගින් එය කරන්න. එනම්, එක් එක් ප්‍රධාන උප බහලුම සඳහා rsync ධාවනය කරන්න. ලිපිගොනු දස දහස් ගණනක් හසුරුවා ගැනීමට අවශ්‍ය නොවන්නේ නම් එය බොහෝ වේගයෙන් ගමන් කරයි.


1
සමහර විට ඔබ මතකයෙන් ඉවතට ගොස් ඔබේ පද්ධතිය මාරු වීමට පටන් ගෙන තිබේද?
මාසෙල් බුර්කාර්ඩ්
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.