LISCHKA.LI

Cinematography

Photography Backup System on Arch Linux via SSH

Photographers rely on raw files and edited images as their lifeblood, making off-site backups essential. On Arch Linux, rsync over SSH paired with cron offers a secure, automated solution to mirror your photo library to a remote server. This guide configures a photography backup system optimized for large files, leveraging Arch’s lightweight tools and SSH’s robust security to protect your work.

Prerequisites

A remote server with SSH access and ample storage is required, along with basic terminal skills. Your photo collection—likely in ~/Photos or similar—should be ready to sync. Both local and remote systems need rsync; the remote server must also support SSH.

Installing Core Tools

Install rsync for file transfers, openssh for secure communication, and cronie for scheduling on your Arch system.

sudo pacman -S rsync openssh cronie

Activate cron to enable automated tasks.

sudo systemctl enable crond
sudo systemctl start crond

Securing SSH Access

For secure backups, set up SSH key authentication. Generate a key pair and transfer the public key to the remote server. Use a strong passphrase for added protection.

ssh-keygen -t ed25519 -C "photo-backup"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server

Verify seamless access and lock down SSH by disabling password logins on the remote server’s /etc/ssh/sshd_config (set PasswordAuthentication no and restart sshd).

ssh user@remote-server

Prepare a remote directory, such as /backup/photos, with appropriate permissions.

ssh user@remote-server 'mkdir -p /backup/photos && chmod 700 /backup/photos'

Writing the Backup Script

Create a script to sync your photo directory to the remote server, optimized for large raw files. This uses rsync’s compression and incremental transfers to save bandwidth.

#!/bin/bash
# photo_backup.sh
SOURCE="$HOME/Photos/"
DEST="user@remote-server:/backup/photos/"
rsync -avzh --progress --delete -e "ssh -i $HOME/.ssh/id_ed25519" "$SOURCE" "$DEST"

Save as ~/photo_backup.sh, make it executable, and test it. The -z flag compresses data, ideal for raw files, while –delete ensures the remote reflects the source.

chmod +x ~/photo_backup.sh
~/photo_backup.sh

Automating with Cron

Schedule nightly backups at 1 AM by editing your crontab, logging results for monitoring.

crontab -e

Insert this line.

0 1 * * * /home/user/photo_backup.sh > /home/user/photo_backup.log 2>&1

Check cron’s status to ensure it’s operational.

systemctl status crond

Validating the Backup

Confirm the backup’s integrity by comparing file counts or sizes.

find ~/Photos/ -type f | wc -l
ssh user@remote-server 'find /backup/photos/ -type f | wc -l'

Simulate a sync to spot discrepancies without changes.

rsync -avzh --dry-run --delete -e "ssh -i $HOME/.ssh/id_ed25519" ~/Photos/ user@remote-server:/backup/photos/

Troubleshooting

If transfers fail, review the log for rsync or SSH errors (e.g., key rejection). Test connectivity and permissions.

cat ~/photo_backup.log
ssh -v user@remote-server

Monitor remote storage and adjust as your collection grows. This setup delivers a secure, efficient backup system for photographers on Arch Linux.