restic是用golang编写的,只需要下载预编译文件放到环境变量即可
https://restic.net/#installation
使用前:
- 备份前先确定一个储存方式,restic支持本地文件系统备份,或者oss之类的云储存备份,还有ftp,sftp之类的
- 确定一个备份密码,你的备份会被加密储存,这个不可以跳过,希望你不要忘记你的备份密码
- 将储存方式写到环境变量,例如~/.bashrc 或者 ~/.profile中,例如本地储存 或者 oss (记得替换方括号和尖括号的部分)
1
2export RESTIC_REPOSITORY="/backup/restic-repo"
export RESTIC_PASSWORD="my@backup@password"不要忘记执行 source ~/.bashrc 使变量生效,或者你退出终端重新进入也行1
2
3
4export RESTIC_REPOSITORY="s3:https://[oss-cn-shenzhen.aliyuncs.com]/<bucket-name>/[path]"
export AWS_ACCESS_KEY_ID="<ACCESS_ID>"
export AWS_SECRET_ACCESS_KEY="<ACCESS_KEY>"
export RESTIC_PASSWORD="my@backup@password" - 现在,你可以执行restic init 来初始化你的储存
- 备份一个路径很简单,使用 restic backup /data/my-path 或者 cd /data; restic backup my-path 都是等效的,在restic中一次备份快照将被绑定到3个数据维度,host+path+time 另外还有一个可选的tag
- 要在crontab中定时备份,请使用这样的格式,不然restic将会找不到储存
1
01 6 * * * . ~/.bashrc; restic backup /path/to/my-file
注意
restic不会去备份软连接的目标文件,例如你的/etc/nginx是从/usr/local/nginx/etc 链接的
当你执行restic backup /etc/nginx 后,你将只备份了一个软连接,而不是nginx的配置文件夹