内网穿透之FRP

九月 5, 2018 by · Leave a Comment
Filed under: 云端服务 

本地有台PC,连网但没公网IP,想要发布web服务或远程桌面连接,需要内网穿透

准备:

首先得有台公网IP的主机,这里选择 digitalocean.com 新加坡的 VPS,最便宜的 5刀每月。创建后会收到邮件告知root用户的密码 (你用ssh key登陆也可以)

image

image

然后,登陆VPS,下载 frp 对应操作系统的版本, https://github.com/fatedier/frp/releases 这里我的VPS是 centos 7.4 64位,  所以选 frp_0.21.0_linux_amd64.tar.gz 5.81 MB . 解压后进入目录

mkdir Downloads

cd Downloads

wegt https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz

tar –xzvf frp_0.21.0_linux_amd64.tar.gz

cd frp_0.21.0_linux_amd64

然后,根据github上的说明文档修改服务器端配置文件 frps.ini , 这里你得有个域名(可以是二级域名), 将它A记录解析到VPS地址上. 然后运行 ./frps –c frps.ini , 要后台运行就 nohup ./frps –c frps.ini &

[common]
bind_port = 7000
vhost_http_port = 80
subdomain_host = dodemo.com

然后,在内网机器上,下载对应版本的frp, 比如我是在windows 64位机器上, 则下载 frp_0.21.0_windows_amd64.zip 5.78 MB, 解压后进入目录,修改修改客户端配置文件 frpc.ini 其中 [common]是必需的, 下面的每个[]称为proxy,注意不要重名. 运行 命令行进入目录 运行 frpc –c frpc.ini 如果以下提示则表示连接成功. 否则检查网络或代理或防火墙或软件版本是否一致

[control.go:246] [fe2df7c9d9d20bbd] login to server success, get run id [fe2df7c9d9d20bbd], server udp port [0]

参考 frpc.ini

[common]
server_addr = dodemo.com
server_port = 7000
#内网连网需要使用代理
http_proxy = http://proxyserver.com:8080

#以下配置允许windows远程桌面 访问地址 mstsc.dodemo.com
[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389
subdomain = mstsc

#以下配置允许访问本机提供的web服务
[web1]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = web1

[web2]
type = http
local_ip = 192.168.112.128
local_port = 81
subdomain = web2

#以下配置允许登陆局域网内的其它机器
[vm_ssh]
type = tcp
local_ip = 192.168.112.128
local_port = 22
remote_port = 6002

#以下配置允许访问本机可访问的局域网提供的web服务
[vm_web1]
type = http
local_ip = 192.168.112.128
local_port = 80
subdomain = vmweb1
http_user = admin
http_pwd = admin1

[vm_web2]
type = http
local_ip = 192.168.112.128
local_port = 81
subdomain = vmweb2

 

FRP还有许多功能,适用就好. 用类还有ngrok,不作最优选择. 其它如花生壳,Nat123已没落,交钱服务可能还不好. pubyun, noip什么的也很非主流. 如果只有一两个要穿透的服务,也不必自购VPS, 有现成的 ngrok或frp服务,10块钱一个月还是可以的.

查看数据库操作日志

七月 5, 2018 by · Leave a Comment
Filed under: 技术, 数据处理 

把所有对数据库的操作/SQL(DDL,DML,Query)全都记录到文件或者表中,用于调试或查错。

Mysql

转自: Link

首先进入mysql输入指令

show variables like ‘gen%’;


可以看到输出

+——————+————————————-+


| Variable_name | Value |

+——————+————————————-+

| general_log | OFF |

| general_log_file | /usr/local/mysql/data/localhost.log |

+——————+————————————-+


可以看到general_log是开启还是环比状态,以及这个帐号的general_log文件在哪,设置开启

set global general_log=ON;

commit;//如果关闭了自动提交,记得commit一次结束事务


然后就可以去general_log_file的路径查看操作记录了

采用数据库内部查看

出了可以用日志文件的形式查看数据库操作记录之外,也可以把日志作为一个表单,在数据库内部查看

show variables like ‘%log_output%’;


可以看到输出,然后将其改为表单

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+

set global log_output=’TABLE’;


之后就可以通过以下两句话查看数据库操作记录

select * from mysql.general_log; <=====查看操作记录

truncate table mysql.general_log; <=====清空操作记录表单


 

Postgresql

输出日志到文件,修改$PGDATA/postgresql.conf   可能$PGDATA=/var/lib/pgsql/9.4/data

log_destination = ‘stderr’

logging_collector = on

log_directory = ‘pg_log’

log_filename = ‘postgresql-%a.log’

#log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log’

log_statement = ‘mod’                   # none, ddl, mod, all

日志文件只记录数据更新的操作,文件名如下

-rw——-. 1 postgres postgres  129 Jun 29 17:00 postgresql-Fri.log

 

 

如何查看

Linux下:

  • 用 tail -f <logfilename> 来持续显示最新log

Windows下:

加载csv到postgresql

六月 27, 2018 by · Leave a Comment
Filed under: 技术, 数据处理 

数据转移常用csv平文件,一般加载进数据库需要先创建表,然后加载csv到对应的表里。能不能在表不存在的情况下,加载csv到数据库,自动创建表呢?这对于快速分析很有用。

 

We can use tools like pgfutter to import flat delimiter files into postgres. It will create the table automatically ( all column type is text) or append data to existing table.

Refer to https://github.com/lukasmartinelli/pgfutter/

 

加载csv到postgrsql数据库,如果表存在,追加;如果表不存在,自动创建与文件名同名的表,字段默认都是text类型的。

./pgfutter_linux_amd64 –host “hostname” –port “5432” –db “dbname” –schema “schemaNam”  –user “username” –pw “password” csv All-Rewards.csv

在数据库上,可以做数据类型的转换。可以直接编写查询sql,或者更改字段属性。

su – postgres

psql -h hostname -d dbname -U username -c “alter table schemaName.All_Rewards alter column REWARD_CONCURRENCE type integer using (trim(REWARD_CONCURRENCE)::integer);”

\q

或者在SQL Client上改:

alter table sao_paulo_20171011 alter column id type integer using (trim(id)::integer);
alter table sao_paulo_20171011 alter column price type integer using (trim(price)::numeric(10));
alter table sao_paulo_20171011 alter column update_time type timestamp  using (trim(case when update_time =” then null else update_time end)::timestamp);

 

postgresql 数据格式参考:

http://www.postgres.cn/docs/9.5/datatype.html
https://www.postgresql.org/docs/9.5/static/datatype.html

 

Linux版本下载:

https://github.com/lukasmartinelli/pgfutter/releases/download/v1.1/pgfutter_linux_amd64

下一页 »

无觅相关文章插件,快速提升流量