Mongo常用命令记录

导出

mongoexport -d db_mongo -c news -f title,date,contents,rawtag -o ~/news.json

导出使用mongo自带的mongoexport命令,参数解释如下:

-d:数据库名称

-c:集合名称

-f:字段名,不指定则为全部

-o:输出文件

导入

导出通常是在服务器上的操作,然后scp到本地,如果文件过大,首先要压缩一下

tar -czf news.tar.gz -C /home/kevin news.json

-c:创建压缩文件

-z:使用gzip压缩

-f:使用文件归档

-C:指定文件目录 …

➟ 查看全文

多Shadowsocks服务器负载均衡

玩翻墙主机的人哪个没有好几个小鸡,所以多主机负载均衡访问这个需求应运而生,开源软件界当然已经有可以解决这个问题的软件——Haproxy

HAProxy是一个使用C语言编写的基于TCP和HTTP的应用程序代理,其提供高可用性、负载均衡。

整套系统的流程如图

流程图

Haproxy

安装就不必多讲了,直接看看配置文件,默认在/etc/haproxy/haproxy.cfg

global
    log /dev/log local0
    log /dev/log local1 notice
    user root
    group root
    daemon

defaults
    log global
    mode tcp
    timeout connect 5s
    timeout client 5s
    timeout server 5s
    option      dontlognull
    option      redispatch
    retries …
➟ 查看全文

Netlify全自动部署静态博客

netlify

Netlify是一家位于旧金山的云计算公司,为静态网站提供托管和无服务器后端服务。 它具有Git在全球应用交付网络中的持续部署,无服务器表单处理,对AWS Lambda功能的支持以及与Let’s Encrypt的完全集成。它提供免费和付费计划。 维基百科(英文)

在之前,我使用Python写的Pelican程序生成静态博客,然后托管到Github Pages。长期使用这个组合后,发现这样有很多缺点:

  1. github pages在国内访问速度较慢,有的地方甚至给屏蔽掉了。

  2. 使用免费版cloudflare加速效果并不明显,要调教的东西还很多

  3. 跨平台非常麻烦,因为github pages只接受output文件夹(只包含HTML),其余的环境还需要建个仓库备份起来。

在了解了Netlify的作用之后,我发现网上写的教程都是怎么把它当做一个静态环境使用,也就是类似于github pages,完全忽略了他的自动部署功能,然而这个功能才是我迁移到Netlify的最大理由。下面说说怎么一步步完成迁移。

一、在github新建一个repo

我之前的博客就是托管在github的,但是原来的是github pages,原来的仓库里只有静态html,而新建的这个仓库将来会把所有环境放进去,让Netlify帮我自动生成静态文章。

新建好后就先放在那,最后才会用到。

new repo

二、本地新建模拟环境

我自己的Python环境是3.7.1,Netlify当前对Python的最高支持版本是3 …

➟ 查看全文

tshark常用命令详解

Wireshark简介

Wireshark 是一款免费开源的包分析器。可用于网络排错、网络分析、软件和通讯协议开发以及教学等。tshark是wireshark的cli版本

安装

Archlinux

yaourt -Syu wireshark-cli

Debian

apt-get update
apt-get install tshark

查看权限

$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

dumpcap的位置也可能在/usr/sbin/dumpcap,如果输出结果不像上面那样,则还需要设置权限

# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/dumpcap

把用户添加至wireshark用户组

# gpasswd -a username wireshark

切换至新用户组

$ newgrp …
➟ 查看全文

充值卡折现价值分析

前几天,媳妇把收到的一条短信转给我,问我值不值,我的第一反应当然是不值,这种预存方式都是欺负不懂时间价值的人玩的把戏。为了说服她,特地手算折现,但是发现,嗯?好像还是挺值的啊。于是就有了这篇文章,把计算的完整思路和代码贴出来。

message

注:计算全部使用年华利率按月折现

求真正价值的思路很简单,

真实价值 = 充值卡的标称价值向后折现再折回\(T_0\) - 付出的价格按类似年金的方式收息后把总利息折回\(T_0\)时刻

代码如下:

def calculate_value(month_after_use, year_yield, price, value, printlog=True):
    cash_flow = value / 12

    def discount():
        fv = sum(
            cash_flow * (1 + year_yield)**(y / 12) for y in range(1, 12 + 1))
        return …
➟ 查看全文