跳到内容

文章类别:维护日志

应对网络变化,加快WordPress载入速度

最近由于众所周知的原因,Google访问出现问题,一部分用户可能发现WordPress似乎跟着躺枪了,本人也是其中的一员。

使用Chrome浏览器按F12调出开发工具,切换到“Network”页面,点击“Timeline”列,切换成“Duration”,这样可以查看网页元素载入时间,如图:

googlefonts

可以看到有个fonts.proxy.ustclug.org的文件载入时间足足有一分钟,而这个文件恰好又是在<head>引用的,这就导致页面打开时长时间无显示,点击文件链接可以看更详细的信息,如图:

googlefonts2

看来应该是一个字体文件,不过本博客好像没有使用这个“open sans”字体,在主题里面找了半天也没有找到是什么地方载入了这个文件,就直接用命令行查找了,命令如下:

#先切换到wordpress目录底下
grep -Rn 'fonts.proxy.ustclug.org' *

googlefonts4

然后就列出了两个文件,仔细对比一下链接就确定了是下面这个文件:
/wp-includes/script-loader.php(WordPress版本3.9)

打开查找“fonts.proxy.ustclug.org”就找到了一大段程序,如图:

googlefonts3

其实有个简单的修改方法,把圈里的on改成off就行了。

另外,如果你用了别的主题,可能在上面用命令的时候会有很多结果,请视实际情况进行更改。

查看内存/CPU使用

最近发现博客变得好慢了,看内存,512MB的小内存吃的差不多了,就想看一下是哪些进程把内存用了。

#查看CPU使用:

top
#然后按大写P按照CPU使用率排序

#或者

ps -aux | sort -k3nr | head -n 10 #显示前10个CPU使用最多的进程

#查看内存使用:

top
#然后按大写M按照内存使用率排序

#或者

ps -aux | sort -k4nr | head -n 10 #显示前10个内存使用最多的进程

发现是web服务吃内存了,果断把一个测试用的虚拟主机停了,然后重启了nginx、PHP和MySQL.

然后感觉整个人都变精神了 :smilies24:

悲剧,被狂灌一千条垃圾评论

博客迁移之后在后台自动升级了一次,

当时没注意,评论文件wp-comments-post.php忘了删除了,然后就被灌垃圾评论了。

现在使用的Willin Kan的comments-ajax.php,可以不用原来带的评论php文件,这样就可以防止大量的机器发表垃圾评论。

comments-ajax.php据说是有漏洞的,不过暂时先这样,就留个坑吧。

终于喜闻乐见的恢复了

这篇文章用一个代表就是“喜”。

之前博客一直放在学校工作室里的一台PC上,有时候会出现死机、停电、断网等各种情况,博客就不能访问了,最后一从不知怎么就开不了机了,据说是分辨率什么的问题,远在天边只能另找主机了。

虽然设置了自动远程备份,单恰好那一天我写了一篇文章没有备份到,迁移到现在的主机就损失了那一篇文章,本来想重写,结果现在记不起写的什么了,总之不管了。

具体迁移什么的,还有恼火备案在另一篇里面说吧。

自动备份网站文件和数据库

前几日博客挂了,为了保护数据,避免再挂了导致很久不能访问或者数据丢失,自己整一个数据备份.

1,将网站文件tar打包压缩.

2,将网站数据库用mysqldump备份.

3,然后用scp把文件和数据库传到另外的机器上,为实现scp免输秘密,制作一对密钥.

4,删除本机上的备份文件.

5,删除远程机器上的超过30天的备份.

6,输出备份完成时间

将以上六个步骤写成shell脚本,然后用crontab定期执行shell脚本.

首先制作密钥,为了方便,路径和短语全用默认设置,在发起scp的机器上,用要发起scp的用户执行:

ssh-keygen -t rsa

公钥被写入 ~/.ssh/id_rsa.pub,密钥被写入 ~/.ssh/id_rsa只有该用户能使用这对密钥.然后把公钥scp传到被连接的机器上,的家目录中的.ssh中:

scp 家目录.ssh/id_rsa.pub 接收用户@接收IP:家目录/.ssh/authorized_keys

然后用mysqldump备份数据库:

mysqldump -u用户 -p密码 数据库 > 目标文件

然后打包压缩网站文件:

tar -zcf 生成的文件 要备份的目录

然后把数据库和文件备份scp到别的机器上,这个时候因为有密钥,就不用输密码了,可以写在shell中执行.
定期执行shell:

crontab -e

内容如下:

# m h dom mon dow command
0 3 */2 * * /脚本目录/脚本 1>>/日志目录/日志文件 2>&1
#每两天3点执行一次,如果有输出,输出到指定文件

下面附上脚本代码:

#!/bin/bash

# 1,备份数据库
mysqldump -u用户 -p密码 数据库 > /目录/文件名-`date +%y%m%d`.sql

# 2,备份网站文件
tar -zPcf /目录/文件名-`date +%y%m%d`.tat.gz /目录

# 3,传到指定服务器上
scp /目录/文件名-`date +%y%m%d`.tat.gz 用户@IP:/目录
scp /目录/文件名-`date +%y%m%d`.sql 用户@IP:/目录

# 4,删掉本地临时文件
rm -rf /目录/*

# 5,远程删掉超过30天的文件
ssh 用户@IP "find /目录 -mtime +30 -exec rm -rf {} \;"

# 6,输出完成
echo "backup done at `date +%Y-%m-%d-%T`"