LISCHKA.LI

Cinematography

Category: Post-Production

  • Photography Backup System on Arch Linux via SSH

    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.