关于Prism Syntax Highlighter中Command Line插件的配置教程

Prism Syntax Highlighter是一款wordpress中的代码高亮插件,奶牛非常喜欢它的Command Line功能,但是默认集成的情况并不好,奶牛就自己查看代码来处理了一下。我们先看看效果吧。

正常带行号格式:

这是第一行文字
这是第二行文字
这是第三行文字

Bash命令格式:

uname -a
ifconfig
ls

Bash命令带输出格式:

uname -a
Linux nenew.net 4.15.0-041500-generic #201801282230 SMP Sun Jan 28 22:31:30 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:36614 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36614 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18070026 (18.0 MB)  TX bytes:18070026 (18.0 MB)

使用行号的时候格式:

Output Lines:2,4-11

这就可以设置为单行或者多行同时输出显示了。

插件下载地址:Prism Syntax Highlighter

修改后的editor-plugin.js文件下载:editor-plugin.js

安装插件后替换掉其中的./assets/editor-plugin.js文件,然后在插件的设置页面中激活功能即可实现bash的命令行和行号的输出功能。

Ubuntu安装配置Linux性能实时监测工具NetData

最近测试了ntopng,虽然普通版本的也还凑合,但是还是企业版的实时展示奶牛更喜欢,可是普通版本就没有实时功能了,所以就又找了一下,发现在github上这个netdata的star最多,目前已经达到了28.9K,感兴趣的朋友可以去https://github.com/topics/monitor看看。

言归正传,奶牛来说说netdata的安装过程。

安装:

curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata-all

安装netdata编译所需组件,这里奶牛以全监控安装方式安装

git clone https://github.com/firehol/netdata.git --depth=1
cd netdata
./netdata-installer.sh --dont-start-it

这里根据提示进行安装即可,安装完成后我们可以通过service netdata start 来启动。

配置:

这里有个有趣的现象,在/etc/netdata/netdata.conf文件中并没有配置选项,而是需要从web下载配置文件,当然这个web是localhost了。

#  wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
#  curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf

所以呢,就按照这个说明把netdata.conf文件下载下来就可以配置了。

在此,奶牛更希望我们以反向代理的方式进行访问netdata,所以奶牛并不推荐直接将netdata端口暴露出来,所以我们将netdata.conf文件中的

[web]
	bind to = 127.0.0.1

修改为绑定到本地地址。最后我们可以通过Nginx反向代理来进行访问,或者如果你不介意,不这样配置也无所谓。

VPS磁盘空间大小调整小记

MySQL的日志文件又一次把奶牛博客的磁盘撑爆了,今天一下班发现网站挂了,然后ping还可以通,就进ssh看看究竟,然后很无语,mysql无法关闭也无法启动,df -h看了一下,发现/目录已经爆满。之前已经遇到过一次这种情形了,所以直接去看MySQL的日志文件,果然,几个G在那里堆着,删删删,反正也懒得去分析日志找原因了。删了之后发现/目录还是占用了近80%的空间,呃,这就有点儿纠结了吧,然后仔细看了一下df -h,我去,VPS还自带分区的,两块盘,一块30G的盘竟然挂载到了/mnt目录下,好吧,还有这种玩儿法。然后就想把这个vdb的硬盘给挂载到/目录下,但是回头一想,LVM貌似也不合适,没法直接加的,因为/是vda1这个主分区在挂载,所以,好吧,直接把vdb分给/usr目录吧,反正一般的东西也就扔这里面的,比如那个可恶的MySQL日志文件。

cp -Rf -p /usr /mnt

其中的-p参数是为了保证文件的uid和gid都保持不变,当然,这里是使用root帐号来操作的。

然后

umount /dev/vdb
mount /dev/vdb /usr
df -h

查看下确实挂载没有问题了,然后程序也都正常运行,之后再修改fstab

vim /etc/fstab

将原先挂载在/mnt目录下的vdb修改为挂载在/usr目录下。

最后再说下MySQL的日志,配置文件在/etc/my.cnf下,可以进行自动过期处理等操作,也可以直接注释掉不记录日志。

Vultr最新活动$5美元玩儿一年VPS

