Path: csiph.com!news.mixmin.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Cecil Westerhof Newsgroups: nl.comp.sys.android,nl.comp.os.linux.techniek Subject: Re: Android rsync probleem Date: Thu, 30 Mar 2023 18:05:04 +0200 Organization: Decebal Computing Lines: 73 Message-ID: <87wn2yi5sf.fsf@munus.decebal.nl> References: <87cz5aqh2o.fsf@munus.decebal.nl> <87sfdumuvt.fsf@munus.decebal.nl> <878rfejsxb.fsf@munus.decebal.nl> MIME-Version: 1.0 Content-Type: text/plain Injection-Info: dont-email.me; posting-host="f63cbbb829732f3d519cd3ed277b2435"; logging-data="1003318"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18106Eleh+QP8nFkHUfeG/Ho6yVqfg+Lvk=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) Cancel-Lock: sha1:Ld/Ut9vsgCnKfZTrHafW1+8Q89s= sha1:rXUVaq7MELyB6pUaFQmdCseZ9bQ= Xref: csiph.com nl.comp.sys.android:3072 nl.comp.os.linux.techniek:9099 jornws200602@xs4all.nl (Oscar) writes: > In article <878rfejsxb.fsf@munus.decebal.nl>, > Cecil Westerhof wrote: >>jornws200602@xs4all.nl (Oscar) writes: >> >>> TL;DR: probeer eens rsync -rv ... ipv rscync -av ... >> >>Ik geef in: >> /run/user/1000/gvfs/mtp:host=LENOVO_Lenovo_TB-8705F_HA141AZC/Internal >> shared storage/Documents/Old >> >>Het commando: >> rsync -rv ~/Documents/Lenova/Documents/Old/ . >> >>En dit levert op: >> sending incremental file list >> todo2.txt >> rsync: [receiver] rename >> "/run/user/1000/gvfs/mtp:host=LENOVO_Lenovo_TB-8705F_HA141AZC/Internal >> shared storage/Documents/Old/.todo2.txt.csGp1D" -> >>"todo2.txt": Input/output error (5) > > Aha! > > Nu is het niet meer de call 'mkstemp' die de foutmelding geeft. Die ging > goed en er hoefde ook geen andere attributen meer aangepast te worden. > > Maar nu gaat 'rename' fout. Kun je nog eens lezen wat ik schreef bij je > poging tot "mv todo.txt todo2.txt" ? Ik veronderstelde dat dit FS geen > rename() ondersteunt. En ja hoor... het gaat fout als rsync na de > transfer een rename() doet om het tijdelijke bestand de definitieve naam > te geven. > > >>Het lijkt wel of het erger wordt. > > Nee hoor, we zijn al een stap verder. > > Kan het zijn dat .todo2.txt.RANDOM nu wel een inhoud heeft? Nee, maar dat had ik niet gemeld: er was helemaal geen .todo2.txt.csGp1D. > > > probeer eens: > > rsync -rv -T /tmp > > Bij deze actie wordt de tijdelijke file in /tmp aangemaakt en wordt > daarna over de destination heen gekopieerd. Niet heel nuttig bij een > lokale transfer, maar rsync was ooit bedoeld voor trage verbindingen. Dat werkt. En is daarom toch wel nuttig. :-D > Een nadeel heb je nu wel: de rename() is atomair, waar copy/delete dat > niet is. Als je niet weet waarom dat belangrijk is, heb je het > waarschijnlijk niet nodig. Het gaat om bestanden die ik als ik weg ben op de tablet aanpas en als ik thuis ben op de computer, dus dat gaat geen problemen opleveren lijkt me. Waar ik wel aan moet denken dat ik op slechts een plek de bestanden aanpas en op het moment dat ik wil wisselen ik eerst een (goede) rsync draai. Maar dat is een stukje discipline. En misschien kan het geen kwaad om een slim scriptje hiervoor te schrijven. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof