先在服务器 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
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 工具
curl https://rclone.org/install.sh | sudo bash
直接搭配rclone:restic -r rclone:foo:bar init
利用 couchdrop 将onedrive网盘变成一个ftp服务器。6)
# connect sftp sftp [email protected] # upload with scp scp newfile [email protected]: # upload rsync rsync -a -e ssh newfile [email protected]: