惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
爱范儿
爱范儿
美团技术团队
V
Visual Studio Blog
P
Proofpoint News Feed
GbyAI
GbyAI
Y
Y Combinator Blog
博客园 - 司徒正美
IT之家
IT之家
Google DeepMind News
Google DeepMind News
F
Full Disclosure
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
M
MIT News - Artificial intelligence
V
V2EX
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
B
Blog
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
SecWiki News
SecWiki News
I
Intezer
P
Palo Alto Networks Blog
S
Security Affairs
L
LangChain Blog
C
Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
H
Heimdal Security Blog
有赞技术团队
有赞技术团队
量子位
D
Docker
S
Secure Thoughts
N
News | PayPal Newsroom
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
H
Hackread – Cybersecurity News, Data Breaches, AI and More

东东's Blog

Memos: MacOS 下编译安装 Aseprite 脚本 日本关西系列|Day 2 京都的半日闲逛 美国Apple官网购买礼品卡订阅 ChatGPT Plus 北京・中关村森林公园(2026) 日本关西系列|Day 1 抵达临空城与大阪首日 Memos: 查询 Apple ID 注册时间 Memos: Ghostty 开箱即用配置 代码考古:用 gitcharts 挖掘 Git 仓库的演变轨迹 烹饪日记:香煎罗非鱼 Memos: 新时代程序员的顶级焦虑 Memos: 博客新增图文布局和轮播图效果支持 Memos: 最适合空气炸锅烤着吃的红薯品类 Memos: 记录「95分」好吃的‘小帅香菇面’ 妻子爷爷的‘朝鲜军功奖章’ Memos: 博客切换为 Shiki 代码高亮方案 Memos: 博客新增划线、重点及荧光笔效果支持 记录博客字体分包与字体子集化 Memos: 邻座吃饭的一家三口 人在囧途之哈囧 哈尔滨・乡村的冬季 查看香烟生产日期 哈尔滨・东北虎林园 Memos: 来自日本的 ndjp 提供免费的三级子域名 Memos: 刚听说 autojump, 真的好用 Memos: 体验 OpenCode + Superpowers + GPT 5.2 开发需求 Memos: 杰我睿爆雷 GoReleaser 自动发布 Go 镜像到 DockerHub & GitHub Release 初识 Volta & Corepack 前端版本管理工具 部署 Beszel 把 “小鸡们” 归拢起来 Memos: Claude Code in Action 中文版教程 2025 年度回顾 Memos: 体验 tanaos-text-anonymizer-v1 NER 模型 Memos: 查询 Google 账号注册时间 Memos: 关于 Z30 在室内摄像被手机降维打击这点儿事儿 阅读《我与地坛》 Memos: Ghostty + Neovim + LazyVim Memos: 找到 Cursor 运行巨慢的一个原因 Memos: 京东家政 哈尔滨灵活就业人员医保退休待遇申领条件 记地暖不热的维修过程 Memos: 赛博菩萨 Cloudflare 又挂了 AnyTLS 软件的配置与使用 阅读《在巴东》 Memos: Web Archive 暂时离线 忆时光:十五年前我的家(动迁前夕) macOS 系统部署 Valkey 集群模式 阅读《一个名叫欧维的男人决定去死》 Memos: Cursor 服务故障部分功能不可用 阅读《丰乳肥臀》 爱人回家送奶奶 Memos: AWS 美东可用区 P0 故障(us-east-1) 2025 北京社保下限上调|个体户缴费随之上涨 铁锅重生记 不锈钢盆与放心水源改造计划 阅读《不被大风吹倒》 基于 Supabase 构建示例应用(中篇):实现 Vue 前端页面 基于 Supabase 构建示例应用(上篇):数据库与接口 阅读《三体》之地球往事 Oracle Free 实例重装系统 非京籍个体户缴纳社保(补充):“无有效的汇总预处理信息” 解决办法 阅读《芯片简史》 阅读《简约至上:交互式设计四策略(第2版)》 阅读《审判》 阅读《统计数字会撒谎》 达达秒送骑士 日本关西系列|在动物园前站找到海南本线 观影《长安的荔枝》 Memos: 记录两个在线工具 地球 Online:外卖骑手体验报告 杜师傅夜话:附身与归途 日本关西系列|使用投放硬币的行李寄存箱 日本关西系列|将多余零钱充值到西瓜卡 日本关西系列|网上购买大阪往返白滨高速巴士 乌鲁木齐・赛里木湖 “778 老哥” 摄影摘选(转载) 使用 Restic 来备份重要数据 Backing Up Important Data with Restic Resticで重要なデータをバックアップする Cursor 开发 Obsidian 插件记录 非京籍个体户缴纳社保(十):新增并缴纳个人所得税-工资薪金 非京籍个体户缴纳社保(九):公积金开户增员与缴费 非京籍个体户缴纳社保(八):税务申报与工商年报 非京籍个体户缴纳社保(七):社保费用申报与缴纳 非京籍个体户缴纳社保(六):医保公共服务平台 - 增员确认 非京籍个体户缴纳社保(五):北京电子税务局 - 税务报道 非京籍个体户缴纳社保(四):北京市社会保险网上服务平台 - 增员与社保卡领取 非京籍个体户缴纳社保(三):社会保险网上服务平台 - 单位信息登记 非京籍个体户缴纳社保(二):北京 e 窗通平台提交申请 非京籍个体户缴纳社保(一):概览与先期准备 养老保险零基础入门指南(速通版) 了解北京门诊看病工会“二次报销”互助金 注册 US.KG 免费域名(dpdns.org) 白嫖 Cloudflare R2 + Worker 搭建私有镜像仓库 再思 JWT 的使用场景和算法选择 黑龙江・木兰县属小村落的星空(2024) Nginx 启用 HTTPS/3 优化网站的 SSL Labs 总体评级为 A+(禁用旧协议 & 启用 HSTS) 了解 OCSP Stapling 证书吊销验证机制 山东・烟台中秋两三日(2024) 分享改造后的博客发布流程和访问链路 边缘网络:白嫖 Cloudflare R2 博客图床(DNS 国内外分流)
Sauvegarder des données importantes avec Restic
2025-04-03 · via 东东's Blog

