yum安装VPN服务

yum install -y pptpd

修改配置文件

修改/etc/ppp/options.pptpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器

阅读更多

CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下

直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

设置 iptables service

yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口3306

vi /etc/sysconfig/iptables 

增加规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

最后重启系统使设置生效即可。

CentOS7yum源中已经没有正常安装MySQL时的mysql-sever文件,需要去官网上下载:

1
2
3
4
5
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server

成功安装之后重启mysql服务

1
# systemctl restart mysqld.service

初次安装mysql是root账户是没有密码的

设置密码的方法

1
2
3
# mysql -uroot
mysql> set password for ‘root’@‘localhost’ = password('mypasswd');
mysql> exit

vim打开/etc/ssh/sshd_config, 定位到:

1
2
#ClientAliveInterval 0 
#ClientAliveCountMax 3

删掉前面的#号,并改变其值,例如:

1
2
ClientAliveInterval 120 
ClientAliveCountMax 10

:wq关闭并保存

120表示客户端每隔120s将要给服务器发送一条数据。10表示客户端没有收到服务器的反馈后将会一直发送,直到达到该最大值停止

重启SSH服务:

1
2
3
# service sshd restart 
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

我们知道,代码里面可以使用UrlFor或者模板里面使用urlfor来根据自定义Controller和方法来生成url。这里模板中使用的urlfor其实是UrlFor注册的模板方法,二者功能完全相同,一个用于代码中,另外一个用于模板中。

步骤如下:

  • 自定义Controller,并且实现对应的方法Method
  • 使用beego.Router注册路由,将自定义Controller实例和方法Method联系在一起
  • 使用UrlFor函数在代码中或者urlfor在模板中生成url

上面的是我们经常会使用的方法,这里再分享一个带参数的UrlFor或者urlfor的用法。

阅读更多

自己加的一个利用Go调用系统命令得到kafka部分日志的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// @router /get_user_items_log
func (c *QueryController) GetUserItemsLog() {
t := time.Now().AddDate(0, 0, -1)
dateStr := t.Format("2006-01-02 00:00:00")
fmt.Println(dateStr)
date, _:= time.Parse("2006-01-02 00:00:00", dateStr)
timestamp := date.Unix()
timestr := strconv.FormatInt(timestamp, 10)

consumer := &models.Consumer{}
offset := consumer.GetOffset(timestr)
cmdstr := fmt.Sprintf(`/data/plattech/kafka_2.9.2-0.8.1.1/bin/kafka-simple-consumer-shell.sh --broker-list 10.251.192.137:9092 --topic game_server --partit
ion 0 --offset %d --no-wait-at-logend | grep '"type":"item"' > kafka_raw.txt`, offset)
cmd := exec.Command("/bin/sh", "-c", cmdstr)
err := cmd.Run()
if err != nil {
panic(err)
} else {
c.Ctx.WriteString("Success.")
}
}

用VBA读取TXT文件到EXCEL

1
2
3
4
Dim objStream, strData
Set objStream = CreateObject("ADODB.Stream")
objStream.Charset = "utf-8"

‘ LINUX 换行符 objStream.LineSeparator = 10 默认是 -1 回车换行符
objStream.Open objStream.LoadFromFile ("C:\Users\Administrator\Desktop\test.txt") rowNo = 1 Do While Not (objStream.EOS) Worksheets("Sheet1").Cells(rowNo, 1).Value = objStream.ReadText(-2) '每次读一行 rowNo = rowNo + 1 Loop ' 关闭 objStream.Close Set objStream = Nothing

闭包是一种可以让你用非常舒服的方式来编程的小技巧,Go也支持闭包。如果从来没有接触过闭包,想在一开始就弄懂什么是闭包(closure)是非常困难的,就像递归一样,直到你真正写过、用过它,你才能真正的对它有一个更具体的认识。

闭包就是一个函数,这个函数包含了运行它所需的上下文环境,这个环境可能是几个变量或者也会是其他的(通常就是变量)。说闭包是一个函数不正确,更确切地说,闭包是一个打包了其作用域外部的上下文环境的一段运行环境。如果一时间没有理解这段闭包的含义也不要紧,这是一个循序渐进的过程。

阅读更多

bytes.buffer

bytes.buffer是一个缓冲byte类型的缓冲器,这个缓冲器里存放着都是byte

创建一个缓冲器

NewBuffer

如果在使用bytes.NewBuffer的时候,参数是[]byte的slice的话
缓冲器里就是这个slice的内容,如果参数是nil的话,意思是New一个空的缓冲器里

阅读更多