-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
523 lines (251 loc) · 85.4 KB
/
atom.xml
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Hexo</title>
<link href="http://example.com/atom.xml" rel="self"/>
<link href="http://example.com/"/>
<updated>2023-01-16T03:15:08.000Z</updated>
<id>http://example.com/</id>
<author>
<name>TQ</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>linux网卡命名规范</title>
<link href="http://example.com/2023/01/16/linux%E7%BD%91%E5%8D%A1%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83/"/>
<id>http://example.com/2023/01/16/linux%E7%BD%91%E5%8D%A1%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83/</id>
<published>2023-01-15T16:00:00.000Z</published>
<updated>2023-01-16T03:15:08.000Z</updated>
<content type="html"><![CDATA[<h2 id="biosdevname-和-net-ifnames-两种命名规范"><a href="#biosdevname-和-net-ifnames-两种命名规范" class="headerlink" title="biosdevname 和 net.ifnames 两种命名规范"></a>biosdevname 和 net.ifnames 两种命名规范</h2><h3 id="net-ifnames"><a href="#net-ifnames" class="headerlink" title="net.ifnames"></a>net.ifnames</h3><p>net.ifnames 的命名规范为: 设备类型+设备位置+数字</p><p>设备类型:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">en 表示Ethernet</span><br><span class="line">wl 表示WLAN</span><br><span class="line">ww 表示无线广域网WWAN</span><br></pre></td></tr></table></figure><p>实际的例子:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">eno1 板载网卡</span><br><span class="line">enp0s2 pci网卡</span><br><span class="line">ens33 pci网卡</span><br><span class="line">wlp3s0 PCI无线网卡</span><br><span class="line">wwp0s29f7u2i2 4G modem</span><br><span class="line">wlp0s2f1u4u1 连接在USB Hub上的无线网卡</span><br><span class="line">enx78e7d1ea46da pci网卡</span><br></pre></td></tr></table></figure><h3 id="biosdevname"><a href="#biosdevname" class="headerlink" title="biosdevname"></a>biosdevname</h3><p>biosdevname 的命名规范为:</p><p>实际的例子:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">em1 板载网卡</span><br><span class="line">p3p4 pci网卡</span><br><span class="line">p3p4_1 虚拟网卡</span><br></pre></td></tr></table></figure><p><a href="https://www.aikaiyuan.com/12535.html">CentOS 7 CentOS 8 网卡命名规则</a></p>]]></content>
<summary type="html"><h2 id="biosdevname-和-net-ifnames-两种命名规范"><a href="#biosdevname-和-net-ifnames-两种命名规范" class="headerlink" title="biosdevname 和 net.ifnames 两种</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="网卡" scheme="http://example.com/tags/%E7%BD%91%E5%8D%A1/"/>
<category term="网卡命名规则" scheme="http://example.com/tags/%E7%BD%91%E5%8D%A1%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99/"/>
</entry>
<entry>
<title>网卡mac漂移</title>
<link href="http://example.com/2023/01/16/%E7%BD%91%E5%8D%A1mac%E6%BC%82%E7%A7%BB/"/>
<id>http://example.com/2023/01/16/%E7%BD%91%E5%8D%A1mac%E6%BC%82%E7%A7%BB/</id>
<published>2023-01-15T16:00:00.000Z</published>
<updated>2023-01-16T08:04:16.000Z</updated>
<content type="html"><![CDATA[<p><strong>最近遇到一个非常神奇的事情,万兆双口的网卡mac在特定情况下会发生漂移</strong></p><h4 id="设备1"><a href="#设备1" class="headerlink" title="设备1"></a>设备1</h4><p>设备名:X9DRi-LN4+/X9DR3-LN4+(微星的机器)</p><p>网卡型号:Intel Corporation 82599ES 10-Gigabit(万兆双光口)</p><p><a href="https://cn.fs.com/products/135978.html">网卡链接</a></p><p>系统内核:5.X</p><p>网口命名规则:biosdevname=1 net.ifnames=0</p><p>实际网卡名: eth0、eth3</p><h4 id="设备2"><a href="#设备2" class="headerlink" title="设备2"></a>设备2</h4><p>设备名:PowerEdge R720xd(戴尔的机器)</p><p>网卡型号:Intel Corporation 82599ES 10-Gigabit(万兆双光口)</p><p>系统内核5.X</p><p>网卡命名规则:biosdevname=1 net.ifnames=0</p><p>实际网卡名:p6p1、p6p2</p><p>从网卡名来看,设备1的网卡没有遵循biosdevname的命名规则,当然,出问题的也就是这台机器。</p><p>设备1的机器在正常情况下网卡的mac不会发生漂移,但是如果网卡的配置文件发生变化(硬修改网卡名会碰这个文件),则这两张网卡的mac就会发生漂移(比如说之前mac1所在的网卡是同的,漂移之后mac1所在的网卡就变成不通的了),网卡名则是随机生成的。</p><p>造成这种漂移的原因应该与主板bios的配置或者是主板的兼容性有关(猜的),毕竟正规厂商的机器就没有这种问题</p><p>所以如果遇到组装机用万兆双光口的机器,改网卡名还是开机自启软改比较好</p><p><a href="https://cloud.tencent.com/developer/article/1349194">Linux查看网卡型号、驱动版本、队列数</a></p><h3 id="如何辨别网卡是否为双出口"><a href="#如何辨别网卡是否为双出口" class="headerlink" title="如何辨别网卡是否为双出口"></a>如何辨别网卡是否为双出口</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">[root@/]# ethtool -i eth0</span><br><span class="line">driver: ixgbe</span><br><span class="line">version: 5.9.4</span><br><span class="line">firmware-version: 0x800003df, 255.65535.255</span><br><span class="line">expansion-rom-version: </span><br><span class="line">bus-info: 0000:88:00.0</span><br><span class="line">supports-statistics: yes</span><br><span class="line">supports-test: yes</span><br><span class="line">supports-eeprom-access: yes</span><br><span class="line">supports-register-dump: yes</span><br><span class="line">supports-priv-flags: yes</span><br><span class="line">[root@/]# ethtool -i eth66</span><br><span class="line">driver: ixgbe</span><br><span class="line">version: 5.9.4</span><br><span class="line">firmware-version: 0x800003df, 255.65535.255</span><br><span class="line">expansion-rom-version: </span><br><span class="line">bus-info: 0000:88:00.1</span><br><span class="line">supports-statistics: yes</span><br><span class="line">supports-test: yes</span><br><span class="line">supports-eeprom-access: yes</span><br><span class="line">supports-register-dump: yes</span><br><span class="line">supports-priv-flags: yes</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>两个网卡的pci地址都一样<br>bus-info: 0000:88:00.0<br>bus-info: 0000:88:00.1</p><p>或者直接lscpi查看网卡</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@340915f192636271a3bcfbaf9be1b8ea /]# lspci|grep Eth</span><br><span class="line">88:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)</span><br><span class="line">88:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)</span><br></pre></td></tr></table></figure><p>这就是双出口的pci地址</p>]]></content>
<summary type="html"><p><strong>最近遇到一个非常神奇的事情,万兆双口的网卡mac在特定情况下会发生漂移</strong></p>
<h4 id="设备1"><a href="#设备1" class="headerlink" title="设备1"></a>设备1</h4><p>设备名:X9</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="网卡" scheme="http://example.com/tags/%E7%BD%91%E5%8D%A1/"/>
</entry>
<entry>
<title>shell显示百分比</title>
<link href="http://example.com/2022/11/18/shell%E6%98%BE%E7%A4%BA%E7%99%BE%E5%88%86%E6%AF%94/"/>
<id>http://example.com/2022/11/18/shell%E6%98%BE%E7%A4%BA%E7%99%BE%E5%88%86%E6%AF%94/</id>
<published>2022-11-17T16:00:00.000Z</published>
<updated>2022-11-02T01:52:48.000Z</updated>
<content type="html"><![CDATA[<p>awk ‘BEGIN{printf “%.2f%\n”,’$a’/‘$b’*100}’ </p><p>echo <code>echo "scale=2;$a/6"|bc</code>%</p><p>awk ‘BEGIN{printf “%.2f%\n”,’$a’/‘$b’*100}’ </p><p>echo <code>echo "scale=2;$a/6"|bc</code>%</p><p> shell计算中使用除法,基本默认上都是整除。</p><p>比如:</p><p>num1=2</p><p>num2=3</p><p>num3=<code>expr $num1 / $num2</code></p><p>这个时候num3=0 ,是因为是因为expr不支持浮点除法</p><p>解决的方法:</p><p>num3=<code>echo "sclae=2; $num1/$num2" | bc</code></p><p>使用bc工具,sclae控制小数点后保留几位</p><p>还有一种方法</p><p>awk ‘BEGIN{printf “%.2f\n”,’$num1‘/’$num2‘}’</p><p>如果用百分比表示</p><p>awk ‘BEGIN{printf “%.2f%\n”,(’$num1‘/’$num2‘)*100}’</p><p>参考链接:<a href="https://blog.csdn.net/chengxuyuanyonghu/article/details/47956713">shell 显示百分数</a></p>]]></content>
<summary type="html"><p>awk ‘BEGIN{printf “%.2f%\n”,’$a’&#x2F;‘$b’*100}’ </p>
<p>echo <code>echo &quot;scale=2;$a/6&quot;|bc</code>%</p>
<p>awk ‘BEGIN{printf “%.</summary>
<category term="shell" scheme="http://example.com/categories/shell/"/>
<category term="百分比" scheme="http://example.com/tags/%E7%99%BE%E5%88%86%E6%AF%94/"/>
</entry>
<entry>
<title>EFI、UEFI、MBR、GPT的区别</title>
<link href="http://example.com/2022/11/17/EFI%E3%80%81UEFI%E3%80%81MBR%E3%80%81GPT%E7%9A%84%E5%8C%BA%E5%88%AB/"/>
<id>http://example.com/2022/11/17/EFI%E3%80%81UEFI%E3%80%81MBR%E3%80%81GPT%E7%9A%84%E5%8C%BA%E5%88%AB/</id>
<published>2022-11-16T16:00:00.000Z</published>
<updated>2022-10-18T03:21:16.000Z</updated>
<content type="html"><![CDATA[<h3 id="CSM"><a href="#CSM" class="headerlink" title="CSM"></a>CSM</h3><p>CSM(兼容性支持模块)是BIOS上Boot选项里的一个下拉子项目(一些老的主板上没有此选项),与Secure Boot(安全启动)是并列项。 CSM开启使得可以支持UEFI启动和非UEFI启动。 若是需要启动传统MBR设备,则需开启CSM。 关闭CSM则变成纯UEFI启动,且完全支持安全启动。</p><h3 id="UEFI"><a href="#UEFI" class="headerlink" title="UEFI"></a>UEFI</h3><p>UEFI属于主板类名词,其作用类似于BIOS。</p><h2 id="分区类型"><a href="#分区类型" class="headerlink" title="分区类型"></a>分区类型</h2><h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p>GPT、MBR则属于硬盘类名词,它们的作用类似一艘航母的骨架,有了这个骨架,我们才可以进行细致到诸如C、D、E等盘符的分区。</p><p>一块硬盘接驳主机之后,它的首要任务建立分区列表,分区列表有MBR和GPT两种,其中MBR分区列表支持最大2TB硬盘,GPT分区列表支持最大128PB(1PB=1024TB)。</p><h3 id="GPT分区列表"><a href="#GPT分区列表" class="headerlink" title="GPT分区列表"></a>GPT分区列表</h3><p>GPT(GUID Partition Table):即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。</p><h3 id="MBR分区列表"><a href="#MBR分区列表" class="headerlink" title="MBR分区列表"></a>MBR分区列表</h3><p>MBR(Master Boot Record):即硬盘的主引导记录分区列表,在主引导扇区,位于硬盘的cylinder 0, head 0, sector 1 (Sector是从1开始的)。</p><h2 id="UEFI、BIOS和MBR、GPT之间的关系?"><a href="#UEFI、BIOS和MBR、GPT之间的关系?" class="headerlink" title="UEFI、BIOS和MBR、GPT之间的关系?"></a>UEFI、BIOS和MBR、GPT之间的关系?</h2><p>我们从名词解析可得知,传统BIOS不支持GPT分区列表,仅支持MBR格式。UEFI则是取代传统BIOS,它不支持MBR模式,仅支持GPT格式。</p><p>延伸阅读:近两年出现的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项。</p><h3 id="启动盘的启动参数"><a href="#启动盘的启动参数" class="headerlink" title="启动盘的启动参数"></a>启动盘的启动参数</h3><p>不同启动类型(uefi/bios),制作启动盘的参数也不同</p><p>启动为 UEFI(非 CSM,不兼容传统的 BIOS 启动),分区类型为 GPT</p><p>启动为 BIOS 或 UFEI(兼容传统的 BIOS 启动),分区类型为 MBR</p><p>参考:<a href="https://blog.51cto.com/u_3619476/3735286">EFI、UEFI、MBR、GPT的区别</a></p>]]></content>
<summary type="html"><h3 id="CSM"><a href="#CSM" class="headerlink" title="CSM"></a>CSM</h3><p>CSM(兼容性支持模块)是BIOS上Boot选项里的一个下拉子项目(一些老的主板上没有此选项),与Secure Boot(安全启动)</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="系统" scheme="http://example.com/tags/%E7%B3%BB%E7%BB%9F/"/>
</entry>
<entry>
<title>ipv6详解</title>
<link href="http://example.com/2022/11/02/ipv6/"/>
<id>http://example.com/2022/11/02/ipv6/</id>
<published>2022-11-01T16:00:00.000Z</published>
<updated>2022-11-02T01:58:00.000Z</updated>
<content type="html"><![CDATA[<h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">fe80开头就像169.254.x.x,是这个网段里没人给你分ip,自动协商的地址,其地址不能在网络上路由,也就是说,通常无法用于上网</span><br><span class="line">现在各大运营商用的ipv6</span><br><span class="line">电信是240e开头的(240e::/20)</span><br><span class="line">移动是2409开头的(2409:8000::/20)</span><br><span class="line">联通是2408开头的(2408:8000::/20)</span><br><span class="line">其他一些标记有teredo也不是原生ipv6</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><s</summary>
<category term="linux网络" scheme="http://example.com/categories/linux%E7%BD%91%E7%BB%9C/"/>
<category term="ipv6" scheme="http://example.com/tags/ipv6/"/>
</entry>
<entry>
<title>shell创建随机数</title>
<link href="http://example.com/2022/11/02/shell%E5%88%9B%E5%BB%BA%E9%9A%8F%E6%9C%BA%E6%95%B0/"/>
<id>http://example.com/2022/11/02/shell%E5%88%9B%E5%BB%BA%E9%9A%8F%E6%9C%BA%E6%95%B0/</id>
<published>2022-11-01T16:00:00.000Z</published>
<updated>2022-11-02T01:58:18.000Z</updated>
<content type="html"><![CDATA[<h3 id="使用linux-uuid"><a href="#使用linux-uuid" class="headerlink" title="使用linux uuid"></a>使用linux uuid</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/bash</span><br><span class="line"></span><br><span class="line">function rand(){</span><br><span class="line"> min=$1</span><br><span class="line"> max=$(($2-$min+1))</span><br><span class="line"> num=$(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')</span><br><span class="line"> echo $(($num%$max+$min))</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">rnd=$(rand 100 500)</span><br><span class="line">echo $rnd</span><br></pre></td></tr></table></figure><h3 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h3><p><a href="https://blog.csdn.net/fdipzone/article/details/24329523">shell 生成指定范围随机数与随机字符串</a></p>]]></content>
<summary type="html"><h3 id="使用linux-uuid"><a href="#使用linux-uuid" class="headerlink" title="使用linux uuid"></a>使用linux uuid</h3><figure class="highlight plaintex</summary>
<category term="shell" scheme="http://example.com/categories/shell/"/>
<category term="随机数" scheme="http://example.com/tags/%E9%9A%8F%E6%9C%BA%E6%95%B0/"/>
</entry>
<entry>
<title>python拉取elk的数据</title>
<link href="http://example.com/2022/10/06/elk%E6%8B%89%E5%8F%96%E6%95%B0%E6%8D%AE/"/>
<id>http://example.com/2022/10/06/elk%E6%8B%89%E5%8F%96%E6%95%B0%E6%8D%AE/</id>
<published>2022-10-05T16:00:00.000Z</published>
<updated>2022-10-18T03:21:26.000Z</updated>
<content type="html"><![CDATA[<p>使用python中的elasticsearch模块拉取数据,注意elasticsearch模块的版本要与ekl的版本一致(大版本上)</p><h3 id="获取elk的服务信息"><a href="#获取elk的服务信息" class="headerlink" title="获取elk的服务信息"></a>获取elk的服务信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">[root@Fish ~]# curl 192.168.3.111:9200</span><br><span class="line">{</span><br><span class="line"> "name" : "elk-masterX",</span><br><span class="line"> "cluster_name" : "XXX",</span><br><span class="line"> "cluster_uuid" : "XXX",</span><br><span class="line"> "version" : {</span><br><span class="line"> "number" : "7.5.0",</span><br><span class="line"> "build_flavor" : "default",</span><br><span class="line"> "build_type" : "tar",</span><br><span class="line"> "build_hash" : "e9ccaed468e2fac2275a3761849",</span><br><span class="line"> "build_date" : "2021-11-26T01:06:52.518XXXX",</span><br><span class="line"> "build_snapshot" : false,</span><br><span class="line"> "lucene_version" : "8.3.0",</span><br><span class="line"> "minimum_wire_compatibility_version" : "6.8.0",</span><br><span class="line"> "minimum_index_compatibility_version" : "6.0.0-beta1"</span><br><span class="line"> },</span><br><span class="line"> "tagline" : "You Know, for Search"</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p><strong>如果elk使用https证书认证</strong></p><p>使用如下方法获取elk信息</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl --user user:pwd https://192.168.0.3:9200 -k</span><br></pre></td></tr></table></figure><p>curl -k 可以跳过证书认证</p><h4 id="elk的版本是-7-5-0,所以elasticsearch-模块的大版本也要是7的版本"><a href="#elk的版本是-7-5-0,所以elasticsearch-模块的大版本也要是7的版本" class="headerlink" title="elk的版本是 7.5.0,所以elasticsearch 模块的大版本也要是7的版本"></a>elk的版本是 7.5.0,所以elasticsearch 模块的大版本也要是7的版本</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip3 install elasticsearch==7.13.0</span><br></pre></td></tr></table></figure><h4 id="查看elasticsearch的版本"><a href="#查看elasticsearch的版本" class="headerlink" title="查看elasticsearch的版本"></a>查看elasticsearch的版本</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip3 list|grep el</span><br></pre></td></tr></table></figure><h3 id="python连接elasticsearch失败"><a href="#python连接elasticsearch失败" class="headerlink" title="python连接elasticsearch失败"></a>python连接elasticsearch失败</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">“URL must include a ‘scheme’, ‘host’, and ‘port’ component (ie ‘https://localhost:9200’)”</span><br><span class="line">ValueError: URL must include a ‘scheme’, ‘host’, and ‘port’ component (ie ‘https://localhost:9200’)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">pip3 uninstall elasticsearch</span><br><span class="line"></span><br><span class="line">pip3 install elasticsearch==7.13.0</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><p>使用python中的elasticsearch模块拉取数据,注意elasticsearch模块的版本要与ekl的版本一致(大版本上)</p>
<h3 id="获取elk的服务信息"><a href="#获取elk的服务信息" class="headerlink" title</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="linux" scheme="http://example.com/tags/linux/"/>
</entry>
<entry>
<title>系统封装的一些异常报错</title>
<link href="http://example.com/2022/09/20/%E7%B3%BB%E7%BB%9F%E5%B0%81%E8%A3%85%E7%9A%84%E5%BC%82%E5%B8%B8/"/>
<id>http://example.com/2022/09/20/%E7%B3%BB%E7%BB%9F%E5%B0%81%E8%A3%85%E7%9A%84%E5%BC%82%E5%B8%B8/</id>
<published>2022-09-19T16:00:00.000Z</published>
<updated>2022-09-20T09:03:12.000Z</updated>
<content type="html"><![CDATA[<h3 id="内核获取方式"><a href="#内核获取方式" class="headerlink" title="内核获取方式"></a>内核获取方式</h3><p><a href="https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/">centos内核大全</a></p><h3 id="error-populating-transaction-anaconda-is-retrying"><a href="#error-populating-transaction-anaconda-is-retrying" class="headerlink" title="error populating transaction anaconda is retrying"></a>error populating transaction anaconda is retrying</h3><p>安装系统时报这个错,估计是改了Package文件夹里的内容后没更新repodata里面的索引,直接就封装了</p><p>解决方法:更新repodata里的索引就行</p><p>详细操作间『linux_iso镜像解析』</p>]]></content>
<summary type="html"><h3 id="内核获取方式"><a href="#内核获取方式" class="headerlink" title="内核获取方式"></a>内核获取方式</h3><p><a href="https://mirrors.aliyun.com/elrepo/kernel/el7/</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="系统" scheme="http://example.com/tags/%E7%B3%BB%E7%BB%9F/"/>
<category term="异常" scheme="http://example.com/tags/%E5%BC%82%E5%B8%B8/"/>
</entry>
<entry>
<title>systemctl,Systemd 入门教程</title>
<link href="http://example.com/2022/09/05/systemed%E4%BD%BF%E7%94%A8/"/>
<id>http://example.com/2022/09/05/systemed%E4%BD%BF%E7%94%A8/</id>
<published>2022-09-04T16:00:00.000Z</published>
<updated>2022-09-20T08:54:18.000Z</updated>
<content type="html"><![CDATA[<h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p><a href="https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html">Systemd 入门教程:命令篇</a></p><h3 id="systemctl命令"><a href="#systemctl命令" class="headerlink" title="systemctl命令"></a>systemctl命令</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">systemctl list-units ##列出当前系统服务的状态</span><br><span class="line"></span><br><span class="line">systemctl list-unit-files ##列出服务的开机状态</span><br><span class="line"></span><br><span class="line">systemctl status sshd ##查看指定服务的状态</span><br><span class="line"></span><br><span class="line">systemctl stop sshd ##关闭指定服务</span><br><span class="line"></span><br><span class="line">systemctl start sshd ##开启指定服务</span><br><span class="line"></span><br><span class="line">systemctl restart sshd ##从新启动服务</span><br><span class="line"></span><br><span class="line">systemctl enable sshd ##设定指定服务开机开启</span><br><span class="line"></span><br><span class="line">systemctl disable sshd ##设定指定服务开机关闭</span><br><span class="line"></span><br><span class="line">systemctl reload sshd ##使指定服务从新加载配置</span><br><span class="line"></span><br><span class="line">systemctl list-dependencies sshd ##查看指定服务的倚赖关系</span><br><span class="line"></span><br><span class="line">systemctl mask sshd ##冻结指定服务</span><br><span class="line"></span><br><span class="line">systemctl unmask sshd ##启用服务</span><br><span class="line"></span><br><span class="line">systemctl set-default multi-user.target ##开机不开启图形</span><br><span class="line"></span><br><span class="line">systemctl set-default graphical.target ##开机启动图形</span><br></pre></td></tr></table></figure><h3 id="服务状态"><a href="#服务状态" class="headerlink" title="服务状态"></a>服务状态</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">loaded ##系统服务已经初始化完成,加载过配置</span><br><span class="line"></span><br><span class="line">active(running) ##正有一个或多个程序正在系统中执行, vsftpd就是这种模式</span><br><span class="line"></span><br><span class="line">atcive(exited) ##僅執行一次就正常結束的服務, 目前並沒有任何程序在系統中執行</span><br><span class="line"></span><br><span class="line">atcive(waiting) ##正在執行當中,不過還再等待其他的事件才能继续处理</span><br><span class="line"></span><br><span class="line">inactive ##服务关闭</span><br><span class="line"></span><br><span class="line">enbaled ##服务开机启动</span><br><span class="line"></span><br><span class="line">disabled ##服务开机不自启</span><br><span class="line"></span><br><span class="line">static ##服务开机启动项不可被管理</span><br><span class="line"></span><br><span class="line">failed ##系统配置错误</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p><a href="https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-comm</summary>
<category term="systemed" scheme="http://example.com/categories/systemed/"/>
<category term="简介" scheme="http://example.com/tags/%E7%AE%80%E4%BB%8B/"/>
</entry>
<entry>
<title>shell并发操作</title>
<link href="http://example.com/2022/08/17/shell%E5%B9%B6%E5%8F%91/"/>
<id>http://example.com/2022/08/17/shell%E5%B9%B6%E5%8F%91/</id>
<published>2022-08-16T16:00:00.000Z</published>
<updated>2022-09-20T08:55:00.000Z</updated>
<content type="html"><![CDATA[<h3 id="普通多进程"><a href="#普通多进程" class="headerlink" title="普通多进程"></a>普通多进程</h3><h4 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原理</h4><p>shell中实现并发,就是把循环体的命令用&符号放入后台运行,1000个任务就会并发1000个线程,运行时间2s左右,比起方案一的1000s,已经非常快了。</p><h4 id="例子"><a href="#例子" class="headerlink" title="例子"></a>例子</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/bash</span><br><span class="line"># bam to bed</span><br><span class="line"></span><br><span class="line">date # 脚本开始时间</span><br><span class="line"></span><br><span class="line">for ((i=1;i<=1000;i++))</span><br><span class="line">do</span><br><span class="line">{</span><br><span class="line"> sleep 1 #sleep 1用以模仿执行一条命令需要花费的时间(可以用真实命令来代替)</span><br><span class="line"> echo 'success'$i; </span><br><span class="line"> }& #用{}把循环体括起来,后加一个&符号,代表每次循环都把命令放入后台运行</span><br><span class="line"> #一旦放入后台,就意味着{}里面的命令交给操作系统的一个线程处理了</span><br><span class="line"> #循环了1000次,就有1000个&将任务放入后台,操作系统会并发1000个线程来处理 </span><br><span class="line">done </span><br><span class="line">wait #wait命令表示。等待上面的命令(放入后台的任务)都执行完毕了再往下执行</span><br><span class="line"> </span><br><span class="line">date # 脚本结束时间</span><br></pre></td></tr></table></figure><h3 id="使用FIFO实现“多进程”"><a href="#使用FIFO实现“多进程”" class="headerlink" title="使用FIFO实现“多进程”"></a>使用FIFO实现“多进程”</h3><p>可以控制每次并发的数量</p><h4 id="原理-1"><a href="#原理-1" class="headerlink" title="原理"></a>原理</h4><p>先新建一个FIFO,写入一些字符。一个进程开始前会先从这个FIFO中读走一个字符,执行完之后再写回一个字符。如果FIFO中没有字符,该线程就会等待,fifo就成了一个锁。</p><h4 id="例子-1"><a href="#例子-1" class="headerlink" title="例子"></a>例子</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/bash</span><br><span class="line"># bam to bed</span><br><span class="line"></span><br><span class="line">start_time=`date +%s` #定义脚本运行的开始时间</span><br><span class="line"></span><br><span class="line">tmp_fifofile="/tmp/$$.fifo"</span><br><span class="line">mkfifo $tmp_fifofile # 新建一个FIFO类型的文件</span><br><span class="line">exec 6<>$tmp_fifofile # 将FD6指向FIFO类型</span><br><span class="line">rm $tmp_fifofile #删也可以,</span><br><span class="line"></span><br><span class="line">thread_num=5 # 定义最大线程数</span><br><span class="line"></span><br><span class="line">#根据线程总数量设置令牌个数</span><br><span class="line">#事实上就是在fd6中放置了$thread_num个回车符</span><br><span class="line">for ((i=0;i<${thread_num};i++));do</span><br><span class="line"> echo</span><br><span class="line">done >&6</span><br><span class="line"></span><br><span class="line">for i in data/*.bam # 找到data文件夹下所有bam格式的文件</span><br><span class="line">do</span><br><span class="line"> # 一个read -u6命令执行一次,就从FD6中减去一个回车符,然后向下执行</span><br><span class="line"> # 当FD6中没有回车符时,就停止,从而实现线程数量控制</span><br><span class="line"> read -u6</span><br><span class="line"> {</span><br><span class="line"> echo "great" # 可以用实际命令代替</span><br><span class="line"> echo >&6 # 当进程结束以后,再向FD6中加上一个回车符,即补上了read -u6减去的那个</span><br><span class="line"> } &</span><br><span class="line">done</span><br><span class="line"></span><br><span class="line">wait # 要有wait,等待所有线程结束</span><br><span class="line"></span><br><span class="line">stop_time=`date +%s` # 定义脚本运行的结束时间</span><br><span class="line">echo "TIME:`expr $stop_time - $start_time`" # 输出脚本运行时间</span><br><span class="line"></span><br><span class="line">exec 6>&- # 关闭FD6</span><br><span class="line">echo "over" # 表示脚本运行结束</span><br></pre></td></tr></table></figure><h3 id="管道FIFO"><a href="#管道FIFO" class="headerlink" title="管道FIFO"></a>管道FIFO</h3><h4 id="基础知识"><a href="#基础知识" class="headerlink" title="基础知识"></a>基础知识</h4><h5 id="文件描述符(fd)"><a href="#文件描述符(fd)" class="headerlink" title="文件描述符(fd)"></a>文件描述符(fd)</h5><p>Linux shell中的File Descripter(文件描述符,缩写fd)可以理解为一个指向文件的指针。</p><p>默认有三个FD:0,1,2。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">0 Standard Input 标准输入</span><br><span class="line">1 Standard Output 正确输出</span><br><span class="line">2 Standard Error 错误输出</span><br></pre></td></tr></table></figure><p>除了上面三个标准的描述符外,我们还可以在进程中去自定义其他的数字作为文件描述符,后面例子中会出现自定义数字。每一个文件描述符会对应一个打开文件,同时,不同的文件描述符也可以对应同一个打开文件;同一个文件可以被不同的进程打开,也可以被同一个进程多次打开。(跟匿名管道相比;普通管道:私家车,FIFO管道:公车)</p><h5 id="命名管道"><a href="#命名管道" class="headerlink" title="命名管道"></a>命名管道</h5><p>我们之前接触过的管道“1”,其实叫做匿名管道,它左边的输出作为右边命令的输入。这个匿名管道只能为两边的命令提供服务,它是无法让其他进程连接的。</p><p>实际上,这两个进程(cat和less)并不知道管道的存在,它们只是从标准文件描述符中读取数据和写入数据。</p><p>另外一种管道叫做命名管道,英文(First In First Out,简称FIFO)。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">FIFO本质上和匿名管道的功能一样,只不过它有一些特点:</span><br><span class="line"></span><br><span class="line">1)在文件系统中,FIFO拥有名称,并且是以设备特俗文件的形式存在的;</span><br><span class="line">2)任何进程都可以通过FIFO共享数据;</span><br><span class="line">3)除非FIFO两端同时有读与写的进程,否则FIFO的数据流通将会阻塞;</span><br><span class="line">4)匿名管道是由shell自动创建的,存在于内核中;而FIFO则是由程序创建的(比如mkfifo命令),存在于文件系统中;</span><br><span class="line">5)匿名管道是单向的字节流,而FIFO则是双向的字节流;</span><br><span class="line"></span><br><span class="line">有了上面的基础知识储备后,下面我们来用FIFO来实现shell的多进程并发控制。</span><br></pre></td></tr></table></figure><h3 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h3><p><a href="https://zhuanlan.zhihu.com/p/68574239">Linux 1 Shell“ 多线程”,提高工作效率</a></p><p><a href="https://www.cnblogs.com/pugang/p/13268897.html">Linux Shell命名管道FIFO - 多进程动态并发</a></p><p><a href="https://blog.csdn.net/weiyuefei/article/details/38824681">【转】Linux shell IO重定向</a></p><p><a href="https://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html">linux shell数据重定向(输入重定向与输出重定向)详细分析</a></p>]]></content>
<summary type="html"><h3 id="普通多进程"><a href="#普通多进程" class="headerlink" title="普通多进程"></a>普通多进程</h3><h4 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原</summary>
<category term="shell" scheme="http://example.com/categories/shell/"/>
<category term="并发" scheme="http://example.com/tags/%E5%B9%B6%E5%8F%91/"/>
</entry>
<entry>
<title>数据读取模块</title>
<link href="http://example.com/2022/07/11/%E6%95%B0%E6%8D%AE%E8%AF%BB%E5%8F%96%E6%A8%A1%E5%9D%97/"/>
<id>http://example.com/2022/07/11/%E6%95%B0%E6%8D%AE%E8%AF%BB%E5%8F%96%E6%A8%A1%E5%9D%97/</id>
<published>2022-07-10T16:00:00.000Z</published>
<updated>2022-09-21T08:25:36.000Z</updated>
<content type="html"><![CDATA[<h3 id="读取xlsx文件"><a href="#读取xlsx文件" class="headerlink" title="读取xlsx文件"></a>读取xlsx文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">import pandas as pd</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># 读取xlsx文件</span><br><span class="line"># 安装 pip3 install openpyxl</span><br><span class="line"></span><br><span class="line">df_xlsx = pd.read_excel('/root/test2.xlsx', engine='openpyxl', sheet_name='工作表1',keep_default_na=False)</span><br><span class="line"></span><br><span class="line"># keep_default_na=False 把空值不变成NaN</span><br><span class="line"></span><br><span class="line">print(df_xlsx)</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"> uuid host init_host 地区 运营商 service_name</span><br><span class="line">0 d78230 183.215.145.111 183.215.145.222 湖南 xx</span><br><span class="line">1 46ef0c 111.8.203.111 湖南 移动 xx</span><br></pre></td></tr></table></figure><h3 id="df为Dataframe格式数据"><a href="#df为Dataframe格式数据" class="headerlink" title="df为Dataframe格式数据"></a>df为Dataframe格式数据</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">df.shape 返回df/表格的形状(几行几列),例如返回值为(2,6),则该df是2行6列</span><br><span class="line"></span><br><span class="line">df.shape[0] 返回行数</span><br><span class="line"></span><br><span class="line">de.shape[1] 返回列数</span><br><span class="line"></span><br><span class="line">可以使用for循环对df进行操作:</span><br><span class="line">for row in range(0, df_xlsx.shape[0]):</span><br><span class="line"> print(df_xlsx['uuid'][row])</span><br><span class="line"></span><br><span class="line">将其转换为列表或者字典</span><br></pre></td></tr></table></figure><h3 id="读取csv文件"><a href="#读取csv文件" class="headerlink" title="读取csv文件"></a>读取csv文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">import csv</span><br><span class="line"># 从csv中读取数据</span><br><span class="line"></span><br><span class="line">with open('/root/test.csv','r', encoding='utf-8') as f:</span><br><span class="line"> lines=csv.reader(f)</span><br><span class="line"> for line in lines:</span><br><span class="line"> print(line)</span><br><span class="line"></span><br><span class="line">['a9e7b4', '福建省', '电信', '845', '1000']</span><br><span class="line">['43908a', '福建省', '电信', '357', '1000']</span><br><span class="line">['8dd28d', '浙江省', '电信', '828', '1000']</span><br></pre></td></tr></table></figure><h3 id="写入xlsx文件"><a href="#写入xlsx文件" class="headerlink" title="写入xlsx文件"></a>写入xlsx文件</h3><h4 id="其他类型转为Dataframe"><a href="#其他类型转为Dataframe" class="headerlink" title="其他类型转为Dataframe"></a>其他类型转为Dataframe</h4><p>两个字典嵌套转Dataframe</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">>>> import pandas as pd</span><br><span class="line">>>> my_dict = {'i': {'a':1}, 'love': {'b':2}, 'you': {'c':3}}</span><br><span class="line">>>> a=pd.DataFrame(my_dict)</span><br><span class="line">>>> print(a)</span><br><span class="line"> i love you</span><br><span class="line">a 1.0 NaN NaN</span><br><span class="line">b NaN 2.0 NaN</span><br><span class="line">c NaN NaN 3.0</span><br><span class="line"></span><br><span class="line">具体例子具体分析吧</span><br><span class="line">建议:其他数据格式转Dataframe,最好先使用其他格式排列好数据,再转df,df直接输出到xlsx就行</span><br></pre></td></tr></table></figure><h3 id="写入csv文件"><a href="#写入csv文件" class="headerlink" title="写入csv文件"></a>写入csv文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">import csv</span><br><span class="line"></span><br><span class="line">with open('test.csv', 'w', newline='',encoding='utf-8') as f:</span><br><span class="line"> writer = csv.writer(f)</span><br><span class="line">#一行行写入</span><br><span class="line"> writer.writerows(list2)</span><br></pre></td></tr></table></figure><h3 id="elk拉取数据"><a href="#elk拉取数据" class="headerlink" title="elk拉取数据"></a>elk拉取数据</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line">from elasticsearch import Elasticsearch</span><br><span class="line"></span><br><span class="line">es = Elasticsearch(["192.168.3.1:9200"],timeout=120)</span><br><span class="line"></span><br><span class="line"> body={</span><br><span class="line"> "query": {</span><br><span class="line"> "bool": {</span><br><span class="line"> "must": [</span><br><span class="line"> {</span><br><span class="line"> "match": {</span><br><span class="line"> "IpMd5.keyword": uuid</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> "must_not": [],</span><br><span class="line"> "should": [],</span><br><span class="line"> "filter": [</span><br><span class="line"> {</span><br><span class="line"> "range": {</span><br><span class="line"> "Time": {</span><br><span class="line"> "gte": "2022-06-29T20:20:00+08:00",</span><br><span class="line"> "lt": "2022-06-29T20:25:00+08:00"</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> res = es.search(index='nodeslogW', size=300, body=body)</span><br><span class="line"># 返回的是字典的格式</span><br><span class="line">doc = res['hits']['hits']</span><br><span class="line"> if len(doc):</span><br><span class="line"> for item in doc:</span><br><span class="line"> print(item['_source']['Services']['XX']['buffer'])</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/query-dsl-intro.html#query-dsl-intro">参考:查询表达式</a></p><p><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/bool-query.html#bool-query">参考:组合查询</a></p>]]></content>
<summary type="html"><h3 id="读取xlsx文件"><a href="#读取xlsx文件" class="headerlink" title="读取xlsx文件"></a>读取xlsx文件</h3><figure class="highlight plaintext"><table><tr><t</summary>
<category term="文本" scheme="http://example.com/categories/%E6%96%87%E6%9C%AC/"/>
<category term="python" scheme="http://example.com/tags/python/"/>
</entry>
<entry>
<title>shell脚本EOF解析</title>
<link href="http://example.com/2022/07/08/shell%E8%84%9A%E6%9C%ACEOF%E5%A6%99%E7%94%A8/"/>
<id>http://example.com/2022/07/08/shell%E8%84%9A%E6%9C%ACEOF%E5%A6%99%E7%94%A8/</id>
<published>2022-07-07T16:00:00.000Z</published>
<updated>2022-07-08T10:08:34.000Z</updated>
<content type="html"><![CDATA[<h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p>使用EOF结合cat命令可以把多行数据写入文件中</p><p>这个EOF就像是标识符一样,标明开始、结束,换成STD也一样。</p><p>EOF嵌套使用就是把EOF改个名字罢了,不然shell哪知道谁跟谁是一对啊</p><p>通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">< :输入重定向</span><br><span class="line">> :输出重定向</span><br><span class="line">>> :输出重定向,进行追加,不会覆盖之前内容</span><br><span class="line"><< :标准输入来自命令行的一对分隔号的中间内容.</span><br></pre></td></tr></table></figure><p>因为 << 的意思是:标准输入来自命令行的一对分隔号的中间内容,也就是你在bash上的标准输入,如果有s=$(data)的话要使用转义字符s=$(data),不然这个就会执行了,写到文件里的就是s=3点11分。并且 `` 都要改成 $()。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">[root@XX /]# cat << EOF</span><br><span class="line">> hshhs</span><br><span class="line">> ksk</span><br><span class="line">> EOF</span><br><span class="line">hshhs</span><br><span class="line">ksk</span><br><span class="line"></span><br><span class="line">[root@XX /]# cat << STD</span><br><span class="line">> h1</span><br><span class="line">> STD</span><br><span class="line">h1</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="将内容输出到文件中"><a href="#将内容输出到文件中" class="headerlink" title="将内容输出到文件中"></a>将内容输出到文件中</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[root@XX /]# cat << EOF >> m</span><br><span class="line">> hello m</span><br><span class="line">> EOF</span><br><span class="line">[root@XX /]# cat m</span><br><span class="line">hello m</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="嵌套使用"><a href="#嵌套使用" class="headerlink" title="嵌套使用"></a>嵌套使用</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">[root@XX /]# cat << EOF > m</span><br><span class="line">> hello m</span><br><span class="line">> bye m</span><br><span class="line">> cat << STD > n</span><br><span class="line">> hello n</span><br><span class="line">> bye n</span><br><span class="line">> EOF</span><br><span class="line"></span><br><span class="line">[root@XX /]# cat m</span><br><span class="line">hello m</span><br><span class="line">bye m</span><br><span class="line">cat << STD > n</span><br><span class="line">hello n</span><br><span class="line">bye n</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h3><p><a href="https://blog.csdn.net/zongshi1992/article/details/71693045">linux shell脚本EOF妙用</a></p><p><a href="https://www.h5w3.com/z/510614.html">shell多行重定向方法(多重嵌套)</a></p>]]></content>
<summary type="html"><h3 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h3><p>使用EOF结合cat命令可以把多行数据写入文件中</p>
<p>这个EOF就像是标识符一样,标明开始、结束,换成STD也一样。</p>
<p</summary>
<category term="文本" scheme="http://example.com/categories/%E6%96%87%E6%9C%AC/"/>
<category term="EOF" scheme="http://example.com/tags/EOF/"/>
</entry>
<entry>
<title>centos7安装nload流量监控</title>
<link href="http://example.com/2022/07/06/centos7%E5%AE%89%E8%A3%85nload%E6%B5%81%E9%87%8F%E7%9B%91%E6%8E%A7/"/>
<id>http://example.com/2022/07/06/centos7%E5%AE%89%E8%A3%85nload%E6%B5%81%E9%87%8F%E7%9B%91%E6%8E%A7/</id>
<published>2022-07-05T16:00:00.000Z</published>
<updated>2022-07-07T04:48:26.000Z</updated>
<content type="html"><![CDATA[<h3 id="方法一"><a href="#方法一" class="headerlink" title="方法一"></a>方法一</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yum -y install nload</span><br></pre></td></tr></table></figure><h3 id="方法二"><a href="#方法二" class="headerlink" title="方法二"></a>方法二</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">yum install -y gcc</span><br><span class="line">yum install -y gcc-c++</span><br><span class="line">yum install -y ncurses-devel</span><br><span class="line"> </span><br><span class="line">wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz</span><br><span class="line">tar zxvf nload-0.7.4.tar.gz</span><br><span class="line">cd nload-0.7.4</span><br><span class="line">./configure</span><br><span class="line">make;make install</span><br></pre></td></tr></table></figure><h3 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nload ppp0 ppp1 ppp2</span><br></pre></td></tr></table></figure><p><a href="https://blog.csdn.net/m0_38110132/article/details/80681261">参考:Centos7安装nload流量监控</a></p>]]></content>
<summary type="html"><h3 id="方法一"><a href="#方法一" class="headerlink" title="方法一"></a>方法一</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pr</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="linux" scheme="http://example.com/tags/linux/"/>
</entry>
<entry>
<title>开机自启 rc.d/rc.loacl</title>
<link href="http://example.com/2022/06/30/%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E8%84%9A%E6%9C%AC/"/>
<id>http://example.com/2022/06/30/%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E8%84%9A%E6%9C%AC/</id>
<published>2022-06-29T16:00:00.000Z</published>
<updated>2022-07-06T09:01:28.000Z</updated>
<content type="html"><![CDATA[<h3 id="rc-d-rc-local简介"><a href="#rc-d-rc-local简介" class="headerlink" title="rc.d/rc.local简介"></a>rc.d/rc.local简介</h3><p>/etc/rc.local 是 /etc/rc.d/rc.local的软连接(系统安装时根据/etc/rc.d/rc.local生成的)</p><p>所以开机自启实际上是执行/etc/rc.d/rc.local这个文件(该文件需要可执行权限,文件头为 #!/bin/bash)</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root /]# ls -l /etc/rc.local </span><br><span class="line">lrwxrwxrwx 1 root root 13 Aug 24 2021 /etc/rc.local -> rc.d/rc.local</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="问题一:rc-d-rc-loacl无法执行"><a href="#问题一:rc-d-rc-loacl无法执行" class="headerlink" title="问题一:rc.d/rc.loacl无法执行"></a>问题一:rc.d/rc.loacl无法执行</h3><p>一般来说,造成这种情况的是由于该文件没有可执行权限<br>下面来说下不一般的</p><p>首先看看有没有rc.local这个服务</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">systemctl list-unit-files|grep rc.local</span><br><span class="line">rc-local.service static</span><br></pre></td></tr></table></figure><p>再看看rc.local服务的状态</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">systemctl status rc-local.service</span><br><span class="line"></span><br><span class="line">● rc-local.service - /etc/rc.d/rc.local Compatibility</span><br><span class="line"> Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)</span><br><span class="line"> Active: failed (Result: exit-code) since Thu 2022-06-30 14:39:40 CST; 7min ago</span><br><span class="line"> Process: 1074 ExecStart=/etc/rc.d/rc.local start (code=exited, status=203/EXEC)</span><br><span class="line"></span><br><span class="line">Jun 30 14:39:39 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Starting /etc/rc.d/rc.local Compatibility...</span><br><span class="line">Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: rc-local.service: control process exited, code=exited status=203</span><br><span class="line">Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Failed to start /etc/rc.d/rc.local Compatibility.</span><br><span class="line">Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: Unit rc-local.service entered failed state.</span><br><span class="line">Jun 30 14:39:40 cac8821bbb6ae2bd3553cc0552e923ddXX systemd[1]: rc-local.service failed.</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>很显然,服务启动失败</p><p>一般来说服务组件是没问题的,那么我们检查下/etc/rc.d/rc.local文件,看看是不是该文件格式不正确</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cat /etc/rc.d/rc.local</span><br><span class="line"></span><br><span class="line">/bin/bash /s.sh</span><br></pre></td></tr></table></figure><p>果然,少了<code>#!/bin/bash</code>作为第一行</p><p>加上后就OK了</p><p>参考:<a href="https://blog.csdn.net/DSK_981029/article/details/120305469">树莓派:【FAILED】 Failed to start /etc/rc.local Compatibility.</a></p>]]></content>
<summary type="html"><h3 id="rc-d-rc-local简介"><a href="#rc-d-rc-local简介" class="headerlink" title="rc.d&#x2F;rc.local简介"></a>rc.d&#x2F;rc.local简介</h3><p>&#x2F;et</summary>
<category term="linux" scheme="http://example.com/categories/linux/"/>
<category term="linux" scheme="http://example.com/tags/linux/"/>
</entry>
<entry>
<title>linux查找字符串所在行</title>
<link href="http://example.com/2022/06/23/linux%E6%9F%A5%E6%89%BE%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%89%80%E5%9C%A8%E8%A1%8C/"/>
<id>http://example.com/2022/06/23/linux%E6%9F%A5%E6%89%BE%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%89%80%E5%9C%A8%E8%A1%8C/</id>
<published>2022-06-22T16:00:00.000Z</published>
<updated>2022-06-23T05:49:30.000Z</updated>
<content type="html"><![CDATA[<h3 id="模糊匹配-输出行号"><a href="#模糊匹配-输出行号" class="headerlink" title="模糊匹配 输出行号"></a>模糊匹配 输出行号</h3><ol><li><p>grep</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"># 输出内容同时输出行号</span><br><span class="line">grep -n "要匹配的字符串" 文件名</span><br></pre></td></tr></table></figure></li><li><p>awk</p></li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"># 输出行号,并不输出内容</span><br><span class="line"># 注意是单引号</span><br><span class="line">awk '/要匹配字符串/{print NR}' 文件名</span><br></pre></td></tr></table></figure><p>这里涉及一个小的知识点,如何在awk中写变量呢。<br>比如“要匹配字符串”位置想要写入一个变量,要在变量外加单引号,再加双引号:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"># 变量赋值</span><br><span class="line">word=hello</span><br><span class="line"></span><br><span class="line"># 在awk中引入变量, 打印变量所在的行</span><br><span class="line">awk '/"'${word}'"/{print $0}' file.txt</span><br><span class="line"># 其中${word}是变量较好的写法,$word 的写法也可以执行</span><br></pre></td></tr></table></figure><h3 id="精确匹配(全匹配)输出行号"><a href="#精确匹配(全匹配)输出行号" class="headerlink" title="精确匹配(全匹配)输出行号"></a>精确匹配(全匹配)输出行号</h3><ol><li>grep</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep -wn "要匹配的字符串" 文件名</span><br></pre></td></tr></table></figure><p>其中 grep -w 是完全匹配要匹配的字符串,字符串只是字段内一部分也可以匹配。比如,</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"># 结果为abcd, abcde, abc等</span><br><span class="line">grep "abc" </span><br><span class="line"># 结果为abc</span><br><span class="line">grep -w "abc" </span><br></pre></td></tr></table></figure><ol start="2"><li>awk</li></ol><p>awk并不能像grep那样去过滤单词。grep可以过滤到单词,awk只能过滤到字段。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"># 匹配以逗号为分隔(如csv)的第三列/第三个字段,打印行号</span><br><span class="line">awk -F, '$3=="要匹配的字符串" {print NR}' 文件名</span><br><span class="line"></span><br><span class="line"># 匹配以逗号为分隔(如csv)的第三列/第三个字段</span><br><span class="line"># 打印该行内容 写{print}或{print $0} 都可以</span><br><span class="line">awk -F, '$3=="要匹配的字符串" {print}' 文件名</span><br></pre></td></tr></table></figure><h3 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h3><p><a href="https://blog.csdn.net/Olivia_Vang/article/details/104076272">linux查找字符串所在行,输出行号</a></p>]]></content>
<summary type="html"><h3 id="模糊匹配-输出行号"><a href="#模糊匹配-输出行号" class="headerlink" title="模糊匹配 输出行号"></a>模糊匹配 输出行号</h3><ol>
<li><p>grep</p>
<figure class="highlight</summary>
<category term="文本" scheme="http://example.com/categories/%E6%96%87%E6%9C%AC/"/>
<category term="awk" scheme="http://example.com/tags/awk/"/>
<category term="grep" scheme="http://example.com/tags/grep/"/>
</entry>
<entry>
<title>mariadb数据库使用</title>
<link href="http://example.com/2022/06/21/mariadb%E4%BD%BF%E7%94%A8/"/>
<id>http://example.com/2022/06/21/mariadb%E4%BD%BF%E7%94%A8/</id>
<published>2022-06-20T16:00:00.000Z</published>
<updated>2022-06-29T10:35:52.000Z</updated>
<content type="html"><![CDATA[<p>安装:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">yum -y install mariadb-server mariadb </span><br><span class="line"></span><br><span class="line">安装完后</span><br><span class="line">systemctl start mariadb</span><br><span class="line">systemctl enable mariadb</span><br></pre></td></tr></table></figure><p>登录</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">mysql -u root -p</span><br><span class="line"></span><br><span class="line">第一次登陆不需要输入密码,直接点enter进入就行</span><br></pre></td></tr></table></figure><p>列出所有表</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">show tables;</span><br></pre></td></tr></table></figure><p>列出所有数据库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">show databases;</span><br></pre></td></tr></table></figure><p>查看用户信息</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">select user,host from mysql.user;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">MariaDB [(none)]> select user,host from mysql.user;</span><br><span class="line">+------+------------------------------------+</span><br><span class="line">| user | host |</span><br><span class="line">+------+------------------------------------+</span><br><span class="line">| root | 127.0.0.1 |</span><br><span class="line">| root | ::1 |</span><br><span class="line">| | cac8821bbb6ae2bd3553cc0552e923ddxx |</span><br><span class="line">| root | cac8821bbb6ae2bd3553cc0552e923ddxx |</span><br><span class="line">| Fish | host |</span><br><span class="line">| | localhost |</span><br><span class="line">| root | localhost |</span><br><span class="line">+------+------------------------------------+</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>删除用户</p><p>注:在MySQL中,用户帐户由用户名和主机名部分组成,jabba@localhost 和 <a href="mailto:jabba@10.10.8.8">jabba@10.10.8.8</a> 是不同的用户帐户。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">drop user Fish@host;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">MariaDB [(none)]> drop user Fish@host;</span><br><span class="line">Query OK, 0 rows affected (0.00 sec)</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>创建用户</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">create user 'Fish'@'localhost' identified by 'Fish@#666';</span><br></pre></td></tr></table></figure><p>创建数据库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">create database jojo;</span><br></pre></td></tr></table></figure><p>选择数据库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">use jojo;</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><p>安装:</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span></summary>
<category term="服务器" scheme="http://example.com/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
<category term="数据库" scheme="http://example.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
</entry>
<entry>
<title>dell服务器开机无法正常启动</title>
<link href="http://example.com/2022/06/21/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/"/>
<id>http://example.com/2022/06/21/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/</id>
<published>2022-06-20T16:00:00.000Z</published>
<updated>2022-06-21T06:39:28.000Z</updated>
<content type="html"><![CDATA[<p><a href="https://blog.csdn.net/weixin_43822878/article/details/120267752">dell服务器开机无法正常启动Strike the F1 key to continue, F2 to run the system setup program</a></p>]]></content>
<summary type="html"><p><a href="https://blog.csdn.net/weixin_43822878/article/details/120267752">dell服务器开机无法正常启动Strike the F1 key to continue, F2 to run the sys</summary>
<category term="服务器" scheme="http://example.com/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
<category term="服务器" scheme="http://example.com/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
</entry>
<entry>
<title>go使用rsa加密</title>
<link href="http://example.com/2022/06/10/go%E4%BD%BF%E7%94%A8rsa%E5%8A%A0%E5%AF%86/"/>
<id>http://example.com/2022/06/10/go%E4%BD%BF%E7%94%A8rsa%E5%8A%A0%E5%AF%86/</id>
<published>2022-06-09T16:00:00.000Z</published>
<updated>2022-06-10T10:00:34.000Z</updated>
<content type="html"><![CDATA[<p><a href="https://studygolang.com/articles/28458">用 Golang 实现 RSA 加密和签名(有示例)</a></p><p><a href="https://www.jianshu.com/p/95fe3fa26d46">go语言RSA API使用示例</a></p>]]></content>
<summary type="html"><p><a href="https://studygolang.com/articles/28458">用 Golang 实现 RSA 加密和签名(有示例)</a></p>
<p><a href="https://www.jianshu.com/p/95fe3fa26d46">g</summary>
<category term="go语言" scheme="http://example.com/categories/go%E8%AF%AD%E8%A8%80/"/>
<category term="学习笔记" scheme="http://example.com/tags/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
<category term="go" scheme="http://example.com/tags/go/"/>
</entry>
<entry>
<title>iperf3使用方法详解</title>
<link href="http://example.com/2022/06/10/iperf3%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3/"/>
<id>http://example.com/2022/06/10/iperf3%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3/</id>
<published>2022-06-09T16:00:00.000Z</published>
<updated>2022-06-10T10:08:54.000Z</updated>
<content type="html"><![CDATA[<p><a href="https://zhuanlan.zhihu.com/p/314727150">iperf3使用方法详解</a></p>]]></content>
<summary type="html"><p><a href="https://zhuanlan.zhihu.com/p/314727150">iperf3使用方法详解</a></p>
</summary>
<category term="linux网络" scheme="http://example.com/categories/linux%E7%BD%91%E7%BB%9C/"/>
<category term="iper3" scheme="http://example.com/tags/iper3/"/>
<category term="测速" scheme="http://example.com/tags/%E6%B5%8B%E9%80%9F/"/>
</entry>
<entry>
<title>如何测试端口通不通</title>
<link href="http://example.com/2022/06/10/%E5%A6%82%E4%BD%95%E6%B5%8B%E8%AF%95%E7%AB%AF%E5%8F%A3%E9%80%9A%E4%B8%8D%E9%80%9A/"/>
<id>http://example.com/2022/06/10/%E5%A6%82%E4%BD%95%E6%B5%8B%E8%AF%95%E7%AB%AF%E5%8F%A3%E9%80%9A%E4%B8%8D%E9%80%9A/</id>
<published>2022-06-09T16:00:00.000Z</published>
<updated>2022-07-06T04:25:34.000Z</updated>
<content type="html"><![CDATA[<h3 id="查看某一端口是否开放"><a href="#查看某一端口是否开放" class="headerlink" title="查看某一端口是否开放"></a>查看某一端口是否开放</h3><ol><li>lsof</li></ol><p>你可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:</p><p>lsof -i:80</p><p>如果有显示说明已经开放了,如果没有显示说明没有开放</p><ol start="2"><li>netstat</li></ol><p>netstat -aptn执行看看,是否监听在0.0.0.0:3306</p><p>netstat -nupl (UDP类型的端口)<br>netstat -ntpl (TCP类型的端口)</p><ol start="4"><li>telnet</li></ol><p>telnet ip 端口号 方式测试远程主机端口是否打开</p><p><a href="https://blog.csdn.net/swazer_z/article/details/64442730">如何测试端口通不通(四种方法)</a></p><p><a href="https://cloud.tencent.com/developer/article/1473377">Centos查看端口占用情况和开启端口命令</a></p><h3 id="nc-测试端口"><a href="#nc-测试端口" class="headerlink" title="nc 测试端口"></a>nc 测试端口</h3><p>yum -y install nc</p><h4 id="TCP端口测试"><a href="#TCP端口测试" class="headerlink" title="TCP端口测试"></a>TCP端口测试</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">在192.168.130.1上执行:</span><br><span class="line">nc -l 8888</span><br><span class="line">然后输入内容,并回车;</span><br><span class="line"></span><br><span class="line">在192.168.130.2上执行:</span><br><span class="line">nc 192.168.130.1 8888</span><br><span class="line">并观察是否有内容输出,如果有,说明端口是通的。</span><br></pre></td></tr></table></figure><h4 id="UDP端口测试"><a href="#UDP端口测试" class="headerlink" title="UDP端口测试"></a>UDP端口测试</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">在192.168.130.1上执行:</span><br><span class="line">nc -ul 8888 #监听8888端口</span><br><span class="line"></span><br><span class="line">在192.168.130.2上执行:</span><br><span class="line">nc -u 192.168.130.1 8888</span><br><span class="line">然后输入内容,并回车,并观察130.1上是否有内容输出,如果有,说明端口是通的。</span><br></pre></td></tr></table></figure><p><a href="https://blog.csdn.net/d1240673769/article/details/102632178">参考:利用nc测试服务器之间端口之间的连通性</a></p>]]></content>
<summary type="html"><h3 id="查看某一端口是否开放"><a href="#查看某一端口是否开放" class="headerlink" title="查看某一端口是否开放"></a>查看某一端口是否开放</h3><ol>
<li>lsof</li>
</ol>
<p>你可以使用 lsof 命令</summary>
<category term="linux网络" scheme="http://example.com/categories/linux%E7%BD%91%E7%BB%9C/"/>
<category term="端口" scheme="http://example.com/tags/%E7%AB%AF%E5%8F%A3/"/>
</entry>
</feed>