WordPress 文章转为 Markdown 格式

因为 WordPress 导出的文章是 xml 格式的文件,如果想转到其他博客平台的话非常不方便,所以想将 WordPress 的文章转换成 Markdown 格式的文件。

上网搜了一下有很多这种功能的工具,我用的是 Blogger to Markdown 这个工具。

这个工具使用很简单,如同自述文件里写的一样:

  • 下载这个项目压缩包并解压缩
  • cd 到该目录下
  • 运行 npm install 安装依赖
  • 运行 node index.js <arg>

因为我是要从 WordPress 导出为 Markdown 格式的文件,所以运行:

node index.js w your-wordpress-backup-export.xml out

稍等一会你的所有文章就都统一在 out 文件夹中生成了。

替换 Gravatar 头像

之前重新配置 WordPress 后曾经替换过 Gravatar 头像源,但是没有想到自己用的这个 WordPress 官方主题年份已经这么旧了,竟然还有更新,导致我写入 functions.php 内的代码被覆盖掉了,我之前的头像替换就丢失了。

因为之前有搜索过关于头像的插件但都没有找到简单、易使用的,有些插件不是太重、就是太旧,夹杂的东西很多都是用不上的,有的也跟我想要的纯粹的替换头像不太一样,所以就从网上搜索,自己再次替换 functions.php 这次并作一次记录,以防后续文件覆盖后丢失。

打开 functions.php 文件,并在文件内加入如下代码:

/**
 * WordPress 头像
 */
function theme_get_avatar( $avatar ) {
	$avatar = preg_replace("/\/\/(www|\d|secure|cn).gravatar.com\/avatar\//", "//cdn.v2ex.com/gravatar/", $avatar);
	return $avatar;
}

add_filter('get_avatar', 'theme_get_avatar');

这次使用的是 V2EX 的 CDN 服务,针对国内和国外线路都有优化,而且还支持ssl访问。

同时从网上搜索了几个支持 Gravatar CDN 的网址:

你还想知道……

WordPress 如何显示“链接”功能?点击查看解决方案

Docker Mysql 8 自动定时备份

自服务器重新维护以后,上一次的 MySQL 数据库定时备份由于直接写在 crontab 中,导致这次再次测试却一直也不好使,反而导致我测试浪费了好几天。

这回从网上找到了其他方法,我今天测试了一下已经能够正常自动定时备份了。

创建备份文件

mkdir /data/backup
cd /data/backup

编写备份脚本代码

vim backup.sh
#!/bin/sh
#-h 后面改为自己的ip
#-u 后面改为自己的数据库账号
#-p 后面改为自己的数据库密码,有字符需要加""
#demand_database改为你想要备份的数据库名称
echo "开始备份数据库";
#导出所有数据库 username 替换为自己mysql登陆名,password123登陆密码
## mysqldump -h106.14.XX.XXX -uusername -p"password123" --all-databases > /data/mysqlbackup/databaseName`date +%Y-%m-%d_%H%M%S`.sql;

#导出指定数据库并压缩
## mysqldump -h106.14.XX.XXX -uusername -p"password123"  demand_database| gzip > /data/mysqlbackup/databaseName`date +%Y-%m-%d_%H%M%S`.sql.gz;

#最近转投docker怀抱,本地不安装mysql时,采用docker的mysql备份,备份语句修改为
docker exec mysql sh -c 'exec mysqldump --all-databases -uUSERNAME -pPASSWORD --all-databases' > /data/backup/database_`date +%Y-%m-%d_%H%M%S`.sql;

# mysql 替换为对应的容器名
#删除 3 天前的备份文件

backupdir=/data/backup
db_name=databaseName_

find $backupdir -name $db_name"*.sql.gz" -type f -mtime +3 -exec rm -rf {} \;


echo "备份完成";

测试以上代码需要根据自己的需求进行相应修改。

更改备份脚本权限

chmod +x dbbackup.sh

使用 crontab 定时执行备份脚本

crontab -e

输入上面的命令后会进入 vim 编辑的一个文件,在上面写 cron 表达式 + 脚本地址就行了

测试 每 1 分钟执行一次:

*/1 * * * *  /data/backup/backup.sh

我设定每 12 个小时更新一次,添加如下代码:

0 0 */12 * * /data/backup/backup.sh

参照文章

MySQL8 定时备份数据库

docker MySQL数据库的备份与还原,以及每天定时自动备份