Software-update: rsync 3.2.1

Op de website van Samba is een nieuwe uitgave van rsync verschenen, met ditmaal 3.2.1 als versieaanduiding. Dit programma voorziet in een snelle manier om bestanden geheel of gedeeltelijk tussen verschillende servers en locaties te synchroniseren. Het wordt dan ook veel op de achtergrond toegepast in allerlei synchronisatieprogramma's, maar kan bijvoorbeeld ook voor de off-site back-up van fileservers gebruikt worden. Wie meer wil weten, kan de beschikbare documentatie doorlezen, waarin ook een aantal tutorials wordt vermeld. De aankondiging is op deze pagina na te lezen en de lijst met aanpassingen ziet er als volgt uit:

NEWS for rsync 3.2.1

BUG FIXES:
  • Fixed a potential build issue with the MD5 assembly-language code by removing some non-portable directives.
  • Use the preprocessor with the asm file to ensure that if the code is unneeded, it doesn't get built.
  • Avoid the stack getting set to executable when including the asm code.
  • Some improvements in the SIMD configure testing to try to avoid build issues, such as avoiding a clang++ core dump when ‑g is combined with ‑O2. Note that clang++ is quite buggy in this area, and it does still crash for some folks, so just use ‑‑disable-simd if you need to avoid their buggy compiler (since the configure test is apparently not finding all the compilers that will to crash and burn).
  • Fix an issue in the md2man script when building from an external dir.
  • Disable ‑‑atimes on macOS (it apparently just ignores the atime change).
ENHANCEMENTS:
  • The use of ‑‑backup-dir=STR now implies ‑‑backup.
  • Added ‑‑zl=NUM as a short-hand for ‑‑compress-level=NUM.
  • Added ‑‑early-input=FILE option that allows the client to send some data to a daemon's (optional) "early exec" script on its stdin.
  • Mention atimes in the capabilities list that ‑‑version outputs.
  • Mention either "default protect-args" or "optional protect-args" in the ‑‑version capabilities depending on how rsync was configured.
  • Some info on optimizations is now elided from the ‑‑version capabilities since they aren't really user-facing capabilities. You can still see the info (plus the status of a couple extra optimizations) by repeating the ‑‑version option (e.g. ‑VV).
  • Updated various URLs to be https instead of http.
  • Some documentation improvements.
PACKAGING RELATED:
  • If you had to use ‑‑disable-simd for 3.2.0, you might want to try removing that and see if it will succeed or auto-disable. Some buggy clang++ compilers are still not auto disabled, though.
  • The MD5 asm code is now under its own configure flag (not shared with the SIMD setting), so if you have any issues compiling it, re-run configure with ‑‑disable-asm.
  • Merged the OLDNEWS.md file into NEWS.md.
NEWS for rsync 3.2.0

BUG FIXES:
  • Avoid a potential out-of-bounds read in daemon mode if argc can be made to become 0.
  • Fix the default list of skip-compress files for non-daemon transfers.
  • Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
  • Avoid an error when a check for a potential fuzzy file happens to reference a directory.
  • Make the atomic-rsync helper script have a more consistent error-exit.
  • Make sure that a signal handler's use of exit_cleanup() calls _exit() instead of exit().
  • Various zlib fixes, including security fixes for CVE-2016-9843, CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
  • Fixed an issue with ‑‑remove-source-files not removing a source symlink when combined with ‑‑copy-links.
  • Fixed a bug where the daemon would fail to write early fatal error messages to the client, such as refused or unknown command-line options.
  • Fixed the block-size validation logic when dealing with older protocols.
  • Some rrsync fixes and enhancements to handle the latest options.
  • Fixed a problem with the ‑‑link-dest|‑‑copy-dest code when ‑‑xattrs was specified along with multiple alternate-destination directories (it could possibly choose a bad file match while trying to find a better xattr match).
  • Fixed a couple bugs in the handling of files with the ‑‑sparse option.
  • Fixed a bug in the writing of the batch.sh file (w/‑‑write-batch) when the source & destination args were not last on the command-line.
  • Avoid a hang when an overabundance of messages clogs up all the I/O buffers.
  • Fixed a mismatch in the RSYNC_PID values put into the environment of pre-xfer exec and a post-xfer exec.
  • Fixed a crash in the ‑‑iconv code.
  • Fixed a rare crash in the popt_unalias() code.
