JVM第十七讲:调试排错 - Java 问题排查之Linux命令

调试排错 - Java 问题排查之Linux命令

本文是JVM第十七讲, Java 问题调试排错。Java 在线问题排查主要分两篇:本文是第一篇,通过linux常用命令排查。

文章目录

  • 调试排错 - Java 问题排查之Linux命令
    • 在项目中,日志操作的常用命令
      • 1、在终端中登录日志系统
      • 2、查看模块位置的指令
      • 3、查看错误日志
    • 1、文本操作
      • 1.1、文本查找 - grep (常用)
      • 1.2、文本分析 - awk (不常用)
      • 1.3、文本处理 - sed (不常用)
    • 2、文件操作
      • 2.1、文件监听 - tail (常用)
      • 2.2、文件查找 - find (常用)
      • 2.3、pgm (不常用)
    • 3、查看网络和进程
      • 3.1、查看所有网络接口的属性 (常用)
      • 3.2、查看防火墙设置 (不常用)
      • 3.3、查看路由表 (不常用)
      • 3.4、netstat (不常用)
      • 3.5、查看所有进程 (常用)
      • 3.6、top (常用)
    • 4、查看磁盘和内存相关
      • 4.1、查看内存使用 - free -m (常用)
      • 4.2、查看各分区使用情况 (常用)
      • 4.3、查看指定目录的大小 (常用)
      • 4.4、查看内存总量 (常用)
      • 4.5、查看空闲内存量 (常用)
      • 4.6、查看系统负载磁盘和分区 (常用)
      • 4.7、查看系统负载磁盘和分区 (常用)
      • 4.8、查看挂接的分区状态 (常用)
      • 4.9、查看所有分区 (常用)
      • 4.10、查看所有交换分区
      • 4.11、查看硬盘大小
    • 5、查看用户和组相关
      • 5.1、查看活动用户
      • 5.2、查看指定用户信息
      • 5.3、查看用户登录日志
      • 5.4、查看系统所有用户
      • 5.5、查看系统所有组
    • 6、查看服务,模块和包相关
    • 7、查看系统,设备,环境信息
    • 8、tsar

在项目中,日志操作的常用命令

1、在终端中登录日志系统

  • 账号: ssh developer@172.16.101.123 密码: zcy 日志中心

2、查看模块位置的指令

  • find -name web-item* 或 find ./ -name item-mi* (模糊搜索以web-item开头的模块)

3、查看错误日志

  • 方式1: tail -f filename(filename为前一个命令查到的路径)
  • 方式2:通过 vi filename 来查询 可以更加方便地搜索日志中的关键字

注意事项

  • 日志操作命令仅能查看线下环境(dev-debug/test),staging和真线必须使用“日志平台”进行查看日志平台地址

常用vi命令

  • shift+g 查看最新日志 ?关键字 结合 n /n 关键字搜索

具体可以参考这篇文章:开发工具篇第九讲:菜鸟入坑指南

1、文本操作

1.1、文本查找 - grep (常用)

grep常用命令:

# 基本使用
grep yoursearchkeyword file.txt     #文件查找
grep 'KeyWord otherKeyWord' file.txt cpf.txt #多文件查找, 含空格加引号
grep 'KeyWord' /home/admin -r -n #目录下查找所有符合关键字的文件
grep 'keyword' /home/admin -r -n -i # -i 忽略大小写
grep 'KeyWord' /home/admin -r -n --include *.{vm,java} #指定文件后缀
grep 'KeyWord' /home/admin -r -n --exclude *.{vm,java} #反匹配# cat + grep
cat file.txt | grep -i keyword # 查找所有keyword且不分大小写
cat file.txt | grep -c 'KeyWord' # 统计Keyword次数# seq + grep
seq 10 | grep 5 -A 3    #上匹配
seq 10 | grep 5 -B 3    #下匹配
seq 10 | grep 5 -C 3    #上下匹配,平时用这个就妥了

Grep的参数:

