# rsync

Published articles for rsync.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Libreboot 2025 Release Schedule Revised

DevFeed: [Libreboot 2025 Release Schedule Revised](<https://devfeed.tech/articles/new-libreboot-2025-release-schedule-32730.md>)

Original publisher: [Read original article](<https://libreboot.org/news/revisions.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: release

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Git](<https://devfeed.tech/topics/git.md>), [rsync](<https://devfeed.tech/topics/rsync.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [bios](<https://devfeed.tech/tags/bios.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [git](<https://devfeed.tech/tags/git.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [release](<https://devfeed.tech/tags/release.md>), [release-schedule](<https://devfeed.tech/tags/release-schedule.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

Libreboot revises its 2025 release schedule: stable releases are planned for June and December, while releases between them may be revisions to the current stable release or release candidates for the next stable release. Release candidates will be removed when superseded.

### Source excerpt

Article: NEW Libreboot 2025 release schedule Web link: https://libreboot.org/news/revisions.html

## ThinkPad X201 support removed from Libreboot

DevFeed: [ThinkPad X201 support removed from Libreboot](<https://devfeed.tech/articles/thinkpad-x201-support-removed-from-libreboot-32740.md>)

Original publisher: [Read original article](<https://libreboot.org/news/x201.html>)

Author: Leah Rowe

Published: 2026-09-17T04:32:50.666044Z

Content type: news

Language: en

Sources: [News about Libreboot releases and development](<https://devfeed.tech/sources/news-about-libreboot-releases-and-development.md>)

Topics: [libreboot](<https://devfeed.tech/topics/libreboot.md>), [coreboot](<https://devfeed.tech/topics/coreboot.md>), [rsync](<https://devfeed.tech/topics/rsync.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [bios](<https://devfeed.tech/tags/bios.md>), [canoeboot](<https://devfeed.tech/tags/canoeboot.md>), [coreboot](<https://devfeed.tech/tags/coreboot.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [issue](<https://devfeed.tech/tags/issue.md>), [libre](<https://devfeed.tech/tags/libre.md>), [libreboot](<https://devfeed.tech/tags/libreboot.md>), [news](<https://devfeed.tech/tags/news.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [safety](<https://devfeed.tech/tags/safety.md>), [thinkpad](<https://devfeed.tech/tags/thinkpad.md>), [uefi](<https://devfeed.tech/tags/uefi.md>)

### AI overview

Libreboot removed support for the ThinkPad X201 and other older Arrandale machines after discovering that fan controls fail when using a neutered Intel ME image. Coreboot remains possible with the full Intel ME image, but Libreboot will not support these platforms unless further testing resolves the issue.

### Source excerpt

Article: ThinkPad X201 support removed from Libreboot Web link: https://libreboot.org/news/x201.html

## Using tar and SSH as an alternative to rsync for transferring files

DevFeed: [Using tar and SSH as an alternative to rsync for transferring files](<https://devfeed.tech/articles/tar-a-slop-free-alternative-to-rsync-20818.md>)

Original publisher: [Read original article](<https://drewdevault.com/blog/rsync-without-rsync/>)

Author: March

Published: 2026-03-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Drew DeVault](<https://devfeed.tech/sources/drew-devault.md>)

Topics: [rsync](<https://devfeed.tech/topics/rsync.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Compression](<https://devfeed.tech/topics/compression.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [compression](<https://devfeed.tech/tags/compression.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

The article explains how to use tar piped through SSH to transfer files to another host, preserving ownership and permissions while using gzip compression. It notes that tar does not identify and skip files that are already up to date, unlike rsync, and presents basic tar options and an optional progress display with pv.

### Source excerpt

So apparently rsync is slop now. When I heard, I wanted to drop a quick note on my blog to give an alternative: tar. It doesn't do everything that rsync does, in particular identifying and skipping up-to-date files, but tar + ssh can definitely accomodate the use case of "transmit all of these files over an SSH connection to another host". Consider the following: tar -cz public | ssh example.org tar -C /var/www -xz This will transfer the contents of ./public/ to example.org:/var/www/public/, preserving file ownership and permissions and so on, with gzip compression. This is roughly the equivalent of: rsync -a public example.org:/var/www/ Here's the same thing with a lightweight progress display thanks to pv: tar -cz public | pv | ssh example.org tar -C /var/www -xz I know tar is infamously difficult to remember how to use. Honestly, I kind of feel that way about rsync, too. But, here's a refresher on the most important options for this use-case. To use tar, pick one of the following modes with the command line flags: -c: create an archive -x: extract an archive Use -f <filename> to read from or write to a file. Without this option, tar uses stdin and stdout, which is what the pipelines above rely on. Use -C <path> to change directories before archiving or extracting files. Use -z to compress or decompress the tarball with gzip. That's basically everything you need to know about tar to use it for this purpose (and for most purposes, really). With rsync, to control where the files end up you have to memorize some rules about things like whether or not each path has a trailing slash. With tar, the rules are, in my opinion, a bit easier to reason about. The paths which appear on the command line of tar -c are the paths that tar -x will open to create those files. So if you run this: tar -c public/index.html public/index.css You get a tarball which has public/index.html and public/index.css in it. When tar -x opens this tarball, it will call fopen("public/index.html", "w

## Comandos esenciales de LVM: guía rápida

DevFeed: [Comandos esenciales de LVM: guía rápida](<https://devfeed.tech/articles/comandos-esenciales-de-lvm-guia-rapida-34050.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/comandos-esenciales-lvm-guia-rapida/>)

Author: Antonio Pérez

Published: 2026-02-20T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [LVM](<https://devfeed.tech/topics/lvm.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [backups](<https://devfeed.tech/topics/backups.md>), [Mdadm](<https://devfeed.tech/topics/mdadm.md>), [RAID](<https://devfeed.tech/topics/raid.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>)

Tags: [backups](<https://devfeed.tech/tags/backups.md>), [homelab](<https://devfeed.tech/tags/homelab.md>), [libre](<https://devfeed.tech/tags/libre.md>), [linux](<https://devfeed.tech/tags/linux.md>), [lvm](<https://devfeed.tech/tags/lvm.md>), [mdadm](<https://devfeed.tech/tags/mdadm.md>), [raid](<https://devfeed.tech/tags/raid.md>), [rsync](<https://devfeed.tech/tags/rsync.md>)

### AI overview

A Spanish-language cheat sheet covering essential LVM commands for managing physical volumes, volume groups, and logical volumes on Linux. It explains common workflows such as extending volumes and filesystems, creating and reducing volumes, migrating data, and creating snapshots for backups.

### Source excerpt

Cheatsheet con los comandos más usados de LVM (Logical Volume Manager) para la gestión de volúmenes lógicos en Linux.

## Vagrant: entornos de desarrollo reproducibles

DevFeed: [Vagrant: entornos de desarrollo reproducibles](<https://devfeed.tech/articles/vagrant-entornos-de-desarrollo-reproducibles-34089.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/vagrant-entornos-desarrollo-reproducibles/>)

Author: Antonio Pérez

Published: 2026-02-06T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [Oracle-VM-VirtualBox](<https://devfeed.tech/topics/vm-box.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [hashicorp](<https://devfeed.tech/tags/hashicorp.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtualbox](<https://devfeed.tech/tags/virtualbox.md>)

### AI overview

A Spanish tutorial explaining how Vagrant defines reproducible development environments as code. It covers installation, provider selection, Vagrantfile configuration, the VM lifecycle, SSH access, and synchronized folders, including performance and consistency considerations for VirtualBox, libvirt, NFS, and rsync.

### Source excerpt

Vagrant con libvirt o VirtualBox: carpetas sincronizadas, snapshots, aprovisionamiento con Ansible y reload vs provision.

## Backups incrementales con rsync en Linux

DevFeed: [Backups incrementales con rsync en Linux](<https://devfeed.tech/articles/backups-incrementales-con-rsync-en-linux-34045.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/backup-incremental-rsync-servidores-linux/>)

Author: Antonio Pérez

Published: 2026-01-16T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [backups](<https://devfeed.tech/topics/backups.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Script](<https://devfeed.tech/topics/script.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [systemd](<https://devfeed.tech/topics/systemd.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [backups](<https://devfeed.tech/tags/backups.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [linux](<https://devfeed.tech/tags/linux.md>), [nas](<https://devfeed.tech/tags/nas.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [systemd](<https://devfeed.tech/tags/systemd.md>)

### AI overview

A tutorial on implementing incremental backups with rsync and hardlinks on Linux servers. It explains how unchanged files are hardlinked to save space, warns that hardlinks are not independent copies, discusses filesystem compatibility and destructive synchronization risks, and covers SSH transfers, exclusions, systemd timers, and integrity checks.

### Source excerpt

Cómo implementar una estrategia de backups incrementales usando rsync y hardlinks para ahorrar espacio y tiempo en tus servidores.

## 10 scripts Bash útiles para sysadmins

DevFeed: [10 scripts Bash útiles para sysadmins](<https://devfeed.tech/articles/10-scripts-bash-utiles-para-sysadmins-34082.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/scripts-bash-utiles-sysadmin/>)

Author: Alois

Published: 2026-01-14T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [backups](<https://devfeed.tech/topics/backups.md>), [monitor](<https://devfeed.tech/topics/monitor.md>), [rsync](<https://devfeed.tech/topics/rsync.md>)

Tags: [backups](<https://devfeed.tech/tags/backups.md>), [bash](<https://devfeed.tech/tags/bash.md>), [logs](<https://devfeed.tech/tags/logs.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [script](<https://devfeed.tech/tags/script.md>), [scripts](<https://devfeed.tech/tags/scripts.md>), [shell](<https://devfeed.tech/tags/shell.md>), [sysadmin](<https://devfeed.tech/tags/sysadmin.md>), [sysadmins](<https://devfeed.tech/tags/sysadmins.md>)

### AI overview

A Spanish-language tutorial presents ten practical Bash scripts for system administrators, including disk monitoring, rotating backups, log cleanup, and other routine tasks. It notes that Bash scripts suit focused tasks on individual machines but are not a replacement for configuration-management tools when managing many servers.

### Source excerpt

Colección de scripts Bash prácticos para monitorización, backups, limpieza de logs y tareas comunes de administración de sistemas.

## Mitigating a rsync Vulnerability: A Lesson in Compiler Hardening

DevFeed: [Mitigating a rsync Vulnerability: A Lesson in Compiler Hardening](<https://devfeed.tech/articles/mitigating-a-rsync-vulnerability-a-lesson-in-compiler-hardening-13161.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/mitigating-a-rsync-vulnerability-a-lesson-in-compiler-hardening>)

Published: 2025-03-19T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [chainguard](<https://devfeed.tech/topics/chainguard.md>), [Security](<https://devfeed.tech/topics/security.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [compiler-flags](<https://devfeed.tech/tags/compiler-flags.md>), [compiler-hardening](<https://devfeed.tech/tags/compiler-hardening.md>), [cves](<https://devfeed.tech/tags/cves.md>), [defense-in-depth](<https://devfeed.tech/tags/defense-in-depth.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [product-security](<https://devfeed.tech/tags/product-security.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [security](<https://devfeed.tech/tags/security.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

Chainguard describes how compiler hardening in its C/C++ toolchain helped protect against an rsync vulnerability before public disclosure. The article presents compiler hardening flags as layers of defense for memory-unsafe software and discusses Chainguard's implementation of recommendations from OpenSSF and GCC.

### Source excerpt

Chainguard's defense-in-depth security strategy protected against multiple rsync CVEs before they were even reported. See how we did it, using compiler flags.

## What to do about SQLITE\_BUSY errors despite setting a timeout

DevFeed: [What to do about SQLITE\_BUSY errors despite setting a timeout](<https://devfeed.tech/articles/what-to-do-about-sqlite-busy-errors-despite-setting-a-timeout-36239.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/a-brief-post-on-sqlite3-database-locked-despite-timeout/>)

Published: 2025-02-16T20:00:00Z

Content type: tutorial

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [errors](<https://devfeed.tech/tags/errors.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [timeout](<https://devfeed.tech/tags/timeout.md>)

### AI overview

This article explains why SQLite can return SQLITE_BUSY despite a configured timeout. It recommends avoiding read-to-write transaction upgrades and using BEGIN IMMEDIATE, or starting the transaction with a write, while describing the concurrency behavior involved.

### Source excerpt

So I'm a huge SQLite fanboy and I use it for almost everything these days. Recently, the project added sqlite3_rsync which allows you to swiftly replicate your database to other servers (or to the same server if you want), and this really was the cherry on top for me. Last week however, I ran into one of my projects unexpectedly getting SQLITE_BUSY errors. And then someone urged me to run 'a real database' (PostgreSQL), and that hurt.

## Restrict SSH to rsync for deploying files with GitHub Actions

DevFeed: [Restrict SSH to rsync for deploying files with GitHub Actions](<https://devfeed.tech/articles/restrict-ssh-to-rsync-for-deploying-files-with-github-actions-29327.md>)

Original publisher: [Read original article](<https://www.schakko.de/2020/07/20/restrict-ssh-to-rsync-for-deploying-files-with-github-actions/>)

Author: Schakko

Published: 2020-07-20T07:32:08Z

Content type: tutorial

Language: en

Sources: [Schakko](<https://devfeed.tech/sources/schakko.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Security](<https://devfeed.tech/topics/security.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

This tutorial explains how to restrict rsync access over SSH when deploying a GitHub repository with GitHub Actions. It presents a custom SSH wrapper script and the official Perl-based rrsync script, including read-only or write-only restrictions for a specified directory.

### Source excerpt

rsync access can be restricted with a custom wrapper script or an official script named "rrsync". Access to your remote filesystem should always be restricted so you won't leak any information in case of a security breach. I've used GitHub Actions a lot in the last few months. For web [...] The post Restrict SSH to rsync for deploying files with GitHub Actions appeared first on schakko.de.

## SCP Overview: Familiar, Simple, Insecure and Slow

DevFeed: [SCP Overview: Familiar, Simple, Insecure and Slow](<https://devfeed.tech/articles/scp-overview-familiar-simple-insecure-and-slow-29815.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/scp-familiar-simple-insecure-slow/>)

Author: info@goteleport.com (Andrew Lytvynov)

Published: 2020-06-18T00:00:00Z

Content type: article

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [openssh](<https://devfeed.tech/tags/openssh.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

This technical overview explains SCP as a widely available file-transfer tool that operates over SSH. It describes SCP's historical and nonstandard implementation, with SSH providing authentication and encryption, and notes that newer tools such as SFTP and rsync can outperform it.

### Source excerpt

SCP is a simple tool with a quirky implementation. It does an okay job at moving files around, but newer software like SFTP and Rsync outperforms it.

## Removing Google as a Single Point of Failure Part 2: Gmail

DevFeed: [Removing Google as a Single Point of Failure Part 2: Gmail](<https://devfeed.tech/articles/removing-google-as-a-single-point-of-failure-part-2-gmail-20966.md>)

Original publisher: [Read original article](<https://jakewharton.com/removing-google-as-a-single-point-of-failure-gmail/>)

Published: 2020-03-18T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [data](<https://devfeed.tech/topics/data.md>), [DRIVE](<https://devfeed.tech/topics/drive.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>)

Tags: [backing-up](<https://devfeed.tech/tags/backing-up.md>), [data](<https://devfeed.tech/tags/data.md>), [google](<https://devfeed.tech/tags/google.md>), [home-server](<https://devfeed.tech/tags/home-server.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The article explains how to reduce dependence on Google as a single point of failure while continuing to use Google services as the source of truth. It covers backing up Google Photos and Google Drive to a home server and rsync.net, then describes using a custom domain and Fastmail to preserve email access and support catch-all addresses.

### Source excerpt

I want to remove Google as a single point of failure in my life. In the first blog post on this subject I detailed my setup for backing up Google Photos and Google Drive contents onto my home server and remotely to rsync.net. Left out of that post was a solution for Gmail because I hadn't found one yet. Now I have. Source of truth That first post started with an important qualification: This does not mean that I'm going to stop using Google products. Quite the opposite. Gmail, Google Photos, and Google Drive will remain the source-of-truth for all of the things I listed above. What's different is that should Google disappear tomorrow (or just my account) I would lose no data. This was easy to achieve with Photos and Drive because the data is all there is. With email that's unfortunately not true. Incrementally backing up the email data is pretty straightforward-we'll get into that shortly. But with Gmail your email address is still tied to the @gmail.com domain. So if my account or all of Google disappears, I won't be able to receive any more email. Of course the "easy" fix here is to just use a domain that I control. Obviously I own jakewharton.com, and I intend to set that up, but I wanted something shorter. I've owned cob.io for many years with the intention of setting up j@cob.io, but I go by "Jake". Luckily the last few years have seen an influx of new TLDs so I managed to grab ke.fyi. Say hello to j@ke.fyi! Having an email on my own domain doesn't address the problem that there's still hundreds or thousands of services that I've given the Gmail address to. While I can migrate many, there are inevitably those which I can't or that I simply don't know exist. The old address needs to remain working. Fastmail After browsing a few hosted email solutions, I settled on Fastmail (Note: referral link). In addition to a positive recommendation from a friend, there were a few key motivating factors. Domain catch-all A popular feature of Gmail is the ability to append a +

## Extracting 100% of Data From a Stubborn, Dying ZFS Pool

DevFeed: [Extracting 100% of Data From a Stubborn, Dying ZFS Pool](<https://devfeed.tech/articles/extracting-100-of-data-from-a-stubborn-dying-zfs-pool-20935.md>)

Original publisher: [Read original article](<https://jakewharton.com/extracting-100-percent-of-data-from-a-stubborn-dying-zfs-zpool/>)

Published: 2020-02-12T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [IO](<https://devfeed.tech/topics/io.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Software](<https://devfeed.tech/topics/software.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [home-server](<https://devfeed.tech/tags/home-server.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [process](<https://devfeed.tech/tags/process.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [server](<https://devfeed.tech/tags/server.md>), [software](<https://devfeed.tech/tags/software.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

The article describes recovering all data from a deteriorating ZFS pool built from ten-year-old hard drives. During migration to a new server, drive read failures and pool lockups caused rsync transfers to enter uninterruptible sleep in the I/O stack, requiring repeated hard reboots and extending the estimated transfer time from four days to approximately twelve.

### Source excerpt

In 2010 I built a home server with five 2TB drives. It ran Solaris and ZFS for the redundancy and data checksumming to ensure no data could be lost or corrupted. Just 16 months later five 3TB drives were added to the pool. This computer took the 2600-mile trip to live in San Francisco with me. It then endured the 2600-mile return trip when I left. Having sat unplugged for five years, I recently powered the server back on for new workloads. But relying on 10 ten-year-old hard drives in 2020 is asking for cascading failure. And not only were the drives old, they've experienced physical trauma. So instead I built a new server and endeavored to migrate the data. During the transfer the drives exhibited consistent read failures as expected, but ZFS was able to transparently mitigate them. Occasionally, though, the pool would lock up in a way that could only be fixed with a hard reboot. These lock ups sent me on a weird journey of software and hardware orchestration to complete the data transfer. Symptoms During transfer of the data, progress would stall randomly in a way that seemingly could not be killed. CTRL+C had no effect. No kill signal had an effect. Even last-resort shutdown -r nows did nothing. The system was oddly otherwise responsive. You could SSH in from another tab and poke around. ps showed that the transfer process was in the "D+" state which was uninterruptible sleep in the foreground. jake 21749 1.1 0.0 8400 2124 pts/0 D+ 23:42 0:00 rsync ... That explained why the process wouldn't die. The dmesg output also confirmed the problem happened deep in the I/O stack. [ 3626.101527] INFO: task rsync:30680 blocked for more than 120 seconds. [ 3626.101547] Tainted: P O 5.3.0-26-generic #28-Ubuntu [ 3626.101563] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 3626.101580] rsync D 0 30680 1 0x00000000 [ 3626.101584] Call Trace: [ 3626.101590] __schedule+0x2b9/0x6c0 [ 3626.101596] schedule+0x42/0xb0 [ 3626.101601] schedule_timeout+0x152/

## \[Linux\] Simplest possible snapshot-style backups using rsync

DevFeed: [\[Linux\] Simplest possible snapshot-style backups using rsync](<https://devfeed.tech/articles/linux-simplest-possible-snapshot-style-backups-using-rsync-20554.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/bak/>)

Published: 2019-10-15T22:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Script](<https://devfeed.tech/topics/script.md>), [ransomware](<https://devfeed.tech/topics/ransomware.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [backups](<https://devfeed.tech/tags/backups.md>), [linux](<https://devfeed.tech/tags/linux.md>), [ls](<https://devfeed.tech/tags/ls.md>), [malware](<https://devfeed.tech/tags/malware.md>), [ransomware](<https://devfeed.tech/tags/ransomware.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

A tutorial for creating snapshot-style backups on Linux with rsync, hard links, and dated directories. It explains how snapshots preserve file history, conserve disk space by storing unchanged files only once, and allow older versions to remain available after deletion or ransomware encryption.

### Source excerpt

[Linux] Simplest possible snapshot-style backups using rsync

## Prometheus authentication with oauth2\_proxy

DevFeed: [Prometheus authentication with oauth2\_proxy](<https://devfeed.tech/articles/prometheus-authentication-with-oauth2-proxy-37829.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/prometheus-authentication-with-oauth2_proxy/>)

Author: Carlos Alexandro Becker

Published: 2018-05-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Prometheus](<https://devfeed.tech/topics/prometheus.md>), [OAuth 2.0](<https://devfeed.tech/topics/oauth2.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [github](<https://devfeed.tech/tags/github.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [oauth2](<https://devfeed.tech/tags/oauth2.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [rsync](<https://devfeed.tech/tags/rsync.md>)

### AI overview

A tutorial showing how to put Prometheus, Grafana, and Alertmanager behind nginx and oauth2_proxy, using GitHub authentication and a Docker Compose-based setup.

### Source excerpt

I wanted to set up a prometheus machine for me to monitor random stuff, but I was always postponing that because I didn't want to use SSH port-forwarding, firewalls, create a VPC and/or setup an OpenVPN server or anything like that.

## Backing up with Capistrano

DevFeed: [Backing up with Capistrano](<https://devfeed.tech/articles/backing-up-with-capistrano-25381.md>)

Original publisher: [Read original article](<https://smileykeith.com/2013/01/05/backing-up-with-capistrano/>)

Author: Keith Smiley

Published: 2013-01-05T20:12:00Z

Content type: tutorial

Language: en

Sources: [Keith Smiley](<https://devfeed.tech/sources/keith-smiley.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [Linode](<https://devfeed.tech/topics/linode.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Server](<https://devfeed.tech/topics/server.md>), [Bash](<https://devfeed.tech/topics/bash.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [automation](<https://devfeed.tech/tags/automation.md>), [backing-up](<https://devfeed.tech/tags/backing-up.md>), [backup](<https://devfeed.tech/tags/backup.md>), [bash](<https://devfeed.tech/tags/bash.md>), [dropbox](<https://devfeed.tech/tags/dropbox.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [linode](<https://devfeed.tech/tags/linode.md>), [local](<https://devfeed.tech/tags/local.md>), [os](<https://devfeed.tech/tags/os.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

A tutorial on using Capistrano to automate weekly backups from a Linode-hosted web server to a local machine. It creates a compressed tarball remotely, downloads it with scp, stores it in Dropbox, and schedules the task through local cron.

### Source excerpt

We all know not backing up has consequences. While losing sentimental files would definitely ruin your day, losing your web server's data could be even worse. I've mentioned before that I use Linode for my server hosting, and while they do offer an automated backup service I decided I'd rather setup my own solution to back up periodically to my local machine. Many people use rsync to do their server backups. In fact Linode even has a guide on how to set it up (there's a better one here). I decided that instead of a 1 for 1 directory backup, I would prefer to have a tarball of the contents. While I could've easily done this with a few bash commands from the server that's not particular ideal for my setup. My local machines don't run 24/7 so if I set it up on the server to automate the backup every week, it may try to initiate the backup when my machine was off (I could try to guess when it's on every week but that's not ideal either). The obvious solution to this is run it from my local machine instead every week. That way once a week when it's powered up it would log in to the server, create the tarball and pull it down. Insert Capistrano ([sudo] gem install capistrano) a RubyGem for 'Remote multi-server automation.' So I wrote a very basic Capfile to automate this for me (replace the path to your www folder accordingly). load 'deploy' $SERVER_USER = "username" $SERVER_IP = "1.1.1.1" desc "Backs up server www files" task :backup, :hosts => $SERVER_IP do run "cd /srv; tar -pvczf ~/backup.tar.gz www/" run_locally "scp #{ $SERVER_USER }@#{ $SERVER_IP }:~/backup.tar.gz ~/Dropbox/Backups/Server" end Then I added this to my crontab on my local machine by running crontab -e and adding the line: @weekly /Users/ksmiley/.rbenv/shims/cap -f ~/path/to/Capfile backup I included the path to the Capistrano executable since cron (on OS X) executes tasks with sh, which isn't setup with my $PATH.

## Automatyczne backupy w stylu snapshot z rsync'iem

DevFeed: [Automatyczne backupy w stylu snapshot z rsync'iem](<https://devfeed.tech/articles/automatyczne-backupy-w-stylu-snapshot-z-rsync-iem-27506.md>)

Original publisher: [Read original article](<https://gagor.pro/2011/12/automatyczne-backupy-w-stylu-snapshot-z-rsynciem/>)

Author: Tom

Published: 2011-12-29T00:00:00Z

Content type: tutorial

Language: pl

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [rsync](<https://devfeed.tech/topics/rsync.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [rsync](<https://devfeed.tech/tags/rsync.md>)

### AI overview

The article discusses snapshot-style backups using rsync as an alternative to compressed full, differential, and incremental backups, whose restoration process can be slow and cumbersome. The author says they developed a backup script based on another article.

### Source excerpt

Można znaleźć wiele tutoriali jakimi narzędziami wykonywać backupy. W większości przypadków absolutnie wystarczający okaże się flexbackup. Bardziej wymagający wykorzystają BackupPC, Baculę lub Amandę. Narzędzia te pozwalają wykonać kopie pełne, różnicowe, przyrostowe - kompresując je dla zaoszczędzenia miejsca. Wszystko fajnie - ale problemy pojawiają się przy dostępie do tych danych. Żeby odzyskać plik zmodyfikowany dzisiaj trzeba rozpakować najpierw kopię pełną, potem różnicową, przyrostową by wreszcie wyciągnąć plik z wczoraj... hmm ten też jest skopany. No to lecimy jeszcze raz...

## Emacs Muse hacking

DevFeed: [Emacs Muse hacking](<https://devfeed.tech/articles/emacs-muse-hacking-34362.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2010/03/emacs-muse-hacking/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2010-03-04T12:33:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Code](<https://devfeed.tech/topics/code.md>), [HTML](<https://devfeed.tech/topics/html.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [html](<https://devfeed.tech/tags/html.md>), [rsync](<https://devfeed.tech/tags/rsync.md>), [shell](<https://devfeed.tech/tags/shell.md>)

### AI overview

An Emacs Muse user explains how to customize the publishing process to generate one file per blog article and add an index of previous articles. The article describes using Muse output-buffer functions and provides code that requires manual editing for customization.

### Source excerpt

Now you know what piece of software is used to publish this blog. I really like it, the major mode makes it a great experience to be using this tool, and the fact that you produce the HTML and rsync it all from within Emacs ( C-c C-p then C-c C-r with some easy elisp code) is a big advantage as far as I'm concerned. No need to resort to shell and Makefile.

## Emacs Muse based publishing

DevFeed: [Emacs Muse based publishing](<https://devfeed.tech/articles/emacs-muse-based-publishing-34352.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2009/10/emacs-muse-based-publishing/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2009-10-06T15:23:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [rsync](<https://devfeed.tech/topics/rsync.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [muse](<https://devfeed.tech/tags/muse.md>), [rsync](<https://devfeed.tech/tags/rsync.md>)

### AI overview

An Emacs Muse publishing workflow uses an interactive Emacs command to publish a blog with rsync, including optional synchronization of static CSS, image, and PDF directories.

### Source excerpt

As you might have noticed, this little blog of mine is not compromising much and entirely maintained from Emacs. Until today, I had to resort to term to upload my publications, though, as I've been too lazy to hack up the tools integration for simply doing a single rsync command line. That was one time to many: (defvar dim:muse-rsync-options "-avz" "rsync options") (defvar dim:muse-rsync-source "~/dev/muse/out" "local path from where to rsync, with no ending /") (defvar dim:muse-rsync-target "dim@tapoueh.org:/home/www/tapoueh.org/blog.tapoueh.org" "Remote URL to use as rsync target, with no ending /") (defvar dim:muse-rsync-extra-subdirs '("../css" "../images" "../pdf") "static subdirs to rsync too, path from dim:muse-rsync-source, no ending /") (defun dim:muse-project-rsync (&optional static) "publish tapoueh.org using rsync" (interactive "P") (let* ((rsync-command (format "rsync %s %s %s" dim:muse-rsync-options (concat dim:muse-rsync-source "/") (concat dim:muse-rsync-target "/")))) (with-current-buffer (get-buffer-create "*muse-rsync*") (erase-buffer) (insert (concat rsync-command "\n")) (message "%s" rsync-command) (insert (shell-command-to-string rsync-command)) (insert "\n") (when static (dolist (subdir dim:muse-rsync-extra-subdirs) (let ((cmd (format "rsync %s %s %s" dim:muse-rsync-options (concat dim:muse-rsync-source "/" subdir) dim:muse-rsync-target))) (insert (concat cmd "\n")) (message "%s" cmd) (insert (shell-command-to-string cmd)) (insert "\n"))))))) (define-key muse-mode-map (kbd "C-c R") 'dim:muse-project-rsync) So now to publish this blog, it's just a C-c R away! :)