J'ai utilisé Cryptomator pendant assez longtemps pour gérer mes contenus. Son avantage est que les données locales nécessitent également un mot de passe pour y accéder. Une fois chiffrées, ces données peuvent être synchronisées vers Nutstore, Dropbox ou d'autres services cloud, avec un téléversement en temps réel après chaque modification.

Si vous stockez des fichiers qui ne nécessitent pas d'édition fréquente et que vous ajoutez ou remplacez principalement des ressources, je recommande vivement Cryptomator. Il est idéal pour sauvegarder des documents numérisés, des images et des tableaux.

Cependant, sous macOS, si vous utilisez des logiciels comme Obsidian pour gérer votre base de connaissances et que vous modifiez fréquemment vos fichiers, l'édition de texte avec Cryptomator devient peu pratique. Pour éviter les problèmes, je devais copier le contenu, le modifier, puis remplacer le fichier original, ce qui était assez fastidieux.

J'ai découvert par hasard Restic. Si vous souhaitez sauvegarder et chiffrer votre coffre-fort Obsidian pour l'envoyer vers un cloud ou une plateforme S3, Restic est parfaitement adapté.

Quick Start

Installation de Restic

macOS

$ brew install restic

Compatible avec la plupart des systèmes d'exploitation, voir : https://restic.readthedocs.io/en/latest/020_installation.html

Initialisation d'un dépôt local

Un dépôt est simplement un dossier qui stocke vos fichiers chiffrés. L'initialisation crée des métadonnées nécessaires.

$ restic init --repo ~/Documents/NoteE2EE
enter password for new repository:
enter password again:
created restic repository 0a40262533 at /Users/xxxxx/Documents/NoteE2EE

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

N'oubliez pas votre mot de passe, car les données chiffrées seront irrécupérables en cas d'oubli.

Sauvegarde des données

Exécutez cette commande pour sauvegarder le dossier ~/Note dans le dépôt ~/Documents/NoteE2EE

$ restic -r ~/Documents/NoteE2EE backup ~/Documents/Note

À la première exécution, vous verrez le nombre de fichiers et répertoires sauvegardés, ainsi que l'ID du "snapshot" (instantané) créé.

La commande peut être exécutée plusieurs fois (chaque exécution crée un nouveau snapshot)

Comme les sauvegardes sont incrémentielles, ne vous inquiétez pas de l'espace disque.

Utilisez cette commande pour afficher la liste des snapshots dans le dépôt:

$ restic -r ~/Documents/NoteE2EE snapshots