ENHANCEMENTS:
  • Various checksum enhancements, including the optional use of openssl's MD4 & MD5 checksum algorithms, some x86-64 optimizations for the rolling checksum, some x86-64 optimizations for the (non-openssl) MD5 checksum, the addition of xxhash checksum support, and a negotiation heuristic that ensures that it is easier to add new checksum algorithms in the future. The environment variable RSYNC_CHECKSUM_LIST can be used to customize the preference order of the negotiation, or use ‑‑checksum-choice (‑‑cc) to force a choice.
  • Various compression enhancements, including the addition of zstd and lz4 compression algorithms and a negotiation heuristic that picks the best compression option supported by both sides. The environment variable RSYNC_COMPRESS_LIST can be used to customize the preference order of the negotiation, or use ‑‑compress-choice (‑‑zc) to force a choice.
  • Added a ‑‑debug=NSTR option that outputs details of the new negotiation strings (for checksums and compression). The first level just outputs the result of each negotiation on the client, level 2 outputs the values of the strings that were sent to and received from the server, and level 3 outputs all those values on the server side too (when the server was given the debug option).
  • The ‑‑debug=OPTS command-line option is no longer auto-forwarded to the remote rsync which allows for the client and server to have different levels of debug specified. This also allows for newer debug options to be specified, such as using ‑‑debug=NSTR to see the negotiated hash result, without having the command fail if the server version is too old to handle that debug item. Use ‑M‑‑debug=OPTS to send the options to the remote side.
  • Added the ‑‑atimes option based on the long-standing patch (just with some fixes that the patch has been needing).
  • Added ‑‑open-noatime option to open files using O_NOATIME.
  • Added the ‑‑write-devices option based on the long-standing patch.
  • Added openssl & preliminary gnutls support to the rsync-ssl script, which is now installed by default. This was unified with the old stunnel-rsync helper script to simplify packaging. Note that the script accepts the use of ‑‑type=gnutls for gnutls testing, but does not look for gnutls-cli on the path yet. The use of ‑‑type=gnutls will not work right until gnutls-cli no longer drops data.
  • Rsync was enhanced to set the RSYNC_PORT environment variable when running a daemon-over-rsh script. Its value is the user-specified port number (set via ‑‑port or an rsync:// URL) or 0 if the user didn't override the port.
  • Added the proxy protocol daemon parameter that allows your rsyncd to know the real remote IP when it is setup behind a proxy.
  • Added negated matching to the daemon's refuse options setting by using match strings that start with a ! (such as !compress*). This lets you refuse all options except for a particular approved list, for example. It also lets rsync refuse certain options by default (such as write-devices) while allowing the config to override that, as desired.
  • Added the early exec daemon parameter that runs a script before the transfer parameters are known, allowing some early setup based on module name.
  • Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
  • Added ‑‑copy-as=USER option to give some extra security to root-run rsync commands into/from untrusted directories (such as backups and restores).
  • When resuming the transfer of a file in the ‑‑partial-dir, rsync will now update that partial file in-place instead of creating yet another tmp file copy. This requires both sender & receiver to be at least v3.2.0.
  • Added support for RSYNC_SHELL & RSYNC_NO_XFER_EXEC environment variables that affect the early, pre-xfer, and post-xfer exec rsync daemon parameters.
  • Optimize the ‑‑fuzzy ‑‑fuzzy heuristic to avoid the fuzzy directory scan until all other basis-file options are exhausted (such as ‑‑link-dest).
  • Have the daemon log include the normal-exit sent/received stats when the transfer exited with an error when possible (i.e. if it is the sender).
  • The daemon now locks its pid file (when configured to use one) so that it will not fail to start when the file exists but no daemon is running.
  • Various man page improvements, including some html representations (that aren't installed by default).
  • Made ‑V the short option for ‑‑version and improved its information.
  • Pass the ‑4 or ‑6 option to the ssh command, making it easier to type than ‑‑rsh='ssh ‑4' (or the ‑6 equivalent).
  • Added example config for rsyncd SSL proxy configs to rsyncd.conf.
  • More errors messages now mention if the error is coming from the sender or the receiver.
PACKAGING RELATED:
  • Add installed binary: /usr/bin/rsync-ssl
  • Add installed man page: /usr/man/man1/rsync-ssl.1
  • Tweak auxiliary doc file names, such as: README.md, INSTALL.md, & NEWS.md.
  • The rsync-ssl script wants to run openssl or stunnel4, so consider adding a dependency for one of those options (though it's probably fine to just let it complain about being unable to find the program and let the user decide if they want to install one or the other).
  • If you packaged rsync + rsync-ssl + rsync-ssl-daemon as separate packages, the rsync-ssl package is now gone (rsync-ssl should be considered to be mainstream now that Samba requires SSL for its rsync daemon).
  • Add build dependency for liblz4-dev, libxxhash-dev, libzstd-dev, and libssl-dev. These development libraries will give rsync extra compression algorithms, extra checksum algorithms, and allow use of openssl's crypto lib for (potentially) faster MD4/MD5 checksums.
  • Add build dependency for g++ or clang++ on x86_64 systems to enable the SIMD checksum optimizations.
  • Add build dependency for either python3-cmarkcfm or python3-commonmark to allow for patching of man pages or building a git release. This is not required for a release-tar build, since it comes with pre-built man pages. Note that cmarkcfm is faster than commonmark, but they generate the same data. The commonmark dependency is easiest to install since it's native python, and can even be installed via pip3 install ‑‑user commonmark if you want to just install it for the build user.
  • Remove yodl build dependency (if it was even listed before).
DEVELOPER RELATED:
  • Silenced some annoying warnings about major() & minor() by improving an autoconf include-file check.
  • Converted the man pages from yodl to markdown. They are now processed via a simple python3 script using the cmarkgfm or commonmark library. This should make it easier to package rsync, since yodl has gotten obscure.
  • Improved some configure checks to work better with strict C99 compilers.
  • Some perl building/packaging scripts were recoded into awk and python3.
  • Some defines in byteorder.h were changed into static inline functions that will help to ensure that the args don't get evaluated multiple times on "careful alignment" hosts.
  • Some code typos were fixed (as pointed out by a Fossies run).
Versienummer 3.2.1
Releasestatus Final
Besturingssystemen Linux, BSD, macOS, Solaris, UNIX
Website rsync
Download https://rsync.samba.org/ftp/rsync/rsync-3.2.1.tar.gz
Licentietype GPL

Door Japke Rosink

Meukposter

23-06-2020 • 15:34

19

Bron: rsync

Update-historie

21-01 rsync 3.4.1 1
14-01 rsync 3.4.0 0
08-'20 rsync 3.2.3 1
06-'20 rsync 3.2.1 19
01-'18 rsync 3.1.3 17
07-'14 rsync 3.1.1 15
06-'11 rsync 3.0.9pre1 2
03-'11 rsync 3.0.8 8
02-'11 rsync 3.0.8pre1 0
01-'10 rsync 3.0.7 4
Meer historie

Reacties (19)

19
19
7
0
0
11
Wijzig sortering
Ik gebruik als Linux Mint gebruiker Timeshift om incrementele backups van mijn systeem te maken, via het rsync protocol. Is dit een fatsoenlijke manier om ook bijvoorbeeld extern incremental backups te maken van en naar (externe) harde schijven, of is dit echt puur bedoeld om je OS te herstellen? Als ik het goed begrijp, heb je daar sowieso ext4 partities voor nodig, die je niet kan lezen op een Windows PC.

Ik heb namelijk op wat (externe) harde schijven data staan die ik graag wil bewaren op de lange termijn, en dan is incrementeel backups maken natuurlijk fijner dan steeds een volle backup maken. Met de terminal ben ik nog niet zo handig, daarom dat ik timeshift zo fijn vind met rsync. Een mooie GUI om al je snapshots te managen. Tot nog toe heb ik het echter niet geprobeerd met externe schijven.

[Reactie gewijzigd door Verwijderd op 23 juli 2024 13:12]

rsync will be rsync, de keuze hoe is aan jou \o/
De Mint implementatie is wel netjes inclusief restore opties, maar kent (nog) wat jammerlijke limieten.

Via de terminal kun je er makkelijk systeem variabelen bij betrekken door het in een Bash script te gooien en het zodoende éénmalig te hoeven uit zoeken.
Maar wel universeel voor je systemen met enkel globale aanpassingen die je bijvoorbeeld d.m.v scp naar alle systemen kunt pushen.

Je kunt grsync bekijken, een vrij basis grafische schil die wat dichter staat bij rsync commando's, in wezen bak je daar een rync taak met vinkjes in een GUI en het laat zich eenvoudig SMB locaties aanmeten(gewoon bladeren en klaar).

Als je met gpg encryptie wilt wegschrijven(naar locaties met meerdere toeschouwers) kun je ook kijken naar Duplicity(terminal) wat ook gewoon in de Software Manager staat(deze maakt o.a gebruik van rsync i.c.m een Python laagje)

[Reactie gewijzigd door CHBN op 23 juli 2024 13:12]

Verwijderd @CHBN23 juni 2020 17:35
@CHBN @GeroldM

Hartelijk bedankt voor jullie hulpvolle reacties! Ik zal vanavond eens goed alle opties doorspitten _/-\o_
Als je maar backups maakt, dan maakt de tool niet zoveel uit.
Elke week even rondklikken in je backup tooling (wel doen he) of even een cronjobje maken.

En ja, rsync is er de tool voor... Of tar. Voor het incrementele spul zou ik tar gebruiken, met die differential opties die ik altijd moet opzoeken. (`--listed-incremental=` dus)
wel doen he
Als ik eens terug in de tijd kon 8)7
Enkele weken geleden per ongeluk een hele schijf geformatteerd (met persoonlijke data zónder extra backup), sindsdien neem ik backups een stuk meer serieus

Ik zal Tar ook eens onderzoeken

[Reactie gewijzigd door Verwijderd op 23 juli 2024 13:12]

Heb je de herstel mogelijkheden wel geprobeerd?
Formatteren is niet zo heel erg, als er maar niks geschreven wordt.
Verwijderd @SCS223 juni 2020 20:03
Ik heb een sector by sector copy gemaakt (met het dd command op linux ) op een tweede, grotere schijf, en daar meerdere scans op losgelaten met GetDataBack. Vooralsnog heb ik een deel terug kunnen krijgen, maar het grootste deel was niet gevonden of corrupt. Ik heb de harde schijf nog in onaangetaste vorm sinds de format, dus in de toekomst zal ik het nogmaals proberen.

Heb jij wellicht nog andere tips/tools die ik kan proberen?
Vroeger was er een programma voor op floppy, easy recovery heette dat, werkte 15 jaar geleden prima
Ik ben echt geen kenner, alleen met schade en schande wat geleerd.

Een sector-copy is een mooi begin, maar dat is vooral bij beschadigingen,
Als ik het goed heb, is bij een Format alleen de locatie tabel gewist.
En zijn alle files nog onaangetast aanwezig.

Ik meen dat ik met TestDisk de reserve File Table, MFT? heb terug gezet.
Als dat niet ging, kon die ook een poging doen een nieuwe op te bouwen.

TestDisk
http://www.cgsecurity.org/wiki/TestDisk_Download
Vaak ook te vinden in vele boot util cd/dvd/usb tools

Daar hoort ook PhotoRec bij, die ook de sectoren lees op nuttige mogelijke files.

Vraag eens na in de forums hier, die weten er meer van.
Naast het serieus nemen van backup's, is het regelmatig testen of die data ook terug te halen is nog veel belangrijker. Anders heb je er nog niets aan.

(Denken aan) het testen van restoren is hoogst waarschijnlijk nog lastiger dan het (denken aan) maken van een backup.

Dan zijn er voor bedrijven nog wat dingen als hoe snel je de gegevens weer terug wilt hebben en tot hoe lang je terug wilt kunnen in de tijd.
bareos

Een backup suite geschikt voor zowel persoonlijk als bedrijfsmatig gebruik en beschikbaar voor zowel Windows, Mac, BSD en Linux. Vervelend om in te regelen, maar daarna is het erg stabiel. En je kan er heel veel verschillende vormen van backups mee maken, via meerdere schemas en de bestandsystemen van verschillende besturingssystemen doen er niet zoveel meer toe.

Met een web-interface is het ook makkelijk in te zien waar en wanneer backups zijn gemaakt, wat er in de backups zit etc. Hard disks, cloud, tape drives, brandbare DVDs, whatever medium je wil gebruiken voor opslag is gewoon mogelijk.
Ik gebruik backuppc zakelijk in een jail op freenas, zo kan ik ook nog 24 uur snapshotten met zfs en vervolgens repliceer ik de data naar een andere freenas voor een offsite copy.
Op cygwin kan je prima ook rsync gebruiken op vFAT of NTFS. Voor zover ik weet moet dit ook prima werken onder linux als je een vFAT of NTFS partitie mount.
Timeshift kan je ook gewoon via de commandline gebruiken, hoeft niet perse via de GUI. Timeshift is niet bedoeld voor back-ups van gebruikers data, het is meer om te kunnen restoren naar een bepaald punt in tijd om weer een werkend systeem te krijgen wanneer je systeem stuk gaat of zo. Staat ook in de documentatie: "Timeshift is designed to protect system files and settings. It is NOT a backup tool and is not meant to protect user data. Entire contents of users' home directories are excluded by default"

Voor het het maken van back-ups voor gebruikers data bestanden en andere bestanden gebruik ik liever borgbackup. Het is deduplicating back-up software die ook encryptie en compressie ondersteund.

Maar verder is rsync handige software om data heen en weer te kopiëren van een source naar een destination of je dit nou handmatig doet of dat je het gebruikt door het onderdeel te maken van een script.

[Reactie gewijzigd door Hydranet op 23 juli 2024 13:12]

Ah dat is duidelijk. Ik had dat niet in de documentatie gelezen. Bedankt voor de heads-up!
Borg ziet eruit als precies het programma dat ik nodig heb.
Ik gebruik Back In Time voor backups naar een externe schijf. Deze heb ik van te voren met LUKS geencrypt. Back in Time staat in de Ubuntu software manager, dus moet ook voor Mint te verkrijgen zijn. Back In Time is vergelijkbaar met Timeshift, maar dan voor data.
Met de rsync uit de cygwin set maak ik al jaren zo af en toe een backup naar een (qnap) nas waar een rsync deamon draait. Daar gaat de backup iedere keer naar een nieuwe directory waar de hele backup in komt.

Omdat de nas op unix/linux gebaseerd is kan daar gebruik gemaakt worden van hardlinks. De rsync optie --link-dest verwijst naar de vorige backup: alle bestanden die niet gewijzigd zijn worden ge-hardlinkt. Alleen de nieuwe bestanden gaan over de lijn en gebruiken extra dataruimte.

Voor een rsync tussen een msWindows machine en een unix/linux systeem wil je de optie --modify-window=3602 gebruiken: 3600 seconden is 1 uur: het verschil tussen zomertijd en wintertijd. En 2 extra omdat er microsoft filesystemen bestaan met een tijd-resolutie van 2 seconden.
Hier een eenvoudige overzicht van alle package versies, per distributie:
https://pkgs.org/download/rsync
Wat blijft rsync toch een fantastische tool! Hoe veel ik deze tool al wel niet heb gebruikt in mijn leven als Linux beheerder. Ik zou niet zonder kunnen.

Op dit item kan niet meer gereageerd worden.