{"id":192,"date":"2023-01-05T14:42:48","date_gmt":"2023-01-05T14:42:48","guid":{"rendered":"http:\/\/www.skynext.tech\/?p=192"},"modified":"2023-01-13T11:19:38","modified_gmt":"2023-01-13T11:19:38","slug":"linux-to-windows-backup-using-cygwin-and-rsync","status":"publish","type":"post","link":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/","title":{"rendered":"Linux to Windows backup using Cygwin and Rsync"},"content":{"rendered":"\n<p>This procedure may be helpful for backups of Linux VMs on the cloud. Some (most) service providers make it notoriously difficult to export VM images or snapshots out of the cloud.<\/p>\n\n\n\n<p>While it is still possible to perform an image backup using Clonezilla, again, not all service providers allow boot on an ISO for a given VM. In these cases, a helper volume should be added to the VM and have Clonezilla installed on it, and selected as the boot device. The original boot volume would then be backed-up to an image locally on the helper volume and exported out of the cloud after the process completes. Although that is the theory, I have not tested this specific process myself. Keep in mind that some providers VM instances only support one volume attached. Also, this process is a one-shot operation, and is hardly automated, and creates downtime.<\/p>\n\n\n\n<p>There are other block level device time consistent backup strategies you can try though if you use LVM and have space on the LVM group, it is possible to  snapshot your volume, mount the snapshot, and have rsync transfer it over the network. Keep in mind that if the rsync process is initiated on the backup system rather than on the backed-up system, you&#8217;ll better have to use ssh or other remote command tools to perform snapshot creation and mount and then rsync, have a way to check for errors returned by these commands and then only initate rsync on the backup system. Then perform a post-backup remote execution to unmount the snapshot and destroy the snapshot. This whole process is a bit similar to the Windows VSS snapshot operation.<\/p>\n\n\n\n<p>For more information about this process, check :<\/p>\n\n\n\n<p><a href=\"https:\/\/devconnected.com\/lvm-snapshots-backup-and-restore-on-linux\/#:~:text=The%20easiest%20way%20to%20backup,to%20specify%20a%20destination%20file.&amp;text=When%20running%20this%20command%2C%20a,in%20your%20current%20working%20directory.\">LVM snapshot Backup and restore on linux<\/a><\/p>\n\n\n\n<p class=\"has-text-align-left\">If you don&#8217;t use LVM then you&#8217;ll have to resort to backups that are not time consistent (not frozen in time), but it is better than nothing. That is the object of this tutorial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up cygwin on Windows.<\/h3>\n\n\n\n<p>Download cygsetup and perform a full or a minimal install. For a minimal install, you&#8217;ll need SSH and Rsync as well as it&#8217;s dependencies.<\/p>\n\n\n\n<p>Now you&#8217;ll have to choose between using rsync through a SSH encrypted channel, or through a rsync daemon running on the remote host to be backed up.<\/p>\n\n\n\n<p>Using rsync through SSH for a full system backup requires a root login through SSH, and automating rsync with SSH will require a way to supply credentials automatically, unless using a public\/private key non interactive (passphrase less) authentication scheme.<\/p>\n\n\n\n<p>In the case of SSH plain password authentication, supplying it to rsync can be done through sshpass, which exists as a Cygwin package, but I have not tested it myself in conjunction with rsync<\/p>\n\n\n\n<p><a href=\"http:\/\/www.cygwin.com\/packages\/summary\/sshpass.html\">http:\/\/www.cygwin.com\/packages\/summary\/sshpass.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/3299951\/how-to-pass-password-automatically-for-rsync-ssh-command\">https:\/\/stackoverflow.com\/questions\/3299951\/how-to-pass-password-automatically-for-rsync-ssh-command<\/a><\/p>\n\n\n\n<p>However, allowing SSH password root authentication plus storing its password as cleartext in a file for sshpass to use it is a huge security risk.<\/p>\n\n\n\n<p>At least, with a passphrase less public\/private key pair, the problem amounts to securing the private key well on the filesystem. It will still be acessible (read only) in the user account context that runs the rsync\/ssh script on Windows.<\/p>\n\n\n\n<p>For all these reasons, I find it preferable to use the rsync daemon on the remote system. Which allows to use a backup account instead of root.<\/p>\n\n\n\n<p>The downsides however are that you need to open the rsync TCP port on the remote system and configure your firewalls in the connection path accordingly; and also rsync daemon does not encrypt traffic. If it is an issue, then use a VPN or an IpSec tunnel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up the rsync daemon on linux Debian<\/h3>\n\n\n\n<p><code>apt-get install rsync<\/code><\/p>\n\n\n\n<p>Edit the rsync daemon configuration file.<\/p>\n\n\n\n<p><code>vi \/etc\/rsyncd.conf<\/code><\/p>\n\n\n\n<p>Here is a sample of the rsyncd.conf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>uid=root\ngid=root\n\n&#91;share_system_backup]\n\tpath = \/\n\tcomment = system root\n\tread only = true\n\tauth users = backup\n\tsecrets file = \/etc\/rsyncd.secrets\n\thosts allow = &lt;ip_of_backup_system&gt;<\/code><\/pre>\n\n\n\n<p>As per the rsync manpage, rsyncd runs as root, and uid and gid parameters, which can be global to all rsync shares or share specific, specify the impersonated context of the rsync access to the filesystem.<\/p>\n\n\n\n<p>Since we&#8217;ll perform a system wide backup, we&#8217;ll use root.<\/p>\n\n\n\n<p>auth users specify the rsync users authorized to access the share. These users are rsync specific, not system users.<\/p>\n\n\n\n<p>read only is used since no writes will be performed on the backed up system, unless you want rsync to upload some state file on the remote system after backup, as we won&#8217;t be using SSH, that is a trick way to signal something to the backed up system, without any remote execution.<\/p>\n\n\n\n<p>hosts_allow is useful for a cloud VM that does not have firewalling options provided by the service provider.<\/p>\n\n\n\n<p>The user login password pair is specified in \/etc\/rsyncd.secrets.<\/p>\n\n\n\n<p><code>vi \/etc\/rsyncd.secrets<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>backup:346qsfsgSAzet<\/code><\/pre>\n\n\n\n<p>Use a strong password.<\/p>\n\n\n\n<p>Next start the rsync daemon, check it runs and check its socket is listening on TCP port 873.<\/p>\n\n\n\n<p><code>rsync --daemon<\/code><\/p>\n\n\n\n<p><code>ps-auwx | grep rsync &amp;&amp; netstat -nlp | grep rsync <\/code><\/p>\n\n\n\n<p>Then we&#8217;ll make rsync launch at system boot.<\/p>\n\n\n\n<p><code>vi \/etc\/default\/rsync<\/code><\/p>\n\n\n\n<p>Change RSYNC_ENABLE to true to start the daemon at system startup through init.d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rsync configuration on Windows<\/h3>\n\n\n\n<p>We&#8217;ll start by setting up the windows batch files that will prepare the cygwin environment and run rsync. Change &lt;IP&gt; with your remote system to be backed up IP or DNS name. This script assumes standard port 873<\/p>\n\n\n\n<p>The default file is named CWRSYNC.CMD and should reside at the root of the cygwin64 base folder.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@ECHO OFF\nREM *****************************************************************\nREM\nREM CWRSYNC.CMD - Batch file template to start your rsync command (s).\nREM\nREM *****************************************************************\n\nREM Make environment variable changes local to this batch file\nSETLOCAL\n\nREM Specify where to find rsync and related files\nREM Default value is the directory of this batch file\nSET CWRSYNCHOME=%~dp0\n\nREM Create a home directory for .ssh \nIF NOT EXIST %CWRSYNCHOME%\\home\\%USERNAME%\\.ssh MKDIR %CWRSYNCHOME%\\home\\%USERNAME%\\.ssh\n\nREM Make cwRsync home as a part of system PATH to find required DLLs\nSET CWOLDPATH=%PATH%\nSET PATH=%CWRSYNCHOME%\\bin;%PATH%\n\nREM Windows paths may contain a colon (:) as a part of drive designation and \nREM backslashes (example c:\\, g:\\). However, in rsync syntax, a colon in a \nREM path means searching for a remote host. Solution: use absolute path 'a la unix', \nREM replace backslashes (\\) with slashes (\/) and put -\/cygdrive\/- in front of the \nREM drive letter:\nREM \nREM Example : C:\\WORK\\* --&gt; \/cygdrive\/c\/work\/*\nREM \nREM Example 1 - rsync recursively to a unix server with an openssh server :\nREM\nREM       rsync -r \/cygdrive\/c\/work\/ remotehost:\/home\/user\/work\/\nREM\nREM Example 2 - Local rsync recursively \nREM\nREM       rsync -r \/cygdrive\/c\/work\/ \/cygdrive\/d\/work\/doc\/\nREM\nREM Example 3 - rsync to an rsync server recursively :\nREM    (Double colons?? YES!!)\nREM\nREM       rsync -r \/cygdrive\/c\/doc\/ remotehost::module\/doc\nREM\nREM Rsync is a very powerful tool. Please look at documentation for other options. \nREM\n\nREM ** CUSTOMIZE ** Enter your rsync command(s) here\n\necho \"start\" &gt;&gt; c:\\scripts\\rsync_sys.log\ndate \/t &gt;&gt; c:\\scripts\\rsync_sys.log\ntime \/t &gt;&gt; c:\\scripts\\rsync_sys.log\n\nrsync --no-perms --itemize-changes --password-file=rsync_p -lrvcD --exclude={\"\/dev\/*\",\"\/proc\/*\",\"\/sys\/*\",\"\/tmp\/*\",\"\/run\/*\",\"\/mnt\/*\",\"\/media\/*\",\"\/lost+found\",\"\/root\/*\"} backup@&lt;IP&gt;::share_system_backup\/ \/cygdrive\/d\/BACKUPS_FROM_CLOUD\/SYSTEM &gt;&gt; c:\\scripts\\rsync_sys.log\n\ndate \/t &gt;&gt; c:\\scripts\\rsync_sys.log\ntime \/t &gt;&gt; c:\\scripts\\rsync_sys.log\necho \"stop\" &gt;&gt; c:\\scripts\\rsync_sys.log<\/code><\/pre>\n\n\n\n<p>You&#8217;ll need to add a file named rsync_p in my example that contains the password specified for the backup user, matching the password defined on the rsync daemon host. This allows non interactive execution of rsync.<\/p>\n\n\n\n<p>Place this file at the cygwin64 base folder level.<\/p>\n\n\n\n<p>Secure that file well at the NTFS level.<\/p>\n\n\n\n<p>itemize-changes will log in the rsync_sys.log the file operations performed on the system. It is useful for troubleshooting.<\/p>\n\n\n\n<p><a href=\"http:\/\/www.staroceans.org\/e-book\/understanding-the-output-of-rsync-itemize-changes.html\">http:\/\/www.staroceans.org\/e-book\/understanding-the-output-of-rsync-itemize-changes.html<\/a><\/p>\n\n\n\n<p>The -lrvc flags tells rsync to copy symbolic link information (absolute and relative). You can test that is the case by using ls -ltra through a cygwin shell, recurse directories, be verbose, and check for changes based on checksum instead of file timestamps, which could be useful if there are timestamp discrepancies because of the cygwin environment. It is worth testing it&#8217;s effect with a test run.<\/p>\n\n\n\n<p>Also, I excluded the standard list of directories recommended to be excluded from a system backup for Debian systems using the &#8211;exclude option.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ ACL issues<\/h3>\n\n\n\n<p>Note that I use &#8211;no-perms for rsync. That is one caveat with rsync running on cygwin, since it uses POSIX to Windows ACL translation, copying perms COULD render the files unreadable by other processes on the Windows system if permissions from the source system are preserved, On the other hand, preserving source permissions could make baremetal recovery possible. It is worth experimenting with this option.<\/p>\n\n\n\n<p>A way to circumvent this problem when using &#8211;no-perms is to back up permissions separately on the linux system using getfacl and setfacl for restore operations. keep in mind that getfacl ouput is substantial in terms of size and getfacl does not support directory exclusions. It may involve a bit of scripting.<\/p>\n\n\n\n<p>Example of getfacl script (backupacl.sh)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/home\/backup\ngetfacl -RL \/bin &gt; filesystem_acls_bin.dat\ngetfacl -RL \/boot &gt; filesystem_acls_boot.dat\ngetfacl -RL \/etc &gt; filesystem_acls_etc.dat\ngetfacl -RL \/home &gt; filesystem_acls_home.dat\ngetfacl -RL \/lib &gt; filesystem_acls_lib.dat\ngetfacl -RL \/lib64 &gt; filesystem_acls_lib64.dat\ngetfacl -RL \/media &gt; filesystem_acls_media.dat\ngetfacl -RL \/mnt &gt; filesystem_acls_mnt.dat\ngetfacl -RL \/opt &gt; filesystem_acls_opt.dat\ngetfacl -L \/root &gt; filesystem_acls_root.dat\ngetfacl -RL \/sbin &gt; filesystem_acls_sbin.dat\ngetfacl -RL \/snap &gt; filesystem_acls_snap.dat\ngetfacl -RL \/srv &gt; filesystem_acls_srv.dat\ngetfacl -RL \/tmp &gt; filesystem_acls_tmp.dat\ngetfacl -RL \/usr &gt; filesystem_acls_usr.dat\ngetfacl -RL \/var &gt; filesystem_acls_var.dat\n\ntar -czvf backup_acls.tar.gz filesystem_acls_*\nrm -f filesystem_acls_*\n<\/code><\/pre>\n\n\n\n<p>You can use xargs and a $ placeholder plus a list of folders to backup permissions from to make this script a one-liner.<\/p>\n\n\n\n<p>the backup_acls.tar.gz will be backed up by rsync when it runs.<\/p>\n\n\n\n<p>In this example, ACL backups and the backup script are stored in \/home\/backup. As said before, backup is not necessarily a linux user since rsync maintains its own authentication database, but I use this directory for convenience.<\/p>\n\n\n\n<p>In this script backup of \/root ACLs is not recursive as a dirty way to remove the .wine directory that contains symbolic links to the whole file system, and thus would make getfacl to follow them and spend a huge useless time (and filespace) for directories such as \/dev, \/proc \/sys. So it&#8217;s possible for you to add the recurse flag if this problem does not affect your system.<\/p>\n\n\n\n<p>Run the batch for tests and schedule it by adding it to \/etc\/cron.daily\/ for instance. It should run in the root context.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A note about restores and symbolic links<\/h3>\n\n\n\n<p>the rsync -l options copies symbolic links, which means thar you have to use rsync too for restore operations, Don&#8217;t expect symbolic links to magically reappear if you use WinSCP or another tool to restore a folder.<\/p>\n\n\n\n<p>More on this subject :<\/p>\n\n\n\n<p><a href=\"https:\/\/www.baeldung.com\/linux\/rsync-copy-symlinks\">https:\/\/www.baeldung.com\/linux\/rsync-copy-symlinks<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testing the backup.<\/h3>\n\n\n\n<p>Edit the cwrsync.cmd to add the dry-run option, run the cwrsync.cmd through a cmd shell and examine the rsync_sys.log file, If everything seems OK, then you can remove the dry-run option, and run it again. The first run will take a long time, use the start and stop markers in the logfile to check how long it takes once finished. rsync will tell you the speedup due to the delta algorithm, it should increase on subsequent runs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scheduling the backup.<\/h3>\n\n\n\n<p>Use Windows task scheduler to run the cwrsync.cmd script. In my case, I use a privileged account. It is advised to test with the least amount of privileges for cygwin to be happy and for filesystem operations to succeed.<\/p>\n\n\n\n<p>It is advised the turn on scheduled tasks history. And very important, make sure that the &#8220;start in&#8221; directory for the cwrsync.cmd action is set to the base cygwin64 folder.<\/p>\n\n\n\n<p>Test the backup run using a &#8220;run once&#8221; trigger at t+1 minute in addition to the recurrent trigger.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A final note.<\/h3>\n\n\n\n<p>This backup strategy will ensure that you have an updated state of your remote system on the Windows system. It is similar to an incremental backup that patches the destination directory. It does not store any history of files besides the last backup operation.<\/p>\n\n\n\n<p>I don&#8217;t use the &#8211;delete option that propagates deletions of files and folders from the source to the destination, has it can be very impactful for a disaster recovery use where there is no file versioning history. Note however, that this will bloat the backed up structure on the destination and make recovery efforts more complicated in the long term.<\/p>\n\n\n\n<p><strong>The best option for a backup if you use LVM, albeit using more space on the destination is to use cygwin + rsync to backup a tar gz file of a LVM snapshot directory structure instead of the directory tree of &#8220;\/&#8221;<\/strong>. If you go this way though, it is advised, as already stated above, to perform the snapshot operations synchronously from the backup system through the cwrsync.cmd using SSH, before the rsync operations. That probably means using a passphrase less public\/private key pair for ssh to run these commands interactively. Don&#8217;t forget to unmount and remove the snapshot after rsync is done.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This procedure may be helpful for backups of Linux VMs on the cloud. Some (most) service providers make it notoriously difficult to export VM images or snapshots out of the cloud. While it is still possible to perform an image backup using Clonezilla, again, not all service providers allow boot on an ISO for a<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\" class=\"home-blog-btn\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","pmpro_default_level":"","footnotes":""},"categories":[16],"tags":[],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-information-technology","pmpro-has-access"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.<\/title>\n<meta name=\"description\" content=\"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.\" \/>\n<meta property=\"og:description\" content=\"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\" \/>\n<meta property=\"og:site_name\" content=\"SKYNEXT Tech.\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-05T14:42:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T11:19:38+00:00\" \/>\n<meta name=\"author\" content=\"R.Verissimo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R.Verissimo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\"},\"author\":{\"name\":\"R.Verissimo\",\"@id\":\"https:\/\/www.skynext.tech\/#\/schema\/person\/6b71040d3e4353a85583550901159cd8\"},\"headline\":\"Linux to Windows backup using Cygwin and Rsync\",\"datePublished\":\"2023-01-05T14:42:48+00:00\",\"dateModified\":\"2023-01-13T11:19:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\"},\"wordCount\":1796,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.skynext.tech\/#organization\"},\"articleSection\":[\"Information Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\",\"url\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\",\"name\":\"Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.\",\"isPartOf\":{\"@id\":\"https:\/\/www.skynext.tech\/#website\"},\"datePublished\":\"2023-01-05T14:42:48+00:00\",\"dateModified\":\"2023-01-13T11:19:38+00:00\",\"description\":\"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.skynext.tech\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux to Windows backup using Cygwin and Rsync\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.skynext.tech\/#website\",\"url\":\"https:\/\/www.skynext.tech\/\",\"name\":\"SKYNEXT Tech.\",\"description\":\"Power Electronics &amp; Reverse Engineering\",\"publisher\":{\"@id\":\"https:\/\/www.skynext.tech\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.skynext.tech\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.skynext.tech\/#organization\",\"name\":\"SKYNEXT Tech.\",\"alternateName\":\"DELIVERYSIMO EIRL\",\"url\":\"https:\/\/www.skynext.tech\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.skynext.tech\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.skynext.tech\/wp-content\/uploads\/2019\/09\/cropped-SKYNEXT_logo_square-2.png\",\"contentUrl\":\"https:\/\/www.skynext.tech\/wp-content\/uploads\/2019\/09\/cropped-SKYNEXT_logo_square-2.png\",\"width\":210,\"height\":210,\"caption\":\"SKYNEXT Tech.\"},\"image\":{\"@id\":\"https:\/\/www.skynext.tech\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.skynext.tech\/#\/schema\/person\/6b71040d3e4353a85583550901159cd8\",\"name\":\"R.Verissimo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.skynext.tech\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0bf345444b71baae1301e50a1a8cbeb98a5b7f41b85ffe9e1e6c2640ef23b528?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0bf345444b71baae1301e50a1a8cbeb98a5b7f41b85ffe9e1e6c2640ef23b528?s=96&d=mm&r=g\",\"caption\":\"R.Verissimo\"},\"url\":\"https:\/\/www.skynext.tech\/index.php\/author\/wpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.","description":"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/","og_locale":"en_US","og_type":"article","og_title":"Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.","og_description":"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.","og_url":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/","og_site_name":"SKYNEXT Tech.","article_published_time":"2023-01-05T14:42:48+00:00","article_modified_time":"2023-01-13T11:19:38+00:00","author":"R.Verissimo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"R.Verissimo","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#article","isPartOf":{"@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/"},"author":{"name":"R.Verissimo","@id":"https:\/\/www.skynext.tech\/#\/schema\/person\/6b71040d3e4353a85583550901159cd8"},"headline":"Linux to Windows backup using Cygwin and Rsync","datePublished":"2023-01-05T14:42:48+00:00","dateModified":"2023-01-13T11:19:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/"},"wordCount":1796,"commentCount":0,"publisher":{"@id":"https:\/\/www.skynext.tech\/#organization"},"articleSection":["Information Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/","url":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/","name":"Linux to Windows backup using Cygwin and Rsync - SKYNEXT Tech.","isPartOf":{"@id":"https:\/\/www.skynext.tech\/#website"},"datePublished":"2023-01-05T14:42:48+00:00","dateModified":"2023-01-13T11:19:38+00:00","description":"Shows how to backup Linux instances in the cloud to Windows using Rsync and Cygwin, and the various caveats with this method.","breadcrumb":{"@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.skynext.tech\/index.php\/2023\/01\/05\/linux-to-windows-backup-using-cygwin-and-rsync\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.skynext.tech\/"},{"@type":"ListItem","position":2,"name":"Linux to Windows backup using Cygwin and Rsync"}]},{"@type":"WebSite","@id":"https:\/\/www.skynext.tech\/#website","url":"https:\/\/www.skynext.tech\/","name":"SKYNEXT Tech.","description":"Power Electronics &amp; Reverse Engineering","publisher":{"@id":"https:\/\/www.skynext.tech\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.skynext.tech\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.skynext.tech\/#organization","name":"SKYNEXT Tech.","alternateName":"DELIVERYSIMO EIRL","url":"https:\/\/www.skynext.tech\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.skynext.tech\/#\/schema\/logo\/image\/","url":"https:\/\/www.skynext.tech\/wp-content\/uploads\/2019\/09\/cropped-SKYNEXT_logo_square-2.png","contentUrl":"https:\/\/www.skynext.tech\/wp-content\/uploads\/2019\/09\/cropped-SKYNEXT_logo_square-2.png","width":210,"height":210,"caption":"SKYNEXT Tech."},"image":{"@id":"https:\/\/www.skynext.tech\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.skynext.tech\/#\/schema\/person\/6b71040d3e4353a85583550901159cd8","name":"R.Verissimo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.skynext.tech\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0bf345444b71baae1301e50a1a8cbeb98a5b7f41b85ffe9e1e6c2640ef23b528?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0bf345444b71baae1301e50a1a8cbeb98a5b7f41b85ffe9e1e6c2640ef23b528?s=96&d=mm&r=g","caption":"R.Verissimo"},"url":"https:\/\/www.skynext.tech\/index.php\/author\/wpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/comments?post=192"}],"version-history":[{"count":7,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/posts\/192\/revisions"}],"predecessor-version":[{"id":316,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/posts\/192\/revisions\/316"}],"wp:attachment":[{"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/media?parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/categories?post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skynext.tech\/index.php\/wp-json\/wp\/v2\/tags?post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}