koolshare中定时监控docker服务启动情况

koolshare的软件中心增加了docker插件,这样我们就可以运行一些容器了。但该插件目前存在两个问题:

  1. 启动时无法自动启动docker服务或docker服务启动失败。原因未知,需要手动在网页上docker页面点击提交才可以启动。
  2. docker服务偶尔会挂掉。原因未知。

我们需要做的是定时检测docker服务是否启动,如果挂了,则重启服务。
当docker服务正常运行时,会存在文件/var/run/docker.sock。docker插件的启动命令为/koolshare/init.d/S99docker.sh start
这样我们可以写出crontab定时检测语句:

* * * * * test -e /var/run/docker.sock || /koolshare/init.d/S99docker.sh start

每分钟执行一次。将该语句写入“系统”——“计划任务”,提交即可。
file


我们常用的还有koolss插件,这个插件经常在我们设置防火墙后或重新拨号后失效,需要重新连接。我们可以用类似的检测方法,定时检测插件是否生效,在失效时将其重启。

* * * * * test <code>curl -o /dev/null -s -m 10 --connect-timeout 5 -w %{http_code} 'https://www.google.com.tw'</code> -ne 000 || /koolshare/init.d/S99koolss.sh start

由于插件问题,`号被显示为<code>,请自行替换。

docker下ElasticSearch的坑之重启物理机

重启物理机后,容器无法正常启动,提示:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

官方文档只有设置sysctl -w vm.max_map_count=262144,然而该设置在重启后会被重置,于是我们要将该设置固化:

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

2019年7月25日

某文章被阿里云警告,已隐藏。该文章没有违法任何法律法规和公共道德😓。

已经2周没有在leetcode上答题了,真是懈怠啊。这周不能跳过了。

Windows Server远程桌面字体模糊的解决办法

字体模糊的原因

曾经使用不同缩放比例的客户端访问远程桌面。
例如先在125%缩放比例的系统访问远程,再在100%缩放比例的下访问远程,字体自然就模糊了。

解决方法

在服务端桌面上右键——显示设置——显示——高级缩放设置——允许Windows尝试修复应用,使其不模糊——开。
这样就可以修复大部分程序字体模糊的情况。剩余程序只需要重启程序即可。
例如设置完成后,任务栏字体还是模糊,我们可以在任务管理器里重启explorer

CentOS7释放/home分区的方法

光盘版CentOS7在默认安装的情况下,只为/分配50G,其余的空间都给/home了。今天我正好有需求,要把/home分区释放,空间全部转移给/。只需要输入如下命令:

umount /home
lvremove -f /dev/mapper/centos-home
lvresize -l +100%FREE /dev/mapper/centos-root
xfs_growfs /dev/mapper/centos-root

WordPress迁移中产生的一些问题

前几天,我更改了wordpress的ssl证书生成方式,于是噩梦开始了。
由于我的wordpress是用docker容器搭建的,结果重建容器后,wp-config.php文件也被重置了。看来挂载/var/www/html文件夹是非常必要的。

无限重定向

不知道为什么wordpress为什么不默认支持https,需要在wp-config.php头部添加:

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

这样就能正常进入网站了。

WP Statistics(统计)插件和评论显示IP错误

一般使用反向代理或CDN后,显示正确的评论IP只需要在wp-config.php头部添加:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
}

然而WP Statistics 12.6.3 中,这个设置并不奏效。我调试了一番后,发现插件获取IP用的既不是REMOTE_ADDR,也不是HTTP_X_REAL_IP,而是HTTP_X_FORWARDED_FOR的最后一个IP。真不知道作者是什么思路写下这种bug。
为了防止作者再写出别的bug,我直接伪造所有IP信息,把上面的代码修改为:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
  $_SERVER['HTTP_X_REAL_IP'] = $list[0];
  $_SERVER['HTTP_X_FORWARDED_FOR'] = $list[0];
}

丢失操作前的文章

谁叫你不勤备份啊!修改服务器前一定要备份。