分类 Internet 下的文章

Typecho 主题自动切换夜间模式

20190813163648.png

晚上 22 点之后人类的眼睛会随着夜晚越深越不习惯刺眼的光亮,也为了给大家一个更好的夜晚阅读体验,简单上线了一个夜晚 CSS 样式切换。

根据规定时间自动切换,简单高效。

<?php
      date_default_timezone_set('PRC'); 
      $hour = date('H');   
      if($hour > 6 && $hour <= 22){   
        echo ' ';   
      }else{
        echo '<link href="night.css" rel="stylesheet"/>';   
    }
    ?>

代码放置 header.php 文件。

自行添加夜间 css 样式,以及什么时间段加载,这是全自动的。

「瞎折腾」归档页面增加分页极简样式

arc.png

随着网站文章增多,归档页面的文章标题也越来越多,从头到尾标题拉的太长影响体验,就想修改一下展示样式。

google 搜索了也找不到网上现成的 typecho 归档插件支持分页功能,找了几个人修改归档插件报价 1K 起步,报价已超出我 300 元的预算。

期中做的时候碰到不少壁,因为我不太懂 php 语言(世界上最好的语言),只做出了分页雏型,存在较多的 BUG,咨询了朋友也得到技术支持,才在原版上修复了 BUG,增加了 CSS 样式跟首页分页一样。

简约风格,就是好。

修复记录:

修复归档页面点击标题无法跳转 BUG。「2019.7.28」

增加归档页面独立 CSS 样式(不影响其他页面)「2019.7.28」

删掉旧分页源码,利用 PHP 正则表达式重新构思分页导航,更高效。「2019.7.29」

技术支持:Chn-student / vircloud.net

新玩具:天梭(TISSOT)手表 2018 环法自行车特别款

20190715123559.jpg

售价:3850 元,购于澳门天梭手表专柜,全球联保两年,真是太棒了!

从2017年开始就一直迷恋于天梭环法系列的手表,自己也是自行车运动爱好者。

虽然说,天梭算不上特别上档次的高端腕表品牌,但却绝对是100%的、实打实的、有历史内涵的老牌瑞士手表品牌。

备份:使用定时任务 cron 监视 Shadowsocks 进程

shadowsocks.png

有时候我们需要监视一下某个进程的持续运行,当遇到某种不可控因素导致进程被杀掉的情况下,就需要自动重新启动,以保证服务的可持续性。

比如,监控 Shadowsocks 服务端的运行状态。

于是写了个监视脚本 shadowsocks-crond.sh,自动监视,一旦发现进程不存在便会重新启动。每次监视事件都会写入日志。

下面介绍安装和使用步骤。

一、下载安装

首先需要将脚本下载到某个固定路径下,比如 /opt 下,再赋予执行权限。

执行以下命令:

wget --no-check-certificate -O /opt/shadowsocks-crond.sh https://down.inwao.com/Bash/shadowsocks-crond.sh

chmod 755 /opt/shadowsocks-crond.sh

二、检查 cron 进程

执行以下命令,检查 cron 进程是否存在:

ps -ef | grep -v grep | grep cron

如果存在返回值,则表示 cron 已经正确安装并处于启动中。

否则,则需要安装 cron。

CentOS/Redhat/Amazon 执行如下命令:

yum install -y crontabs

Debian/Ubuntu 执行如下命令:

apt-get install -y cron

三、配置 cron 计划

假设监视脚本路径就是 /opt/shadowsocks-crond.sh

假设设为每 5 分钟监视一次。

那么配置 cron 计划如下:

(crontab -l ; echo "*/5 * * * * /opt/shadowsocks-crond.sh") | crontab -

以上表示,在保留原有的 cron 设置的前提下,追加设置

*/5 * * * * /opt/shadowsocks-crond.sh

即每过 5 分钟,执行一次脚本 /opt/shadowsocks-crond.sh

这样系统便会每 5 分钟检查一下 Shadowsocks 进程是否存在,如果不存在了会自动重新启动。

脚本每次运行会写日志的,日志完整路径如下:

/var/log/shadowsocks-crond.log

备份:Shadowsocks 一键安装脚本(四合一)

20180709153125.png

本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+

内存要求:≥128M

关于本脚本

1、一键安装 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四选一)服务端;

2、各版本的启动脚本及配置文件名不再重合;

3、每次运行可安装一种版本;

4、支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同);

5、若已安装多个版本,则卸载时也需多次运行(每次卸载一种);

默认配置

服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)

密码:自己设定(如不设定,默认为 teddysun.com)

加密方式:自己设定(如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb)

协议(protocol):自己设定(如不设定,默认为 origin)(仅限 ShadowsocksR 版)

混淆(obfs):自己设定(如不设定,默认为 plain)(仅限 ShadowsocksR 版)

备注:脚本默认创建单用户配置文件,如需配置多用户,请手动修改相应的配置文件后重启即可。

使用方法

使用root用户登录,运行以下命令:

wget --no-check-certificate -O shadowsocks-all.sh https://down.inwao.com/Bash/shadowsocks-all.sh

chmod +x shadowsocks-all.sh

./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

安装完成后,脚本提示如下

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method
...
Welcome to visit:https://teddysun.com/486.html
Enjoy it!

卸载方法

若已安装多个版本,则卸载时也需多次运行(每次卸载一种)

使用root用户登录,运行以下命令:

./shadowsocks-all.sh uninstall

启动脚本

启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

Shadowsocks-Python 版:

/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:

/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:

/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:

/etc/init.d/shadowsocks-libev start | stop | restart | status

各版本默认配置文件

Shadowsocks-Python 版:

/etc/shadowsocks-python/config.json

ShadowsocksR 版:

/etc/shadowsocks-r/config.json

Shadowsocks-Go 版:

/etc/shadowsocks-go/config.json

Shadowsocks-libev 版:

/etc/shadowsocks-libev/config.json

各版本所对应的操作系统:

Auto Install Shadowsocks(Python) Server for CentOS/Debian/Ubuntu

Auto Install Shadowsocks(libev) Server for CentOS

Auto Install Shadowsocks(Go) Server for CentOS/Debian/Ubuntu

Auto Install ShadowsocksR Server for CentOS/Debian/Ubuntu