如何为discourse开启Onedrive同步网站备份
Google Drive和DropBox我就不写了,discourse有它们两的官方插件,没必要用我这种方法。
主要是针对有的人开了Office365的家庭版,有个1T又用不完那种(比如我)。
原理其实很简单,说穿了不是什么太复杂的东西,但不说可能知道的人就比较少。
记得上一篇文章里我提到过,discourse的论坛数据都是储存在docker外的,即/var/discourse/shared这个路径,那么巧了,备份的路径就在这个 /shared/bakcups/default 里。那么已知discourse可以让论坛自动定时备份,并且备份的路径在服务器可访问,求:如何使用onedrive自动把这些备份好的文件上传到onedrive呢?
装一个onedrive for Linux不就好了吗。(笑)
https://github.com/abraunegg/onedrive
我用的是这个。
Ubuntu/Debian都有对应的包,不用你自己累死累活去编译。
装完之后别动东西,然后去 /etc 目录下 mkdir 一个 onedrive 文件夹,然后进入这个文件夹之后wget它默认config也好,vi config自己贴进去也好都可以,然后把路径指向 /var/diacourse/shared/backups/default ,最后把upload only和no remote delete设置为true,然后直接在命令行里敲onedrive,把给你的url在浏览器打开,登录再把空白网页的授权url剪切下来贴进去,你的onedrive就完成授权了。
此时你可以直接 systemctl –user enable onedrive 和 systemctl –user start onedrive配置开机自启和启动服务了。不出意外的话,当你过5分钟再 systemctl –user status onedrive的时候,它就会显示onedrive在后台默默帮你上传文件了。
对了,onedrive默认设置是5分钟检测一次变化,你可以自己调,调快测试或者调慢用于生产环境都行,随你。
再说个小细节,vi launcher里按/然后输入512m,前面加个 -v outside/path:docker/path 就可以自己指定backups和upload的路径。
有什么疑问欢迎各位发邮件来与技术人员交流心得。