Backup

  • Performing backups the right way

  • PSA: Backups
    • Also: https://www.jwz.org/doc/backups.html

      Dear Lazyweb, and also a certain you-know-who-you-are who should certainly know better by now, I am here to tell you about backups. It’s very simple.

      . . .

      $ sudo rsync -vax --delete --ignore-errors / /Volumes/Backup/
      

      If your version of rsync supports the --xattrs and --acls options (it probably does), use those too.

      If you have a desktop computer, have this happen every morning at 5AM by creating a temporary text file containing this line:

      0 5 * * * rsync -vax --delete --ignore-errors / /Volumes/Backup/
      

      and then doing sudo crontab -u root that-file

      . . .

      You have a computer. It came with a hard drive in it. Go buy two more drives of the same size or larger. If the drive in your computer is SATA2, get SATA2. If it’s a 2.5” laptop drive, get two of those. Brand doesn’t matter, but physical measurements and connectors should match. – By: Jamie Zawinski, 2007.

  • crontab_backup_script

    Inspired by http://www.jwz.org/blog/2007/09/psa-backups/ and extended to maintain off-line backups

    Inspired by jwz’s method for on-line backups and modified in light of the CryptoLocker malware to use off-line storage, this script runs nightly to synchronise rsync backups.

    The method used to mount and unmount off-line storage is Mac OS X-specific, but this script backs up data residing on co-located servers, Windows machines, Macs, and web servers.

    The line_to_put_in_crontab should be put in root’s crontab.

    The backup volumes are kept unmounted; they really should be kept physically unplugged and powered off in case CryptoLocker gets smart enough in future to try mounting disks before it goes hunting.

ZFS Snapshots

