Mae eich uwchlwythiad yn stopio ar bedwar gigabeit o archif o ddeuddeg gigabeit, ac mae’r arferiad a ddysgwyd oddi wrth reolwyr llwytho i lawr yn dweud i bwyso ailddechrau. Ni fydd rsync yn ailddechrau’r ffrwd TCP, oherwydd mae’r ffrwd honno wedi mynd gydag ail-drosglwyddiad olaf y twnnel. Yr hyn y gall ei wneud yw cadw’r beitiau a dderbyniwyd eisoes a’u defnyddio’n sail ar gyfer yr ymgais nesaf, sef mecanwaith gwahanol â set wahanol o reolau. Mae’r baneri a ddewiswch yn penderfynu a fydd yr ailddefnydd hwnnw’n digwydd o gwbl.

Mae’r ailymgais yn ailadeiladu cyflwr, nid yw’n ailddechrau’r ffrwd

Pan fydd sesiwn SSH yn cwympo, dim ond yr hyn a fflwsiwyd i’r ddisg sydd ar ôl ar y pen pell, a dim arall. Nid oes tocyn sesiwn i ailymuno ag ef na rhif dilyniant i’w ailchwarae. Mae’r rhedeg nesaf yn agor cysylltiad newydd, yn darllen y ffynhonnell eto, ac yn gofyn i’r derbynnydd beth sydd ganddo’n barod.

Y cwestiwn olaf hwnnw sy’n esbonio pam mae ffeil rannol yn werth ei chadw. Mae copi’r derbynnydd yn rhoi rhywbeth i rsync gymharu ag ef, ac mae’r algorithm yn anfon yn unig y gwahaniaethau y gall eu hadnabod. Mae’n dal yn drosglwyddiad newydd o fetadata ac yn daith newydd dros y ffynhonnell, felly mae’r amser a arbedir yn gymesur â chymaint o’r ffeil sy’n cyfateb, nid â chymaint yr oedd y cysylltiad blaenorol wedi cyrraedd. Os na chadwodd y derbynnydd ddim, mae’r ymgais nesaf yn gopi llawn, faint bynnag o gigabeitiau a symudodd yr un gyntaf.

Penderfynwch ble mae’r darn ailddefnyddiadwy yn byw

Mae’r ymddygiad diofyn yn ysgrifennu’r ffeil rannol ar lwybr y gyrchfan, sy’n gwneud archif hanner-ysgrifenedig yn weladwy o dan yr enw terfynol. Mae --partial-dir yn ei symud i gyfeiriadur o’ch dewis, ac mae’r llawlyfr yn disgrifio’r cyfeiriadur hwnnw fel un a gedwir i’w ddefnyddio fel data gan drosglwyddiad diweddarach. Mae enw cymharol yn cael ei ddatrys o dan y cyfeiriadur cyrchfan, sef yr hyn rydych ei eisiau pan fo’r ddau ben â chynlluniau gwahanol o bosibl.

rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
  large-archive.bin [email protected]:/srv/incoming/

Mae trefn yn bwysig yn y gyrchfan hefyd: mae ar y cyfeiriadur rannol angen digon o le i’r darn, ac mae ar y gyfrol angen digon ar gyfer y ffeil gyflawn hefyd. Mae llenwi’r gyfrol darged yng nghanol y trosglwyddiad yn cynhyrchu methiant sy’n edrych fel problem rhwydwaith ond nad yw, a gall adael y darn a gedwir yn gwtog. Gwiriwch le rhydd ar y gwesteiwr sy’n derbyn cyn i’r rhedeg ddechrau, nid ar ôl iddo fethu. Mae ychydig eiliadau gyda df -h dros yr un llwybr SSH y prawf rhataf posibl o’r cynllun.

Mae caniatâd yn bryder llai ond yn real. Mae cyfeiriadur rannol y gall cyfrifon digyswllt ysgrifennu iddo yn gadael i rywun arall amnewid cynnwys y bydd eich rhedeg nesaf yn ei drin fel un a dderbyniwyd yn barod. Cadwch ef ym mherchnogaeth y cyfrif trosglwyddo, a pheidiwch â’i roi yn rhywle y mae gwasanaethau eraill yn cyhoeddi ohono.

