Snapshot-backup · SSH · rsync
En liten, snabb backup-klient i Rust. Hårdlänkade snapshots över SSH gör att varje körning ser ut som ett komplett träd — men bara det som ändrats tar ny plats. Återställ vad som helst, från vilken som helst.
backup 0.1.0 · källkod (Rust) · tar.gz, 62 KB — bygg med cargo build --release
Så funkar det
Varje körning skapar en ny mapp <timestamp>/. Filer som inte ändrats sedan förra gången blir hårdlänkar — samma data på disken, men synliga i varje snapshot. En latest-symlänk pekar alltid på den nyaste.
Klienten kör rsync -aAX --delete över SSH in i en ny <timestamp>/-mapp. Rättigheter, ACL:er och xattrs följer med.
--link-dest=../latest låter filer som inte ändrats peka på förra snapshoten. Ny disk används bara för det som faktiskt skiljer sig.
latest flyttas till den nya snapshoten. Auto-prune behåller N senaste plus dagliga/veckovisa/månatliga enligt din policy.
Funktioner
En delad motor driver både CLI:t och desktop-appen. Samma config, samma snapshots, samma logg.
Varje backup är ett komplett, bläddringsbart träd. Oförändrade filer delar disk via hårdlänkar — så historik kostar nästan inget.
rsync --link-destBehåll de N senaste plus nyaste per dag, vecka och månad. Gallring körs automatiskt efter varje lyckad backup.
keep_last · daily · weekly · monthlyBläddra i en snapshots filträd och plocka exakt det du vill ha tillbaka — eller hela trädet. Inget i målmappen raderas någonsin.
browse · pick · restoreSkapa flera scheman — timvis, dagligt eller veckovis — och installera dem direkt i din crontab med ett klick.
→ crontabVarje backup, restore och prune skrivs till history.jsonl och visas i en History-flik — med tid, mål och utfall.
Testa SSH-nyckel, anslutning, att alla källor finns och att målet går att skriva till — innan du litar på en backup.
backup verifySe exakt vad som skulle överföras eller raderas innan något händer. Gäller backup, restore och prune.
--dry-runrsync över SSH för din NAS, eller rclone för moln- och objektlagring. Samma snapshot-modell, samma flöde.
ssh · rcloneDesktop-appen (byggd i iced) byter ljust/mörkt med ditt skrivbord. Ett rent designsystem med kort, accent och mjuka skuggor.
light · darkDesktop-appen
Samma motor som CLI:t, med ett grafiskt gränssnitt för att redigera mål, schemalägga, återställa och spåra körningar. Klicka runt nedan.
Redigera ett mål och kör det direkt — med live-strömmad rsync-logg längst ned.
Bygg upp flera scheman och skriv dem till din crontab — appen visar cron-uttrycket medan du ställer in.
Lista snapshots, bläddra i trädet och plocka exakt det du vill ha tillbaka. Filer kopieras — inget raderas.
Varje körning blir en rad i loggen — så du kan se i efterhand vad som hände, och när.
Kommandoraden
Föredrar du terminalen gör backup-binären exakt samma jobb — perfekt för cron och fjärrservrar.
Skriver en kommenterad exempel-config att utgå från.
Testar SSH-nyckel, anslutning, att källorna finns och att målet är skrivbart.
Kör backup för alla mål (eller ett valt). Auto-prune efter lyckad körning.
Listar alla snapshots på målet, nyaste först.
Visar vilka snapshots retention-policyn skulle gallra — innan något raderas.
Versionssträng med inbäddad git-hash och byggdatum från build.rs.
Kom igång
Kör backup init, fyll i värd, källor och retention — och kör en --dry-run innan första riktiga backupen.
# Ett eller flera [[target]]-block. [[target]] name = "nas" host = "192.168.1.50" user = "backup" port = 22 key = "~/.ssh/backup_ed25519" dest = "/volume1/backups" sources = [ "/home/jonaz/dokument", "/home/jonaz/bilder", ] exclude = [ "*.tmp", "node_modules" ] # Behåll 5 senaste + GFS [target.retention] keep_last = 5 keep_daily = 7 keep_weekly = 4 keep_monthly = 6
Snapshots som kostar nästan ingen disk, återställning på filnivå och en logg över allt som hänt.