Le dossier "NoteE2EE" contient vos données chiffrées. Vous pouvez le stocker en toute sécurité sur votre disque dur local, un disque externe ou un cloud, selon le principe 3-2-1, sans craindre de fuites de données.

Optimisation des paramètres de sauvegarde

$ restic -r ~/Documents/NoteE2EE backup ~/Documents/Note \
    --pack-size 32 \
    --exclude="*.tmp" \
    --iexclude="*.LOG" \
    --limit-upload 1024 \
    --json

L'option --pack-size permet de contrôler efficacement le nombre de fichiers cibles, évitant que les gros fichiers ne soient divisés en trop de petits fichiers. Les fichiers historiques ne sont pas affectés, seule la sauvegarde incrémentielle actuelle l'est.

En complément de --limit-upload, il existe un paramètre --limit-download pour limiter la vitesse de téléchargement.

Si vous développez des outils basés sur Restic, le paramètre --json est très utile:

{"message_type":"status","percent_done":0,"total_files":29,"total_bytes":204482794}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0,"total_files":41,"total_bytes":333776710}
{"message_type":"status","percent_done":0.2808864315308279,"total_files":41,"files_done":13,"total_bytes":333776710,"bytes_done":93753349}
{"message_type":"status","percent_done":1,"total_files":41,"files_done":41,"total_bytes":333776710,"bytes_done":333776710}
{"message_type":"summary","files_new":0,"files_changed":0,"files_unmodified":41,"dirs_new":0,"dirs_changed":2,"dirs_unmodified":8,"data_blobs":0,"tree_blobs":2,"data_added":756,"data_added_packed":608,"total_files_processed":41,"total_bytes_processed":333776710,"total_duration":5.552792709,"backup_start":"2025-04-02T18:30:04.949151+08:00","backup_end":"2025-04-02T18:30:10.501995+08:00","snapshot_id":"74e465ed71f7fb5b7abb562d4cb9d067f20d89a1a9f3ed4ed32a0bc73e8abab1"}

Ces données permettent de créer des barres de progression et d'afficher le volume des fichiers sauvegardés.

Plus de types de stockage (Backends)

La commande restic init --repo ~/Documents/NoteE2EE a créé un dépôt local.

Voici un exemple pour un stockage compatible S3:

# Configuration des variables d'environnement
$ export AWS_ACCESS_KEY_ID=id7O9M0H****tXJ2romrN
$ export AWS_SECRET_ACCESS_KEY=bFA0dL0u********ndnxVcrwPh31u
$ export AWS_DEFAULT_REGION=cn-east-1

# Initialisation du dépôt et sauvegarde
$ restic -r s3:https://s3.bitiful.net/note-e2ee init
$ restic -r s3:https://s3.bitiful.net/note-e2ee --verbose backup ~/Documents/NoteE2EE

Note: Si la variable AWS_DEFAULT_REGION n'est pas définie, us-east-1 sera utilisé par défaut.

Pour d'autres plateformes comme Amazon S3, Backblaze B2, Google Cloud, consultez: https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html

Gestion des snapshots

Conservation des snapshots récents

Si vous exécutez backup régulièrement, vous pouvez avoir trop de sauvegardes. Cette commande permet de ne conserver que les 7 derniers snapshots:

$ restic -r [chemin_du_dépôt] forget --keep-last 7 --prune

Étiquettes de snapshot

Vous pouvez spécifier plusieurs étiquettes lors de la sauvegarde (--tag "v1.0" --tag "daily"):

$ restic -r ~/Documents/NoteE2EE backup --tag "v1.0" ~/Documents/Note

Vous pouvez également modifier les étiquettes des snapshots existants:

# Ajouter une étiquette
$ restic -r ~/Documents/NoteE2EE tag --add "important" 8c5c9d50

# Supprimer une étiquette
$ restic -r ~/Documents/NoteE2EE tag --remove "important" 43547193

# Définir plusieurs étiquettes
$ restic -r ~/Documents/NoteE2EE tag --set "important,project2" a1ff1a78

Notez que l'ID du snapshot change après chaque modification.

Vérification de l'intégrité des sauvegardes

Les sauvegardes stockées sur le cloud ne sont pas garanties à 100% contre la perte ou la corruption. La commande check permet de vérifier l'intégrité:

$ restic -r ~/Documents/NoteE2EE check

04.jpg

Simulons maintenant une "corruption" en modifiant le nom d'un fichier dans le répertoire data de NoteE2EE, en ajoutant un underscore au début pour simuler une perte ou corruption:

En exécutant à nouveau la commande check, un message indique que le dépôt est anormal et nécessite une réparation, comme prévu:

06.jpg

Restauration d'un snapshot dans un répertoire spécifique

Visualisation des snapshots existants:

$ restic -r ~/Documents/NoteE2EE snapshots

Exportation d'un snapshot spécifique:

$ restic -r ~/Documents/NoteE2EE restore 5fcd966f --target ~/Downloads/NoteRestore/

5fcd966f est l'ID du snapshot, que vous pouvez trouver avec la commande snapshots. Le répertoire NoteRestore sera créé automatiquement s'il n'existe pas.

Si votre dépôt est volumineux et que vous souhaitez restaurer uniquement certains fichiers ou dossiers:

$ restic -r ~/Documents/NoteE2EE restore 5fcd966f --target ~/Downloads/NoteRestore/ --include Epub电子书

"Epub电子书" est un dossier situé à la racine du dépôt.

Utiliser copy plutôt que backup

Si vous n'avez qu'un seul dépôt chiffré, utilisez simplement backup à chaque fois. Mais si vous suivez le principe 3-2-1 avec plusieurs dépôts chiffrés, il n'est pas efficace d'exécuter backup plusieurs fois vers différents dépôts.

Dans ce cas, utilisez copy, qui garantit une cohérence stricte des données avec d'excellentes performances:

$ restic init --repo ~/Documents/NoteE2EE-copy

$ restic -r ~/Documents/NoteE2EE-copy copy --from-repo ~/Documents/NoteE2EE

Résumé de l'IA (que je trouve pertinent):

Si vous devez synchroniser des données entre plusieurs dépôts Restic, copy est toujours le meilleur choix — il fonctionne comme un "transporteur de données" professionnel entre dépôts, tandis que backup est un "collecteur" orienté vers les données brutes.

Essayez Restic Browser

Si vous n'aimez pas les opérations en ligne de commande, essayez cet outil open source: emuell/restic-browser

07.jpg

Développé avec Rust + TypeScript, il ne pèse que quelques mégaoctets et offre uniquement des fonctions de lecture. Comme son nom "Browser" l'indique, il permet de parcourir les dépôts chiffrés et facilite la recherche de fichiers dans les snapshots.

Vous pourriez aussi avoir besoin d'Autorestic

Documentation: Autorestic Quick Start

Autorestic est un wrapper autour de l'étonnant restic. Bien qu'étant remarquable, l'interface en ligne de commande de restic peut être un peu intimidante et difficile à gérer si vous avez plusieurs emplacements différents que vous souhaitez sauvegarder vers plusieurs destinations. Cet utilitaire vise à faciliter ce processus 🙂

Autorestic est un wrapper développé autour de l'excellent outil restic. Bien que l'outil en ligne de commande restic soit exceptionnel, il peut devenir complexe et difficile à gérer lorsque vous devez synchroniser des sauvegardes de plusieurs emplacements vers différentes destinations. Cet utilitaire vise à simplifier ce processus, rendant la gestion des sauvegardes multi-cibles plus facile et plus agréable.

Installation

$ brew install autorestic

Fichier de configuration

Créez un fichier de configuration avec le contenu suivant:

version: 2
backends:
  note_primary:
    type: local
    path: "~/Documents/NoteE2EE"
    env:
      RESTIC_PASSWORD: "your-restic-vault-passowrd"
  note_backup:
    type: local
    path: "~/Documents/NoteE2EE-copy"
    env:
      RESTIC_PASSWORD: "your-restic-vault-passowrd"

locations:
  notes:
    from: "~/Documents/Note"
    to:
      - note_primary
      - note_backup
    options:
      forget:
        keep-last: 7

Modifiez les permissions du fichier de configuration (recommandé):

$ chmod 600 ~/.autorestic.yml

Location et Backend

Dans Autorestic, Location décrit le contenu et la destination de la sauvegarde (from / to), tandis que Backend définit la destination de sauvegarde.

Vérification de la configuration

$ autorestic check

Everything is fine.

Exécution manuelle de la sauvegarde

Sauvegarde complète:

$ autorestic backup -a

Sauvegarde d'une Location spécifique:

$ autorestic backup -l notes

Sortie:

Cette solution répond parfaitement à mes besoins actuels et est suffisamment facile à utiliser. Je mettrai à jour cet article après l'avoir utilisée pendant un certain temps si j'ai des compléments à ajouter.

Références