--color=auto:显示颜色;
-i, --ignore-case:忽略字符大小写;
-o, --only-matching:只显示匹配到的部分;
-n, --line-number:显示行号;
-v, --invert-match:反向显示,显示未匹配到的行;
-E, --extended-regexp:支持使用扩展的正则表达式;
-q, --quiet, --silent:静默模式,即不输出任何信息;
-w, --word-regexp:整行匹配整个单词;
-c, --count:统计匹配到的行数; print a count of matching lines;-B, --before-context=NUM:print NUM lines of leading context   后#行 
-A, --after-context=NUM:print NUM lines of trailing context   前#行 
-C, --context=NUM:print NUM lines of output context           前后各#行 

1.2、文本分析 - awk (不常用)

awk基本命令:

# 基本使用
awk '{print $4,$6}' file.txt
awk '{print NR,$0}' file.txt cpf.txt
awk '{print FNR,$0}' file.txt cpf.txt
awk '{print FNR,FILENAME,$0}' file.txt cpf.txt
awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' file.txt cpf.txt
echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}'# 匹配
awk '/ldb/ {print}' file.txt   #匹配ldb
awk '!/ldb/ {print}' file.txt  #不匹配ldb
awk '/ldb/ && /LISTEN/ {print}' file.txt   #匹配ldb和LISTEN
awk '$5 ~ /ldb/ {print}' file.txt #第五列匹配ldb

内建变量

`NR`: NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。`FNR`: 在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。`NF`: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。

更多请参考:Linux awk 命令

1.3、文本处理 - sed (不常用)

sed常用:

# 文本打印
sed -n '3p' file.log #只打印第三行
sed -n '$p' file.log #只打印最后一行
sed -n '3,9p' file.log #只查看文件的第3行到第9行
sed -n -e '3,9p' -e '=' file.log #打印3-9行,并显示行号
sed -n '/root/p' file.log #显示包含root的行
sed -n '/hhh/,/omc/p' file.log # 显示包含"hhh"的行到包含"omc"的行之间的行# 文本替换
sed -i 's/root/world/g' file.log # 用 world 替换file.log文件中的root; s==search  查找并替换, g==global  全部替换, -i: implace# 文本插入
sed '1,4i hahaha' file.log # 在文件第一行和第四行的每行下面添加hahaha
sed -e '1i happy' -e '$a new year' file.log  #【界面显示】在文件第一行添加happy,文件结尾添加new year
sed -i -e '1i happy' -e '$a new year' file.log #【真实写入文件】在文件第一行添加happy,文件结尾添加new year# 文本删除
sed  '3,9d' file.log # 删除第3到第9行,只是不显示而已
sed '/hhh/,/omc/d' file.log # 删除包含"hhh"的行到包含"omc"的行之间的行
sed '/omc/,10d' file.log # 删除包含"omc"的行到第十行的内容# 与find结合
find . -name  "*.txt" |xargs   sed -i 's/hhhh/\hHHh/g'
find . -name  "*.txt" |xargs   sed -i 's#hhhh#hHHh#g'
find . -name  "*.txt" -exec sed -i 's/hhhh/\hHHh/g' {} \;
find . -name  "*.txt" |xargs cat

更多请参考:Linux sed 命令 或者 Linux sed命令详解

2、文件操作

2.1、文件监听 - tail (常用)

最常用的 tail -f filename

# 基本使用
tail -f file.log # 循环监听文件
tail -300f file.log # 倒数300行并追踪文件
tail +20 file.log # 从第20行至文件末尾显示文件内容# tail f使用
tail f file.log #等同于tail -f -n 10 打印最后10行,然后追踪文件

tail -f 与tail F 与tailf三者区别

