Backup a Linux machine with LVM Snapshots and rdiff-backup

Here is the completed script I wrote on Episode 461. Make sure you check out the full episode for details on how to make this work for you.

#!/bin/sh
/sbin/lvcreate -L10G -s -n lvm_snapshot /dev/ubuntu-mate-vg/root
/bin/mount /dev/ubuntu-mate-vg/lvm_snapshot /mnt/snapshot

/usr/bin/rdiff-backup -v5 --print-statistics \
  --exclude /mnt/backup/ \
  --include /mnt/snapshot/home/ \
  --include /mnt/snapshot/etc/fstab \
  --include /mnt/snapshot/var/log/ \
  --exclude '**' \
  / \
  /mnt/backup/

/bin/umount /mnt/snapshot
/sbin/lvremove -f /dev/ubuntu-mate-vg/lvm_snapshot

And of course, here is the episode:

Drone Zone Skill Rating

With The Drone Zone about to take flight, I wanted a way to rate the skill level required (or rather, recommended) for each drone we review. The purpose is so viewers can gauge during a review, from the DZSR (Drone Zone Skill Rating) which drone(s) they should be looking at first.

I’m open to suggestions, so please post your comments and this will become a bit of a living list, updated as needed. I will also maintain a static copy on The Drone Zone web site.


DZSR Level A
This drone is perfect for a beginner pilot. It’s easy to learn, has a price point that won’t hurt your wallet too badly if you crash it, and is a good drone to start with. As you take on drone flight, it’s best to start at DZSR Level A so you can learn the controls, practice, and get ready for the next level.
Mature pilots will also enjoy drones in this level as they’re nice to be able to carry around so you can fly wherever you are just for fun, without much consideration, packing or planning.
Typical drones in this level: Nano quads.

DZSR Level B
If you’ve mastered drones at DZSR Level A, you’re ready to move on to DZSR Level B.
Typical drones in this level: Toy camera quads, Entry level FPV.

DZSR Level C
If you’ve mastered drones at DZSR Levels A and B, you’re ready to move on to DZSR Level C.
Typical Drones in this level: Video drones, drones with GPS, Racing drones.

DZSR Level D
If you’ve mastered drones at DZSR Levels A, B and C, you’re ready to move on to DZSR Level D.
Typical Drones in this level: High-end/custom quads/hexacopters, DIY quadcopters.

Plex Media Server on a Raspberry Pi 3

I wanted to document the instructions shared on Episode 459 to supplement the episode.

On the show, Jeff and I demonstrated how to turn a Raspberry Pi 3 with Raspbian Jessie into a Plex Media Server, giving you the chance to stream your entire video and music library to all your devices.

I won’t get into the full details here, since this is only a supplement to give you some copy-and-paste instructions, but I’d encourage you to watch the video.

What You Need

  1. A Raspberry Pi 3 Micro Computer. Please consider purchasing it through our store to support what we do: https://cat5.tv/pi
  2. Raspbian Jessie – A free download from raspberrypi.org
  3. Obvious stuff like a good MicroSD card, Ethernet cable (preferred as opposed to wifi), keyboard and mouse… etc.

How to Do The Do
Updated February 7, 2018
due to some evolution of the process. These steps are more current than those used in the video (a new video will be coming soon).

  1. In terminal, upgrade your distro to the latest and greatest.
    sudo apt update
    sudo apt upgrade
    sudo apt dist-upgrade
  2. Reboot the Pi.
    sudo reboot
  3. Add the ability for apt to use https repositories. If you already have this, it’ll report as “already the current version” and you can move on.
    sudo apt install apt-transport-https
  4. Add the Plex Media Server repository provided by Universität Leipzig.
    echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list
  5. Add the GPG key for the repository.
    This is the “easy” method (which didn’t work for us because my keyboard was in some weird mode with no pipe character):

    wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -

    Alternate method (which I had to use on the show since I didn’t have a pipe character… I’ve cleaned it up a bit since the live show so it is cleaner since it was an unexpected twist and I kinda made it seem more confusing than it should):

    wget -O /tmp/pms.key https://dev2day.de/pms/dev2day-pms.gpg.key
    sudo apt-key add /tmp/pms.key
  6. Update apt.
    sudo apt update
  7. Install Plex Media Server.
    sudo apt install plexmediaserver-installer
  8. Create the default config file so Plex knows what user to operate under.
    echo "PLEX_MEDIA_SERVER_USER=pi" | sudo tee -a /etc/default/plexmediaserver
    sudo chown -R pi:pi /var/lib/plexmediaserver
    sudo service plexmediaserver restart

    (Thanks to Steve for submitting this additional step)

  9. Reboot one final time.
    sudo reboot

And there you have it! All the commands we used to get Plex Media Server installed on a Raspberry Pi 3 in a nice clean blog post  🙂

Optional: Use External Storage for Media

From there, we plugged in the USB flash drive (don’t do it! Use a proper external hard drive–this was only a demonstration) and after it mounted we used the following command to see its /dev assignment:

sudo mount

Since our drive was /dev/sda1, and of the filesystem type “fat32” this is what I did to make it work as the media library for Plex Media Server:

sudo nano /etc/fstab

and add the following line:

/dev/sda1 /mnt/library fatfs defaults 0 0

I then created the mountpoint:

sudo mkdir /mnt/library

and made it so it can only be written to if mounted:

sudo chattr +i /mnt/library

and finally, mounted the drive:

sudo mount -a

From there, I could easily add folders on my external drive to Plex using the web interface, which you’ll find on Port 32400 in the /web subfolder on your Pi.

To get my IP address, I brought up the terminal on the Pi and typed:

sudo ifconfig

That showed the IP address of my Pi under “Ethernet”… 192.168.0.105

So to open Plex in my browser, from my computer I entered:

192.168.0.105:32400/web

The IP address will most likely be different for yours, and you might even want to set it up as a static IP. Easiest way to do that would be to use your router’s DHCP reservations to hard-set the Pi to something outside your DHCP pool. For me, that’d be 192.168.0.5 or something like that, since the pool seemingly starts at 100.

Good luck, and if you have any questions or comments, please leave them below. Don’t forget, if this has helped you out, or if you just love supporting nice guys who wanna keep giving knowledge for free, please head over to our Patreon page, or throw a bit in the tip jar. Thanks!