halo定时备份的方法
在网上查询了一下halo定时备份有三种方案:邮箱和Dropbox,以及github。
备份到QQ邮箱
安装邮件发送依赖组件
Centos 7
1 | yum install sendmail mailx -y |
Centos 8
1 | yum -y install postfix sendmail-cf mailx |
Debian
- 安装 mailtuils:
1
sudo apt install mailutils -y
- 安装postfix后缀:在安装过程即将结束时,您将看到一个类似于下图中的窗口的窗口。默认选项是
1
sudo apt install postfix
Internet Site
。这是本教程的推荐选项,请按TAB
,然后按ENTER
。
之后,您将获得另一个窗口,就像下一个图像中的窗口一样。该系统邮件名称应该是一样的,你分配给服务器,当你在创造它的名字。如果它显示子域subdomain.example.com
,请将其更改为ust example.com
。完成后,按TAB
,然后ENTER
。
修改附件发送大小限制
看下现在邮件的大小限制:
1 | sudo postconf message_size_limit |
差不多是10M,放大20倍,应该差不多了。
1 | sudo postconf -e "message_size_limit = 204800000" |
获得&编辑备份脚本
1 | wget https://raw.githubusercontent.com/iwyang/scripts/master/halo_email_backup.sh |
创建备份文件夹
1 | mkdir -p /home/back |
修改脚本
脚本原来模样:
1 | #!/bin/bash |
根据实际需求,改成下面模样:
1 | vi email.sh |
1 | #!/bin/bash |
上面代码中最后的rm -f web_$(date +"%Y%m%d").tar.gz
,表示删除本地的临时文件。
注意在Debian下要讲
-a
改成-A
(如下)
1 | - echo "Blog date"|mail -s "Backup$(date +%Y-%m-%d)" -a web_$(date +"%Y%m%d").tar.gz 455343442@qq.com |
设置定时任务
赋予文件执行权限
1 | chmod +x /root/email.sh |
运行的时候就输入下面的代码即可:./email.sh
设定自动任务
1 | crontab -e |
1 | 01 00 * * * /root/email.sh |
意思是每天凌晨0:01运行这个脚本。
备份到Dropbox
创建Dropbox应用
首先,需要创建一个Dropbox应用,可以从该网址进行创建:https://www.dropbox.com/developers/apps/create
在这里,应用类型选择Dropbox API
,数据存储类型选择App folder
,然后命名
创建。然后切换到Permissions
选项卡,勾选相应权限。最后记录下App key
,App secret
,下面要用。
下载dropbox_uploader.sh
dropbox_uploader 是一个第三方Dropbox备份脚本,首先下载脚本:
1 | curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh |
然后,为该脚本添加执行权限:
1 | chmod +x dropbox_uploader.sh |
执行该脚本,绑定APP:
1 | ./dropbox_uploader.sh |
在终端里输入App key
,App secret
,接着会返回一个网址,浏览器打开,复制得到的token
,最后在终端里完成绑定。
之后可以执行下面的命令测试上传,提示Done就是绑定成功了:
1 | ./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old |
如果报错unlink
,先执行命令rm ~/.dropbox_uploader
,删除相应文件夹,然后删除上面申请的APP。按上面的操作重新申请
APP、重新绑定,一般第二次申请就会成功。
编写备份脚本
编写定时备份脚本,取名为backup.sh
。代码原来模样如下:
1 | vi backup.sh |
1 | #!/bin/bash |
根据实际情况改成下面模样:
1 | #!/bin/bash |
先用$SCRIPT_DIR/dropbox_uploader.sh delete "$DROPBOX_DIR"
删除Dropbox
备份文件夹,再上传文件。这样就保证Dropbox
永远只有一个最新的备份文件,不用手动删除多余的备份文件了。
当然也可以通过脚本设置保留旧数据的时长。如下面一个脚本就是让旧数据在Dropbox保留7天,本地保留10天。(不过觉得没有必要,还是上面的方法简单,下面方法尝试过,老是出现问题,旧数据删除不了,不想折腾了)
1 | #!/bin/bash |
赋予文件执行权限
1 | chmod +x backup.sh |
运行的时候就输入下面的代码即可:./backup.sh
设置定时任务
1 | crontab -e |
1 | 02 00 * * * /root/backup.sh |
这样,就可以每天凌晨00:02自动备份到Dropbox了。
备份到github
准备工作
首先当然是在服务器上安装GIt
,配置ssh公钥
,并且在github
上添加服务器ssh公钥
。具体过程略。
初始化仓库
1 | cd /root/.halo |
注意要删除主题文件夹下的.git
文件夹,不然的话就无法备份主题了。当然也可以不备份主题,因为主题所有配置选项都在数据库里。如果这样的话,命令要作如下调整:
1 | git add application.yaml upload/ db/ |
设置定时任务
编写备份脚本
1 | cd /root |
脚本原来模样:
1 | #!/bin/bash |
根据实际情况修改如下:
1 | #!/bin/bash |
为了防止服务器里.git
文件夹过大,脚本可以作如下调整:
1 | #!/bin/bash |
赋予文件执行权限
1 | chmod +x /root/github.sh |
设定自动任务
1 | crontab -e |
1 | 03 00 * * * /root/github.sh |
意思是每天凌晨0:03运行这个脚本。
还原博客
1 | git clone git@github.com:iwyang/halo.git .halo |
接下来就是配置个 Java 环境,下载个 Halo 运行包,配置域名访问。具体可参考官方文档。
总结
halo
博客迁移后,最好删除logs
文件夹下的日志文件。
SCP命令
下载文件
从服务器下载文件到本地,在Git Bash
执行:
1 | scp root@104.224.191.88:/root/.ssh/mysite ssh |
意思是将服务器/root/.ssh
目录下的mysite文件复制到当前路径下ssh
文件夹下。
上传文件
从本地上传文件到服务器,在Git Bash
执行:
1 | scp .halo.zip root@137.220.43.191:/root/ |
意思是将当前目录下.halo.ip
文件上传到服务器/root/目录下
。
wordpress相关
wordpress常用mysql命令
1 | # 1.删除数据库 |
Debian 10 五分钟/一键安装Wordpress
1 | #Debian8下载脚本 |
命令列表
1 | bash tylemp.sh system # 优化系统,删除不需要组件,dropbear替代sshd |
修改 WordPress 上传文件大小限制
1.查找php.ini配置文件
1 | find / -name "php.ini" |
会出现两个结果,修改类似/etc/php/7.3/fpm/php.ini
2.修改 php.ini
1 | vi /etc/php/7.3/fpm/php.ini |
在其中搜索并修改以下配置:
1 | upload_max_filesize = 512M |
这里配置上限为 512 MB,同时增加了最大处理时间。
3.修改 nginx.conf
1 | vi /etc/nginx/conf.d/blog.bore.vip.conf |
在 http
或 server
配置下添加
1 | client_max_body_size 512M; |
这里配置上限为 512 MB。
4.重启nginx和php
1 | service nginx restart |
nginx
: command not found 解决方案
只需要输入source /etc/profile
,让配置文件重新生效一下即可。
参考链接
- 1.Linux 每日自动备份到FTP及数据库通过邮箱发送方法
- 2.fetchmail: SMTP error: 552 5.3.4 Message size exceeds fixed limit
- 3.如何将服务器上的网站数据定时自动备份到Dropbox
- 4.Linux 定时备份服务器/网站数据到Github私人仓库
- 5.MySQL 教程
- 6.Changing the WordPress site URL using the MySQL command line
- 7.CentOs8系统安装mailx发邮件
- 8.Impossible to unlink
- 9.如何在Debian 9上安装和配置Postfix作为仅发送SMTP服务
- 10.Debian LNMP/LEMP/WordPress一键脚本
- 11.修改 WordPress 上传文件大小限制