最近的云主机活动挺多的,鲨鱼家的独服$59美元一年,Vultr又来了个$5美元可用一年VPS。根据Vultr官方的配置

1 CPU 512MB Memory 
20 GB SSD
500GB Bandwidth 
$2.50/mo

活动的价格是充值$5美元获得$25美元的帐号奖励,总共$30美元,用最低配置可以用12个月。而且Vultr还有个好处,就是可以随时删除实例,重建实例,这样子IP就可以随便换了,而且还有15个机房可选,性价比还是很高的。

此次活动仅限新帐号,注册地址:Vultr官网

活动代码已经包含在Vultr官网链接中。

 

Nginx强制http跳转至https

奶牛启用https后发现还是在http和https共存的时候出现一些小问题,遂决定使用Nginx强制跳转https。

vim /usr/local/nginx/conf/vhost/nenew.net.conf

在配置文件的listen 80这段中插入语句

rewrite ^(.*)$  https://www.nenew.net$1 permanent;

然后重启Nginx即可。

Ubuntu安装goaccess进行Nginx日志分析

今天测试了一下goaccess,但是感觉并没有想像的那么好,也没详细考证config文件的配置,就默认配置来说,可能奶牛想要的关键词统计并没有在上面,好吧,还是记录一下安装过程吧。这里奶牛以Ubuntu server为例,以Nginx作为web服务器进行配置。

apt-get install libncursesw5-dev libgeoip-dev
mkdir goaccess
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8 --enable-geoip=legacy
make
make install

这里我们就完成了goaccess的安装,下面进行config文件的更改,位置为/usr/local/etc//goaccess.conf

vim /usr/local/etc/goaccess.conf
log-format COMBINED

将log文件的格式设置为COMBINED。

最后goaccess就可以使用了。在wwwlogs目录下

goaccess access.log -o report.html

然后我们就可以通过report.html来查看统计信息了。

 

军哥LNMP下typecho的rewrite配置隐藏index.php

最近新建了站点优推网并且开始使用typecho,安装配置过程中发现自带的rewrite无法隐藏index.php,解决方案是修改

/usr/local/nginx/conf/vhost/www.affu.net.conf

配置文件,将include enable-php.conf;修改为include enable-php-pathinfo.conf;

然后再在typecho的设置中启用固定链接即可正常显示。

最近打算将博客转入Sharktech的服务器,并且将使用7年的wordpress更换为typecho,wordpress不可说不好,但是现在感觉太臃肿了,对于一个写博客的感觉还是不太需要这么臃肿,轻便最好,再续…

Ubuntu下安装Intel 9260AC无线网卡教程

奶牛很久没有写ubuntu的文章了,虽然自己的服务器依然是使用ubuntu server,但是比较懒,也没有太多折腾,今天记录一下intel最新的9260ac无线网卡在ubuntu下的安装与使用。

Intel的中文支持页面更新还是有些缓慢,所以驱动程序我们可以在英文页面找到。Linux* Support for Intel® Wireless Adapters

官方页面给出的安装介绍如下

To install firmware:

    Copy the files into the distribution-specific firmware directory, /lib/firmware.
    If the directory does not work, consult your distribution documentation.
    If you configure the kernel yourself, make sure firmware loading is enabled.

首先是下载驱动程序:Intel 9260AC驱动

官方提到intel无线网卡驱动是依赖iwlwifi来加载驱动的,但是安装官方的方法将驱动文件解压后拷贝至/lib/firmware文件夹中重启是无法实现加载的,至少奶牛这里不行,也许你们把内核更新到最新大概可能会实现自动识别吧,但是奶牛把自己折腾的过程分享下。

DeviceKernelsFirmware
Intel® Wireless-AC 92604.14+iwlwifi-9260-th-b0-jf-b0-34.618819.0.tgz

官方的说明是内核要在4.14+,现在内核已经到了4.15RC版本了,4.14也更新到了4.14.10,奶牛第一次是安装的4.14版本内核,结果发现设备可以识别了,但是无法使用。然后找到iwlwifi的支持页面

