For completeness sake, since I already have a topic where I walk through my main node’s setup, I am creating this separate guide for backing it up.
I generally follow the official guides, with a few tweaks here and there where I think makes sense.
This one here, is based on lightning.readthedocs.io/BACKUP.html#backup-plugin-and-remote-nfs-mount. It is interesting to know that v0.10.3 will have a built-in mechanism for backing up your LN database locally or on a network share, however it has not yet been released and I’m not sure there even exists a release candidate right now.
That’s why I’d recommend continuing to use the tried and trusted backup plugin written in Python.
It’s worth noting depending on your hardware, it can be trivial to setup the system from the get-go to run on a RAID-0 array, which would mean a constantly up-to-date mirror of your boot drive, but this would be out of the scope of this little guide.
Part 1: hsm_secret backup.
The hsm_secret needs to be backed up once, e.g. on paper, best even multiple copies. Think of it as a seed word backup. It secures the on-chain balance, but we will need Part 2 to always have an up-to-date backup of our channels’ states.
 Switch to unprivileged bitcoin user and extract the hsm_secret. By using this command, it will open in the text editor and not be saved to your history for better security. It is essential to now write down the hex data on a non-digital medium and afterwards closing vim without saving the file. Do so by opening vim’s command prompt (colon), followed by q!, so the whole command will look like :q!
su — bitcoin
xxd hsm_secret | vim -
Part 2: Automatic channel state backups
 Move to your home directory and clone the C-Lightning plugin repo.
git clone https://github.com/lightningd/plugins.git
 Change into this new folder and install the required dependencies for the backup plugin.
pip install -r backup/requirements.txt
 Choose a location for your backup. It makes 0 sense to use a location on the same drive, so it either has to be an external drive (USB / LAN share) or a remote network share. Setting this up is again outside the scope of this guide. Let’s assume the location is /mnt/share/lnbackup.
 Stop the node and go back into bitcoin user.
sudo service lightningd stop
su — bitcoin
 Initial channel state backup
backup/backup-cli init — lightning-dir /home/bitcoin/.lightning/bitcoin/ file:///mnt/share/lnbackup/backup.bkp
make sure to set the correct path for your (network) share and set a name that you like, such as backup.bkp.
You shall get a result such as:
Found an existing database at /home/bitcoin/.lightning/bitcoin/lightningd.sqlite3, initializing the backup with a snapshot
Successfully written initial snapshot to file:///mnt/share/lnbackup/backup.bkp
Initialized backup backend file:///mnt/share/lnbackup/backup.bkp, you can now start c-lightning
 Add plugin to lightningd.conf config file.
Simply add a new line with:
 Now we can start up C-Lightning again!
sudo service lightningd start
 If you get no errors starting up the service or anything, you’re good! For good measure, you could send yourself some sats from a mobile wallet, restart the service with sudo service lightningd restart and see if it’s all fine.