`tail  -f` 等于--follow=descriptor,根据文件描述进行追踪,当文件改名或删除后,停止追踪。`tail -F` 等于 --follow=name ==retry,根据文件名字进行追踪,当文件改名或删除后,保持重试,当有新的文件和他同名时,继续追踪`tail f` 等于tail -f -n 10(tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以 tailf 特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。

tail的参数

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

2.2、文件查找 - find (常用)

sudo -u admin find /home/admin /tmp /usr -name \*.log(多个目录去找)
find . -iname \*.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录)
find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/admin f -perm 777 -exec ls -l {} \; (按照权限查询文件)
find /home/admin -atime -1  1天内访问过的文件
find /home/admin -ctime -1  1天内状态改变过的文件    
find /home/admin -mtime -1  1天内修改过的文件
find /home/admin -amin -1  1分钟内访问过的文件
find /home/admin -cmin -1  1分钟内状态改变过的文件    
find /home/admin -mmin -1  1分钟内修改过的文件

2.3、pgm (不常用)

批量查询 vm-shopbase 满足条件的日志

pgm -A -f vm-shopbase 'cat /home/admin/shopbase/logs/shopbase.log.2017-01-17|grep 2069861630'

3、查看网络和进程

3.1、查看所有网络接口的属性 (常用)

