====== Restic 备份 ====== restic 是一个 Go 语言编写的备份工具,特点是快速、高效而且安全。(([[https://www.escapelife.site/posts/912084a4.html|Restic 备份快速上手]])) (([[https://ld246.com/article/1601527149440|官方文档中文翻译]])) (([[https://www.sklinux.com/posts/devops/%E9%AB%98%E6%95%88%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7restic%E6%8E%A8%E8%8D%90/|高效备份神器restic]])) 安装 ''%%sudo apt-get install restic %%'' ===== 免密登录 ===== 先在服务器 Ionos 搞个免密登录到主力服务, ssh-keygen # 之前如果已经生成过就不用在生成 ssh-copy-id -i ~/.ssh/id_rsa.pub mai@mainserver ===== 创建仓库 ===== 创建一个位于主力服务器的备份仓库 restic -r sftp:mai@mainserver:/home/mai/mongobackup/dokuwiki/restic-repo init ===== 备份数据 ===== 备份SSL证书的整个目录到仓库中去。生成一个 ''%%75ee283a%%'' 的snapshot。 restic -r sftp:mai@mainserver:/home/mai/mongobackup/dokuwiki-repo --verbose backup /etc/letsencrypt created new cache in /root/.cache/restic lock repository load index files start scan on [/etc/letsencrypt] start backup on [/etc/letsencrypt] scan finished in 0.642s: 27 files, 38.355 KiB Files: 27 new, 0 changed, 0 unmodified Dirs: 1 new, 0 changed, 0 unmodified Data Blobs: 23 new Tree Blobs: 2 new Added to the repo: 31.410 KiB processed 27 files, 38.355 KiB in 0:01 snapshot 75ee283a saved 如果想查看一下snapshot的话 restic -r sftp:mai@mainserver:/home/mai/mongobackup/dokuwiki-repo snapshots enter password for repository: repository 4c702226 opened successfully, password is correct ID Time Host Tags Paths ------------------------------------------------------------------------ 75ee283a 2021-07-30 20:01:34 serverionos /etc/letsencrypt ------------------------------------------------------------------------ 1 snapshots 再把 Dokuwiki 网站备份进去 restic -r sftp:mai@mainserver:/home/mai/mongobackup/dokuwiki/dokuwiki-repo --verbose backup /home/ubuntu/www/html # 结果是81MB左右,原始数据是108MB,tar 备份有37MB作用 Added to the repo: 81.818 MiB processed 12694 files, 108.155 MiB in 0:22 snapshot af728dda saved 修改了一下这个帖子,再次运行这个备份命令 restic -r sftp:mai@mainserver:/home/mai/mongobackup/dokuwiki/restic-repo --verbose backup /home/ubuntu/www/html # 结果只更新了一个文件,传递了大概194KB的数据。 Files: 1 new, 36 changed, 12658 unmodified Dirs: 0 new, 3 changed, 0 unmodified Data Blobs: 25 new Tree Blobs: 4 new Added to the repo: 194.346 KiB processed 12695 files, 108.158 MiB in 0:02 snapshot 7e734cf6 saved 再备份一个mongodb,建立一个 1.26GB左右的仓库,原数据大概1.5GB的样子 restic -r /home/mai/mongobackup/mongo-repo init # 记得加sudo,否则没有访问权限 sudo restic -r /home/mai/mongobackup/mongo-repo --verbose backup /mnt/mongodb/data/ ===== 删除快照 ===== # 指定快照ID来删除快照 $ restic -r /srv/restic-repo forget bdbd3439 enter password for repository: removed snapshot d3f01f63 # 虽然上述命令将快照删除了,但文件引用的数据仍然存储在存储库中 # 要清除未引用的数据,必须运行prune命令(之后存储库就变小了) $ restic -r /data/restic-repo prune enter password for repository: repository 33002c5e opened successfully, password is correct 如果有很多快照,就要按时间清理。如下命令,只保留最近7天、8周、以及每月一份的备份。 restic forget --dry-run --keep-daily 7 --keep-weekly 8 --keep-monthly 24 # 只保留两个快照 restic -r /backup/ forget --keep-last 2 --prune ===== 恢复快照 ===== # 恢复ID为79766175的快照, 也可以通过 latest 的参数恢复最后一个备份的快照 restic -r /srv/restic-repo restore 79766175 --target /tmp/restore-work ====== Rclone 备份 ====== 安装 rclone 工具 curl https://rclone.org/install.sh | sudo bash 直接搭配rclone:''%%restic -r rclone:foo:bar init%%'' Linux 下挂载的方法 (([[https://www.ioiox.com/archives/108.html|Rclone 安装配置及挂载 OneDrive]])) (([[https://qianjie.space/posts/1010525b.html#!|rclone安装]])) ====== OneDrive as FTP-Server ====== 利用 [[ https://my.couchdrop.io|couchdrop]] 将onedrive网盘变成一个ftp服务器。(([[https://community.couchdrop.io/hc/en-us/articles/360001241095-Microsoft-OneDrive-SFTP-FTP-SCP-and-Rsync|Microsoft OneDrive - SFTP, FTP, SCP and Rsync]])) # connect sftp sftp goldentianya@sftp.couchdrop.io # upload with scp scp newfile goldentianya@scp.couchdrop.io: # upload rsync rsync -a -e ssh newfile goldentianya@rsync.couchdrop.io: {{tag>文件系统}}