Linux常用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 复制
cp -r folder1 folder2
# 压缩
tar zcf folder.tar.gz folder
# 解压
tar zxvf filename.tar
# 传输文件到本地桌面
sz filename
# 传输文件到远程机器
scp filename.tar.gz root@192.168.0.1:/opt
# 查找文件夹内运行的进程
ps -ef|grep 文件夹
# 杀掉进程
kill -9 123
# 指定目录下查找文件
find /usr -name 'a'
# 模糊查找文件
grep -r 'XXX' /
# 查看文件中包含的关键字
grep "keyword" xxx.log
cat xxx.log | grep keyword
Linux定时脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 定时脚本 
yum install crontabs
# 编辑任务 no.1
crontab -e
# 编辑任务 no.2
vim /etc/crontab
# 定时命令
*/1 * * * * ab -n 3000 -c 500 http://localhost:8080/
# 启动定时服务
/sbin/service crond start
# 关闭定时服务
/sbin/service crond stop
# 重启定时服务
/sbin/service crond restart
# 重新载入定时配置
/sbin/service crond reload
# 查看crontab定时服务状态
service crond status
# 手动启动crontab定时服务
service crond start
Linux网络
1
2
3
4
5
6
# 搜索指定端口
netstat -an | grep 8080
# 关闭防火墙
chkconfig iptables off
# 重启网络
service network restart
通用故障排查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 内存
free
# 磁盘
df
# 磁盘IO
iostat
# 网络IO
ifstat
# 进程
top
# 查看占用CPU最高的进程对应线程,可得到线程ID tid
top -H-p pid
# 线程ID转为16进制
printf ‘%x’ tid
# 查看进程中占用CPU最高的线程,发现是GC线程
jstack pid | grep -C 5 tid
# 查下GC情况
jstat -gc pid 500
# dump出JVM堆内存的数据
jmap -dump:format=b,file=/tmp/**.dump pid
# 分析堆快照
visualvm mat
Kafka
1
2
3
4
5
6
7
8
9
10
11
12
# 查看topic列表
./kafka-topics.sh --list --zookeeper 192.168.0.1:2181
# 查看消费者列表
./kafka-consumer-groups.sh --bootstrap-server 192.168.0.1:9092 --list
# 查看指定分组的消费情况
./kafka-consumer-groups.sh --bootstrap-server 192.168.0.1:9092,192.168.0.2:9092,192.168.0.3:9092 --describe --group groupName
# 生产消息
./kafka-console-producer.sh --broker-list 192.168.0.1:9092 --topic topicName
# 消费消息
./kafka-console-consumer.sh --bootstrap-server 192.168.0.1:9092 --topic topicName
# 从0消费所有消息
./kafka-console-consumer.sh --bootstrap-server 192.168.0.1:9092 --topic topicName --from-beginning
ES
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# ES导出指定索引中的数据
elasticdump --input http://192.168.0.1:9200/default_data --output ./default_data.json --type=data
# ES导入指定数据到索引中
elasticdump --input=/opt/default_data.json --output=http://192.168.0.1:9200/default_data
# 集群属性
GET _cluster/health
# 查看所有的索引
curl http://192.168.0.1:9200/_cat/indices
# 获取文档指定id的数据
curl -XGET 'http://192.168.0.1:9200/default_index/_doc/123456?pretty=true'
GET default_index/_doc/123456
# 全量查询
GET default_index/_search
{
"query": {
"match_all": {}
}
}
# 条件查询
GET default_index/_search
{
"query": {
"match": {
"uid": 111
}
}
}
# 覆盖修改
PUT default_index/_doc/123456
{
"id": 42,
"name": "技师1",
"price": 298
}
# 局部修改
POST default_index/_doc/123456
{
"id": 66,
"name": "技师2",
"price": 398
}
# 清除索引内指定id的数据
DELETE default_index/_doc/123456
# 分析
GET _analyze
{
"analyzer": "standard",
"text" : "wu yi fan"
}
# 去除分页数量限制报错
curl -XPUT http://192.168.0.1:9200/default_index/_settings -d '{ "index" : { "max_result_window" : 100000000}}'
PUT default_index/_settings
{
"index":{
"max_result_window":1000000
}
# 全量查询分页及排序
GET default_index/_search
{
"query": {
"match": {
"name": "技师2"
}
},
"from":0,
"size":1,
"_source":["name"],
"sort":{
"id":{
"order":"desc"
}
}
}
# 多条件查找
GET default_index/_search
{
"query": {
"bool":{
"must":[
{"match":{
"name":"技师2"
}
},
{"match":{
"id": 66
}
}
],
"filter":{
"range":{
"price":{
"gt": 298
}
}
}
}
}
}
# 新增索引
curl -X PUT "http://192.168.0.1:9200/default_index" -H 'Content-Type: application/json' -d'
PUT default_index
{
"mappings": {
"_doc": {
"properties": {
"USER_ID": {
"type": "long"
},
"someString": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"fielddata": true
},
"someShortName": {
"type": "text",
"analyzer": "ik_max_word"
},
"someType": {
"type": "text",
"analyzer": "ik_smart",
"fielddata": true
},
"roomId": {
"type": "integer"
},
"someIds": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"somePrices": {
"type": "nested",
"properties": {
"endDate": {
"type": "date"
},
"sellPrice": {
"type": "double"
},
"startDate": {
"type": "date"
}
}
},
"isSale": {
"type": "boolean"
},
"location": {
"type": "geo_point"
},
"valid": {
"type": "boolean"
}
}
}
}
}

Centos7.9&bt
1
2
3
4
5
6
7
8
9
10
11
12
13
# centos 基础
docker pull centos:7.9.2009
# 运行基础
docker run -d -it -p 8888:8888 -p 888:888 -p 80:80 -p 443:443 -p 3306:3306 --privileged=true centos:7.9.2009
# 查看当前运行
docker ps
# 进入容器
docker exec -it 容器ID bash
# 安装宝塔
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

# 容器转镜像
docker commit -m="centos_7.9_bt" -a="caoofduty" 1e625addbac9 caoofduty/centos_7.9_bt:pro
集成环境运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 拉取生成镜像
docker pull caoofduty/centos_7.9_bt:pro
# 服务运行
docker run -d -it -p 8888:8888 -p 888:888 -p 80:80 -p 443:443 -p 3306:3306 -p 40465:40465 --privileged=true caoofduty/centos_7.9_bt:pro
# 查看当前运行
docker ps
# 进入容器
docker exec -it 容器ID bash
# 宝塔重启
bt restart

#其他:
外网面板地址: http://101.87.XXX.XXX:40465/a20130f1
内网面板地址: http://127.0.0.1:40465/a20130f1
username: xxxxx
password: xxxxx

CYCLE_GRID
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
# 拉取镜像
docker pull caoofduty/merchant_2023:dev
# 服务运行
docker run -d -it -p 8888:8888 -p 888:888 -p 80:80 -p 443:443 -p 3306:3306 -p 40465:40465 --privileged=true caoofduty/merchant_2023:dev
# 查看当前运行
docker ps
# 进入容器
docker exec -it 容器ID bash
# 宝塔重启
bt restart

# 其他:
外网面板地址: http://101.87.XXX.XXX:40465/a20130f1
内网面板地址: http://127.0.0.1:40465/a20130f1
username: xxxxx
password: xxxxx

# 装填:
软件商店->开启各服务

# 输出
cd /www/wwwroot/xxx.merchant.cn
php think swoole restart &
php think queue:listen --tries 2 &