[root@qiwenjie ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.31.165.194  netmask 255.255.240.0  broadcast 172.31.175.255ether 00:16:3e:08:c1:ea  txqueuelen 1000  (Ethernet)RX packets 21213152  bytes 2812084823 (2.6 GiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 25264438  bytes 46566724676 (43.3 GiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 502  bytes 86350 (84.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 502  bytes 86350 (84.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.2、查看防火墙设置 (不常用)

[root@qiwenjie ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destinationChain FORWARD (policy ACCEPT)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destination

3.3、查看路由表 (不常用)

[root@qiwenjie ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.175.253  0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.31.160.0    0.0.0.0         255.255.240.0   U     0      0        0 eth0

3.4、netstat (不常用)

查看所有监听端口

[root@qiwenjie ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      970/nginx: master p
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      1249/java
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      970/nginx: master p
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1547/sshd
tcp6       0      0 :::3306                 :::*                    LISTEN      1894/mysqld

查看所有已经建立的连接

[root@qiwenjie ~]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      970/nginx: master p
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      1249/java
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      970/nginx: master p
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1547/sshd
tcp        0      0 172.31.165.194:53874    100.100.30.25:80        ESTABLISHED 18041/AliYunDun
tcp        0     64 172.31.165.194:22       xxx.194.1.200:2649      ESTABLISHED 32516/sshd: root@pt
tcp6       0      0 :::3306                 :::*                    LISTEN      1894/m

查看当前连接

[root@qiwenjie ~]# netstat -nat|awk  '{print $6}'|sort|uniq -c|sort -rn5 LISTEN2 ESTABLISHED1 Foreign1 established)

查看网络统计信息进程

[root@qiwenjie ~]# netstat -s
Ip:21017132 total packets received0 forwarded0 incoming packets discarded21017131 incoming packets delivered25114367 requests sent out324 dropped because of missing route
Icmp:18088 ICMP messages received692 input ICMP message failed.ICMP input histogram:destination unreachable: 4241timeout in transit: 19echo requests: 13791echo replies: 4timestamp request: 3313825 ICMP messages sent0 ICMP messages failedICMP output histogram:destination unreachable: 1echo replies: 13791timestamp replies: 33
IcmpMsg:InType0: 4InType3: 4241InType8: 13791InType11: 19InType13: 33OutType0: 13791OutType3: 1OutType14: 33
Tcp:12210 active connections openings208820 passive connection openings54198 failed connection attempts9805 connection resets received
...

netstat 请参考这篇文章: Linux netstat命令详解

3.5、查看所有进程 (常用)

[root@qiwenjie ~]# ps -ef | grep java
root      1249     1  0 Nov04 ?        00:58:05 java -jar /opt/tech_doc/bin/tech_arch-0.0.1-RELEASE.jar --server.port=9999
root     32718 32518  0 08:36 pts/0    00:00:00 grep --color=auto java

3.6、top (常用)

top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了

# top -H -p pid
top - 08:37:51 up 45 days, 18:45,  1 user,  load average: 0.01, 0.03, 0.05
Threads:  28 total,   0 running,  28 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.7 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882088 total,    74608 free,   202228 used,  1605252 buff/cache
KiB Swap:  2097148 total,  1835392 free,   261756 used.  1502036 avail MemPID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND1347 root      20   0 2553808 113752   1024 S  0.3  6.0  48:46.74 VM Periodic Tas1249 root      20   0 2553808 113752   1024 S  0.0  6.0   0:00.00 java1289 root      20   0 2553808 113752   1024 S  0.0  6.0   0:03.74 java
...

4、查看磁盘和内存相关

4.1、查看内存使用 - free -m (常用)

[root@qiwenjie ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1837         196         824           0         816        1469
Swap:          2047         255        1792

4.2、查看各分区使用情况 (常用)

[root@qiwenjie ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M     0  919M   0% /dev/shm
tmpfs           919M  452K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G   15G   23G  40% /
tmpfs           184M     0  184M   0% /run/user/0

4.3、查看指定目录的大小 (常用)

[root@qiwenjie ~]# du -sh
803M

4.4、查看内存总量 (常用)

[root@qiwenjie ~]# grep MemTotal /proc/meminfo
MemTotal:        1882088 kB

4.5、查看空闲内存量 (常用)

[root@qiwenjie ~]# grep MemFree /proc/meminfo
MemFree:           74120 kB

4.6、查看系统负载磁盘和分区 (常用)

[root@qiwenjie ~]# grep MemFree /proc/meminfo
MemFree:           74120 kB

4.7、查看系统负载磁盘和分区 (常用)

[root@qiwenjie ~]# cat /proc/loadavg
0.01 0.04 0.05 2/174 32751

4.8、查看挂接的分区状态 (常用)

[root@qiwenjie ~]# mount | column -t
sysfs       on  /sys                             type  sysfs       (rw,nosuid,nodev,noexec,relatime)
proc        on  /proc                            type  proc        (rw,nosuid,nodev,noexec,relatime)
devtmpfs    on  /dev                             type  devtmpfs    (rw,nosuid,size=930732k,nr_inodes=232683,mode=755)
securityfs  on  /sys/kernel/security             type  securityfs  (rw,nosuid,nodev,noexec,relatime)
...

4.9、查看所有分区 (常用)

[root@qiwenjie ~]# fdisk -lDisk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008d73aDevice Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83884031    41940992   83  Linux

4.10、查看所有交换分区

[root@qiwenjie ~]# swapon -s
Filename                                Type            Size    Used    Priority
/etc/swap                               file    2097148 261756  -2

4.11、查看硬盘大小

[root@qiwenjie ~]# fdisk -l |grep Disk
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk label type: dos
Disk identifier: 0x0008d73a

5、查看用户和组相关

5.1、查看活动用户

[root@qiwenjie ~]# w08:47:20 up 45 days, 18:54,  1 user,  load average: 0.01, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    xxx.194.1.200    08:32    0.00s  0.32s  0.32s -bash

5.2、查看指定用户信息

[root@qiwenjie ~]# id
uid=0(root) gid=0(root) groups=0(root)

5.3、查看用户登录日志

[root@qiwenjie ~]# last
root     pts/0        xxx.194.1.200    Fri Dec 20 08:32   still logged in
root     pts/0        xxx.73.164.60     Thu Dec 19 21:47 - 00:28  (02:41)
root     pts/0        xxx.106.236.255  Thu Dec 19 16:00 - 18:24  (02:23)
root     pts/1        xxx.194.3.173    Tue Dec 17 13:35 - 17:37  (04:01)
root     pts/0        xxx.194.3.173    Tue Dec 17 13:35 - 17:37  (04:02)
...

5.4、查看系统所有用户

[root@qiwenjie ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
...

5.5、查看系统所有组

cut -d: -f1 /etc/group

6、查看服务,模块和包相关

# 查看当前用户的计划任务服务
crontab -l # 列出所有系统服务
chkconfig –list # 列出所有启动的系统服务程序
chkconfig –list | grep on # 查看所有安装的软件包
rpm -qa # 列出加载的内核模块
lsmod 

7、查看系统,设备,环境信息

# 常用
env # 查看环境变量资源
uptime # 查看系统运行时间、用户数、负载
lsusb -tv # 列出所有USB设备的linux系统信息命令
lspci -tv # 列出所有PCI设备
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令# /proc/
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息
cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"

8、tsar

tsar是淘宝开源的的采集工具。很好用, 将历史收集到的数据持久化在磁盘上,所以我们快速来查询历史的系统数据。当然实时的应用情况也是可以查询的啦。大部分机器上都有安装。

tsar  ##可以查看最近一天的各项指标
tsar --live ##可以查看实时指标,默认五秒一刷
tsar -d 20161218 ##指定查看某天的数据,貌似最多只能看四个月的数据
tsar --mem
tsar --load
tsar --cpu ##当然这个也可以和-d参数配合来查询某天的单个指标的情况 

具体可以看这篇文章:linux 淘宝开源监控工具tsar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/113439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 远程桌面软件

对于使用 Mac 计算机和笔记本电脑的企业来说&#xff0c;适用于 Mac 的远程桌面软件变得越来越重要&#xff0c;随着远程工作变得越来越普遍&#xff0c;IT 管理员和组织需要一种安全的方式来访问和修复问题、处理紧急任务以及监控远程工作站的状态&#xff0c;为了促进远距离协…

【Edabit 算法 ★☆☆☆☆☆】Convert Hours into Seconds

【Edabit 算法 ★☆☆☆☆☆】Convert Hours into Seconds language_fundamentals math numbers Instructions Write a function that converts hours into seconds. Examples howManySeconds(2) // 7200 howManySeconds(10) // 36000 howManySeconds(24) // 86400Notes 60…

Java:ApacheHttpClient连接寿命(timeToLive)未配置问题分析

一、问题描述 若 Apache HttpClient 未设置 timeToLive&#xff0c;通过服务域名访问服务的实例并且服务域名解析出的 IP 发生变化时&#xff0c;在短时间内会有部分请求出现连接异常错误。 二、问题分析 Apache HttpClient 通过服务域名从连接池获取连接&#xff0c;当连接…

面试官:说说 HTTP 常见的请求头有哪些?

一、是什么 HTTP头字段&#xff08;HTTP header fields&#xff09;,是指在超文本传输协议&#xff08;HTTP&#xff09;的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 HTTP头部字段可以自己根据需要定义&#xff0c;因此可能在 Web 服务器…

项目知识点总结-过滤器-MD5注册-邮箱登录

&#xff08;1&#xff09;过滤器 使用过滤器验证用户是否登录 /** * Title: NoLoginFilter.java * Package com.qfedu.web.filter * Description: TODO(用一句话描述该文件做什么) * author Feri * date 2018年5月28日 * version V1.0 */ package com.gdsdx…

Linux---(三)基本指令大全

前提引入&#xff1a;历史上先出现的键盘还是鼠标&#xff1f; 答案&#xff1a;键盘 ✨所以刚开始的时候绝对没有图形化界面&#xff0c;因此操作系统刚开始兴起的时候绝对没有图形化界面&#xff0c;因为当时没有鼠标。 ✨因为没有图形化界面&#xff0c;只有键盘&#xff0c…

实时消息传送:WebSocket实现系统后台消息实时通知

实时消息传送&#xff1a;WebSocket实现系统后台消息实时通知 WebSocket简介基本实现步骤后台服务器后端接口SimpMessagingTemplate MessageDto前端客户端 示例应用 在现代Web应用中&#xff0c;提供实时通知对于改善用户体验至关重要。WebSocket技术允许建立双向通信通道&…

nginx常见报错及解决acme.sh给Nginx配置SSL证书

问题排查&#xff1a; nginx -t //检查配置是否正确只要返回ok就说明配置没问题。 Nginx报错Failed to restart nginx.service: Unit not found 解决方法&#xff1a; 1、在根目录下执行 vim /etc/init.d/nginx2、插入以下代码 #!/bin/sh # nginx - this script starts …

网络基础知识点

osi七层模型&#xff1a; 应用层&#xff1a;提供用户接口&#xff0c;与用户进行交互 表示层&#xff1a;进行数据格式的转换 会话层&#xff1a;建立、维护和验证会话 传输层&#xff1a;保证目标从源到目的地的传输&#xff08;传输协议和端口号&#xff09; 网络层&#x…

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的&#xff0c;自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改&#xff1a; 1.src 更名 examples; 2. src/components移动到项目最外层&#xff1b;3.vue.config.js更改入口文件 /…

FPGA ZYNQ VIVADO创建IP核点亮LED灯 方式一

这里写自定义目录标题 PL端 纯Verilog语言创建IP核实现点亮LED灯工使用设备 ZYNQ 7010&#xff0c;选择设备型号XC7Z010CLG400-1根据以下流程完成本次创建时钟频率50MHZ&#xff0c;周期T20ns&#xff0c;因此计数50_000_000次&#xff0c;1sLED灯闪烁一次 PL端 纯Verilog语言创…

Hadoop3教程(二十五):Yarn的多队列调度器使用案例

文章目录 &#xff08;136&#xff09;生产环境多队列创建&好处&#xff08;137&#xff09;容量调度器多队列提交案例如何创建多个队列如何向指定队列提交任务 &#xff08;138&#xff09;容量调度器任务优先级&#xff08;139&#xff09;公平调度器案例参考文献 &#…

自动化运维ansible

一、Ansible概述: 是一个配置管理系统&#xff08;configuration management system&#xff09;,当下最流行的批量自动化运维工具之一。 Ansible是一个开源的自动化工具&#xff0c;用于配置管理、应用程序部署和编排等 IT 任务的执行。它专注于简单性和可扩展性&#xff0c;并…

Linux性能优化--性能工具:下一步是什么

13.0 概述 本章是对一些事情的思索&#xff0c;包括&#xff1a;Linux性能工具的当前状态&#xff0c;哪些仍需要改进以及为什么Linux是当前一个相当不错的进行性能调查的平台。 阅读本章后&#xff0c;你将能够&#xff1a; 了解Linux性能工具箱的漏洞&#xff0c;以及一些理…

二维码智慧门牌管理系统升级解决方案:地图展示

文章目录 前言一、地图展示功能二、其他升级和改进 前言 随着城市的发展和信息化建设的推进&#xff0c;二维码智慧门牌管理系统在社区管理、物流配送、巡检巡查等多个领域发挥着越来越重要的作用。为了更好地满足用户需求&#xff0c;提升管理效率和服务质量&#xff0c;我们…

ATT 格式汇编语言语法

GNU 汇编器是 GNU 二进制实用程序 (binutils) 的一部分&#xff0c;也是 GNU 编译器集合的后端。尽管 as 不是编写相当大的汇编程序的首选汇编程序&#xff0c;但它是当代类 Unix 系统的重要组成部分&#xff0c;特别是对于内核级黑客攻击。 经常因其神秘的 AT&T 风格语法而…

Deep Learning for Geophysics综述阅读(未完)

文章题目《Deep Learning for Geophysics: Current and Future Trends》 文章解读&#xff1a;地球物理学&#xff08;人工智能轨道&#xff09;——&#xff08;1&#xff09;文献翻译《面向地球物理学的深度学习&#xff1a;当前与未来趋势》 - 知乎 (zhihu.com) 这里主要列…

数组模拟堆

文章目录 QuestionIdeasCode Question 维护一个集合&#xff0c;初始时集合为空&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个数 x &#xff1b; PM&#xff0c;输出当前集合中的最小值&#xff1b; DM&#xff0c;删除当前集合中的最小值&#xff08;数…

Hive安装配置 - 内嵌模式

文章目录 一、Hive运行模式二、安装配置内嵌模式Hive&#xff08;一&#xff09;下载hive安装包&#xff08;二&#xff09;上传hive安装包&#xff08;三&#xff09;解压缩hive安装包&#xff08;四&#xff09;配置hive环境变量&#xff08;五&#xff09;关联Hadoop&#x…

基于Java的人事管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…