Rhedwch yr un copi, nid un mwy cyfrwys

Dim ond pan fo’r ffynhonnell a’r gyrchfan yn dal i ddisgrifio’r un gwrthrych y mae’r ailddefnydd yn berthnasol. Yr un llwybr, yr un enw, yr un ffeil. Mae ailenwi’r ffynhonnell neu bwyntio at gyfeiriadur cyrchfan gwahanol yn dechrau cymhariaeth newydd yn erbyn dim defnyddiol.

Peidiwch ag ychwanegu --whole-file wrth ddisgwyl ymddygiad delta. Mae’r opsiwn hwnnw’n dweud wrth rsync i gopïo’r ffeil gyfan heb gymhariaeth y swm gwirio rholio, sy’n ddewis rhesymol ar gyswllt lleol cyflym ac yn hollol anghywir ar ôl uwchlwythiad pell wedi methu. Mae --inplace hefyd yn newid y stori: mae’n ysgrifennu’n uniongyrchol i’r ffeil gyrchfan, felly mae ymyrraeth yn gadael ffeil sy’n cymysgu cynnwys hen a newydd heb ddarn ar wahân i ddisgyn yn ôl arno.

Mae’r llinell gynnydd yn adrodd cynnydd cronnus y trosglwyddiad. Nid yw’n signal cwblhau. Mae rhif sy’n cyrraedd can y cant tra bo’r cysylltiad yn dal ar agor yn golygu bod y data wedi’i wthio, nid bod y derbynnydd wedi ailenwi, cysoni nac derbyn unrhyw beth.

Derbyniwch y gwrthrych dim ond ar ôl iddo gyfateb

Cadarnhewch y statws allan yn gyntaf, yna cymharwch y canlyniad yn lle ymddiried yn absenoldeb gwallau. Mae gwiriad maint yn dal y rhan fwyaf o drosglwyddiadau cwtog; mae cymhariaeth swm gwirio yn dal y gweddill, ac mae’r ddau’n rhad o’u cymharu â rhedeg yr uwchlwythiad eto.

Os yw proses i lawr yr afon yn cyhoeddi’r archif, gwnewch i’r broses honno aros am y ffeil a dderbyniwyd. Mae darn a gedwir sy’n glanio mewn cyfeiriadur a wylir o dan yr enw terfynol yn cael ei godi gan y sgan nesaf, a bydd gwall y defnyddiwr yn ymwneud â mewnbwn llygredig yn hytrach na throsglwyddiad na chwblhaodd erioed.

Gadewch y ffynhonnell yn llonydd nes i’r derbynnydd gadarnhau. Mae ailddychmygu’r archif rhwng ymgeisiau yn newid y sail gymharu, ac mae’r rhedeg nesaf naill ai’n trosglwyddo bron popeth neu’n cynhyrchu ffeil nad yw’n cyfateb i’r hen ffynhonnell na’r un newydd.

Pan mai’r cyswllt, nid y baner, yw’r terfyn

Mae gorbenion pennawd a phrotocol yn un gost o drosglwyddiad, ac anaml mai dyna’r un sy’n penderfynu faint o amser y mae ffeil fawr yn ei gymryd. Mae ymddygiad ailgychwyn yn bwysicach: mae dull sy’n goroesi cwymp heb gamau â llaw yn cyflwyno ffeil ddefnyddiadwy yn gynt na dull cyflymach y mae’n rhaid iddo ddechrau o’r newydd. Mae storio ar y ddau ben a’r llwybr dilysu yn perthyn i’r un gymhariaeth.

Cymharwch lwybrau amgen a ganiateir gyda’r un ffeil a’r un gyrchfan, a nodwch o ble y mae pob un yn ailddechrau ar ôl ymyrraeth. Mae’r un golofn honno’n dweud mwy wrthych am uwchlwythiad o ddeuddeg gigabeit dros VPN nag unrhyw gyfradd brig a fesurwyd mewn prawf byr.

Erthyglau cysylltiedig