Rsync Snapshots

  • linux-timemachine – Rsync-based OSX-like time machine for Linux, MacOS and BSD for atomic and resumable local and remote backups

    Rsync-based OSX-like time machine for Linux, MacOS and BSD for atomic and resumable local and remote backups.

    timemachine is a tiny and stable KISS (https://web.archive.org/web/20220411220714/https://en.wikipedia.org/wiki/KISS_principle) driven and POSIX (https://web.archive.org/web/20220411142007/https://en.wikipedia.org/wiki/POSIX) compliant script that mimics the behavior of OSX’s timemachine. It uses rsync (https://web.archive.org/web/20220411142007/https://linux.die.net/man/1/rsync) to incrementally back up your data to a different directory, hard disk or remote server via SSH. All operations are incremental, atomic and automatically resumable.

    By default it uses the rsync options: –recursive, –perms, –owner, –group, –times and –links. In case your target filesystem does not support any of those options or you cannot use them due to missing permission, you can explicitly disable them via –no-perms, –no-owner, –no-group, –no-times, and –copy-links. See FAQ (https://web.archive.org/web/20220411142007/https://github.com/cytopia/linux-timemachine#bulb-faq) for examples.

    Motivation

    The goal of this project is to have a cross-operating system and minimal as possible backup script that can be easily reviewed by anyone without great effort. Additionally it should provide one task only and do it well without the need of external requirements and only rely on default installed tools.

    Retention

    As described above this project is KISS driven and only tries to do one job: back up your data.

    Retention is a delicate topic as you want to be sure that data is removed as intended. For this there are already well-established tools that do an excellent job and have proven themselves over time: tmpreaper (https://web.archive.org/web/20220411142007/http://manpages.ubuntu.com/manpages/precise/man8/tmpreaper.8.html) and tmpwatch (https://web.archive.org/web/20220411142007/https://linux.die.net/man/8/tmpwatch).

    Reliability

    The script is written and maintained with maximum care. In order to retain a reliable and stable backup solution, a lot of effort goes into a vast amount of integration and regression tests (https://web.archive.org/web/20220411142007/https://github.com/cytopia/linux-timemachine/actions). These tests not only give you measurable confidence, but also help new contributors to not accidentally introduce new or old bugs.

    FAQ

    Q: Should I add trailing directory slashes (/)? A: Trailing directory slashes only matter for the source directory and will not make a difference if added to the destination directory.

  • rsync-time-backup – Time Machine style backup with rsync

    This script offers Time Machine-style backup using rsync. It creates incremental backups of files and directories to the destination of your choice. The backups are structured in a way that makes it easy to recover any file at any point in time.


Documentation


Visualization


Editor

Vi


Writing

  • Lab Notebooks

    What wet-lab chemistry can teach software engineers

  • Note Taking, Writing and Life Organization Using Plain Text Files

    The Why: Advantages and Disadvantages of Plaintext Files

    “Writing is thinking. To write well is to think clearly. That’s why it’s so hard.” – David McCullough

    Writing is arguably the critical ingredient to how we think and learn. If you can’t write about something coherently and intelligibly, then your thinking on that topic or subject is vague and incomplete.

    Similarly, I’d argue writing is a key aspect to personal and professional organization too. Often through lists, note-taking, project management tools, or a process journal, we write out our plans, goals, intentions and other aspects that clarify what we want to accomplish. Writing allows us to express vague feelings and turn them into intentions and goals.


Postmaster

SMTP

SMTP RFCs

Sendmail

  • The Architecture of Open Source Applications (Volume 1) - Sendmail - Eric Allman

  • Sendmail Made Easy - UUASC (UNIX Users Association of Southern California - LA) - April 3, 2003 - archived from the original on 2008-02-28

    Sendmail is configured by the sendmail.cf file, which is typically located in either /etc or /etc/mail. This file contains literally over a thousand lines of configuration data which most people find intimidating. After reading through this document, you should be able to wade through that file with enough understanding to tell what it is doing.

    To configure sendmail, though, we do not actually edit the sendmail.cf file. Normally you edit a file named sendmail.mc, which is used to “compile” the sendmail.cf file. The sendmail.mc file is written in a language called m4, which was originally a pre-processor for Fortran (similar to cpp for C).

    The following is an example of one of the m4 macro files I actually use for one of the mail servers I have configured. This file contains some special changes for the Cyrus IMAP daemon, which I tweaked a bit to use Procmail in the mix as well.

    [ . . . ]


Productivity

  • arbtt - automatic, rule-based time tracker

    arbtt is a cross-platform, completely automatic time tracker.

    There are lots of time-tracking programs out there that allow you to collect statistics about how you spend your time, which activities are your biggest time-wasters, and so on. However, most of them require explicit action on your part: you have to manually enter what activity or project you’re working on, and that has several disadvantages:

    • You need to stop what you’re doing to insert the meta-information, and that breaks your concentration;
    • If you are lazy or get annoyed and don’t keep updating it, the statistics will be useless
    • You won’t be able to catch a little thing like quickly answering an e-mail or looking for the weather report.
  • arbtt - source code on GitHub

  • I’m tired of overwhelming productivity apps, so I created this simple system instead

    Key Takeaways

    • Use simple, efficient apps for productivity, like TickTick for tasks and Google Calendar for events.
    • Keep note-taking simple with Google Docs and Windows Notepad, and streamline your reading process with Feedly, Pocket, and Google Discover.
    • Focus on personal habits and discipline, not just the features of productivity apps, to achieve your goals.
  • Plaintext Productivity

  • today.txt - If you do this and only this, today will be a good day

Plain Text (plaintext, plain-text)


Tool Makers


Websites


Dotfiles


Unicode

Locally hosted


Unix


Sysadmin


Shell

  • pure-sh-bible

    A collection of pure POSIX sh alternatives to external processes.


Diagrams and Graphs


Minimalism


Inspiration

  • edstrom.dev - about

    Hello. On this homepage, I publish some of my notes.

    Notes of what?

    What not? They can include: study notes, taken while I learn; guides / tips; cheatsheets; observations; movie lists and other attempts to systematize; open questions / confusions.

    Most of all, it’s not a blog. Blogs (and social media) tend to peg each post to a point in time, so that they age like milk and not like wine. That’s the “stream” in The Garden and the Stream. I always saw more sense in the “garden” a.k.a. evergreen/long content, where you continually reuse, refine and extend your pages.

    If there’s any guiding principle, it’s the notion of a slipbox as described by Book: How to Take Smart Notes, though as of [2023-11-23 Thu] I think future-me wouldn’t call this a good slipbox just yet.

    It may make sense to realize the notes existed before the website, they’re not written for it. I was writing them anyway, for my own purposes.


Cool


Footnotes

[1] From Plain Text - brajeshwar.com:

Plain Text is a loose term for data that represent only characters of readable material but not its graphical representation nor other objects. It may also include a limited number of “whitespace” characters that affect simple arrangement of text, such as spaces, line breaks, or tabulation characters. Plain text is different from formatted text, where style information is included; from structured text, where structural parts of the document such as paragraphs, sections, and the like are identified; and from binary files in which some portions must be interpreted as binary objects.