FTP服务介绍

记录下一些ftp服务器相关内容,默认使用vsftpd作为服务使用

阅读更多

Elasticseasrch简介

Elasticsearch相关

Elasticsearch和Mysql中概念对比

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Index -> Types -> Documents -> Fields
mysql和es对比

阅读更多

kafka备份方案

备份方案

使用两个kafka connectors,一个sink connector向外部数据源(S3、ES、Hive)导出数据,一个source connector从外部源恢复数据
使用connect同步数据到s3,然后清除60天以前的数据,可以达到备份+归档且释放硬盘空间的目的

阅读更多

常用shell

日志分组计数并排序

1
grep 'crawler_news_insert' stderr.log.2020-01-29-12 | awk '{print $2}' | awk -F':' '{cnt[$2]+=1}END{for(c in cnt){print c,cnt[c]}}' | sort -n -k 1

解除linux用户过期时间

1
chage -l li

nc传输文件

内网环境下可以使用nc来传输文件,使用内网带宽

在机器B开启端口监听,收取文件

1
nc -l 9999 > xxxx.zip

机器A发送文件,指定收取端(服务器端)的ip和端口

1
nc 192.168.1.3 9999 < xxxx.zip

复杂awk分词计数

1
2
3
4
5
6
# 
# 分离出每个接口每秒的请求次数、平均请求时间
grep "T07:30:" access_www.more.buzz.log access_www.morenews1.com.log | awk '{split($4, t, ":");split($6, a, "?");cnt[t[2]":"t[3]"\t"a[1]]+=1;times[t[2]":"t[3]"\t"a[1]]+=$NF}END{for(c in cnt){print c"\t"cnt[c]"\t"times[c]"\t"times[c]/cnt[c]}}'

# 时间正则匹配,统计大于10s的请求
grep '2020-05-22 11:11:[45]' access.log | awk '{if ($8 > 10000) { cnt[$5] += 1}}END{for(c in cnt){print c,cnt[c]}}'

SpringBoot项目获取客户端IP

本文主要介绍了SpringBoot项目中如何获取真实客户端IP,在应用前侧有nginx或cdn时应该如何处理。

X-Forwarded-For(简称XFF)是一个常见的(非正式使用的)传递真实用户IP的方式,其内容一般是:

1
X-Forwarded-For: real_client_ip, proxy1_ip, proxy2_ip

真实用户IP会被放在第一位

阅读更多

Linux查看CPU信息

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

1
2
3
4
5
6
7
8
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

KafkaManager安装启动流程

安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 安装jdk
yum install -y jdk8

JAVA_HOME="/home/jdk1.8.0"
PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME PATH

# 下载kafka-manager
wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz
mkdir kafka-manager
tar -xzvf 2.0.0.2.tar.gz -C ./kafka-manager --strip-components 1

# 安装sbt
curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
mv bintray-sbt-rpm.repo /etc/yum.repos.d/
yum install sbt -y

# make
cd kafka-manager
./sbt clean dist
cp target/universial/kafka-manager-2.0.0.2.zip /home/
cd /home
unzip kafka-manager-2.0.0.2.zip
cd kafka-manager-2.0.0.2

# 修改kafka-manager的链接信息
sed -i "s/kafka\-manager\-zookeeper:2181/common1-t1.zookeeper.s.news:2181/" conf/application.conf

启动脚本

1
2
3
4
5
6
KAFKA_MANAGER_USERNAME="admin"
KAFKA_MANAGER_PASSWORD="admin"
JAVA_HOME=/home/jdk1.8.0
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/jdk1.8.0/bin
export JAVA_HOME PATH
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8888 > kafka-manager.log 2>&1 &