页面中又说到iwlwifi-fixes with fixes for the current kernel release cycle,所以我们又去看iwlwifi-fixes,在2017-12-05这天更新了内容iwlwifi: add new cards for 9260 and 22000 series

好吧,看样子内核需要在12.05之后,奶牛这里安装的是4.14.10,看日期4.14.04也是12.05日,所以就索性当4.14.04之后的内核版本才支持吧。更新内核也很简单

mkdir kernel
cd kernel
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.10/linux-headers-4.14.10-041410_4.14.10-041410.201712291810_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.10/linux-headers-4.14.10-041410-generic_4.14.10-041410.201712291810_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.10/linux-image-4.14.10-041410-generic_4.14.10-041410.201712291810_amd64.deb
dpkg -i *.deb

奶牛这里是安装的64位ubuntu操作系统,32位操作系统的同志自己去http://kernel.ubuntu.com/~kernel-ppa/mainline下面找对应的内核版本就好了。

更新内核后重启系统,安装wicd进行无线网卡管理,不要问奶牛为啥要装wicd,因为奶牛发现系统自带的那个管理器还是识别不了。。。好吧,就此折腾完毕。

 

 

关于bench.sh网站的实现

最近看到一条命令很有意思,一起来和大家解读一下,这个网站就是bench.sh

可能搞VPS的朋友很熟悉一条命令

wget -qO- bench.sh | bash

用这条命令可以直接实现linux下运行bench.sh的命令,刚开始奶牛也挺疑惑的,难道wget还自带这种功能,其实不然,命令中的bench.sh是个网站,对,是个网站,访问网站我们可以看到如下提示:

嗨!欢迎使用 Bench.sh

你可以使用以下命令来查看您的 Linux 系统信息,还可以测试网络带宽及硬盘读写速率

wget -qO- bench.sh | bash

或者

curl -Lso- bench.sh | bash

有意思的事儿发生了对么?为什么我们访问网站和我们wget得到的效果不同?因为网站对于user agent进行了识别。如果我们在命令行中执行

wget -O- bench.sh

我们可以看到如下结果:

Resolving bench.sh (bench.sh)... 149.202.55.78
Connecting to bench.sh (bench.sh)|149.202.55.78|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://86.re/bench.sh [following]
Resolving 86.re (86.re)... 104.224.156.154
Connecting to 86.re (86.re)|104.224.156.154|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7017 (6.9K) [application/x-sh]
Saving to: 'STDOUT'

好了,我们看到了一个302的字眼,这个是通过重定向来实现的,直接将使用wget和curl的user agent重定向到了http://86.re/bench.sh这个文件,所以我们wget或者curl得到的是这个文件。这里奶牛猜测原作者应该是用rewrite来写的,直接用web服务器进行ua判定之后rewrite到了这个文件。

奶牛的文章到这里并没有结束,来想想还除了rewrite还有没有其它的实现方法?奶牛感觉还有至少两种实现方法,反代可以实现,还有直接在服务器内进行根目录的重定向也可以实现。奶牛就把后者的实现过程来说一下。web服务器奶牛用的nginx。对网站conf进行配置修改:

server
    {
        listen 80;
        #listen [::]:80;
        server_name bench.2fu.org ;
        set $target bench.2fu.org ;
        if ( $http_user_agent ~* "(wget)|(curl)" )
        {
                set $target bench.2fu.org/true ;
        }
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/$target;

        include none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/bench.2fu.org.log;
    }

然后将true目录下建立一个index.html然后内容就是bench.sh。这样实现的效果是:

Resolving bench.2fu.org (bench.2fu.org)... 
Connecting to bench.2fu.org (bench.2fu.org)|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7017 (6.9K) [text/html]
Saving to: 'STDOUT'

没有302,奶牛更喜欢200 OK 。其实nginx服务器要是折腾折腾配置也很有意思。

 

 

Wayback Machine网页时光机,带你重回过去

Wayback Machine 网页时光机,是一个网页快照,可以带你重回过去的页面,奶牛也测试了一下,从2010年到现在的很多快照都保存着,看看当时的UI当时的评论,可能也是种美好的回忆吧。