影落离风

The shadow falls away from the wind

0%

Linux服务命令

常用命令

Linux维护


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
less xxx.log 分页搜索
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页

1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航
j - 下一行
k - 上一行
3.其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令

grep a xxx.log 过滤a在xxx.log文件中
-c 或 --count : 计算符合样式的列数。
grep a xxx.log | grep b 管道流过滤 过滤a在xxx.log的数据中再过滤b
Linux 的字符串截取很有用,有八种方法。假设有变量 var=http://www.hao.com/123.htm

1、# 号截取,删除左边字符,保留右边字符

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

结果是:www.hao.com/123.htm

2、## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.hao.com/

结果是:123.htm

3、%号截取,删除右边字符,保留左边字符

echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.hao.com

4、%% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

结果是:http:

5、从左边第几个字符开始,及字符的个数

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

6、从左边第几个字符开始,一直到结束

echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。

结果是:www.hao.com/123.htm

7、从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

8、从右边第几个字符开始,一直到结束

echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。

结果是:123.htm

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

#示例
grep 023009 ocpx_logs/hhmt-cpa-ocpx.log |grep ElemeTo| grep 75B1BE6A59199242 | grep redis_key| while read line; do temp=${line#*redis_key%3D};echo ${temp%%,*}; done # |uniq |wc -l 表示不重复的多少个
过滤023009、ElemeTo、75B1BE6A59199242、redis_key在hhmt-cpa-ocpx.log文件中,获取redis_key%3D后面的数据,逗号前面的数据打印一行,

传输文件
scp xxx.jar root@192.168.1.1:/data

tail -f catalina.out #tomcat实时查看日志
tail -f catalina.out -n100 #实时查看日志后100行

lsof -i: 8080 #查看端口使用
netstat -tnlp | grep 8080

top #运行的项目
top -c #运行的项目的完整信息
top -p pid #某线程的运行信息
#top 命令界面交互命令:
m/M #内存占用排序
p/P #cpu占用排序

#可以查看当前目录下各文件、文件夹的大小
du -h --max-depth=1

#查询进程的启动时间和运行时间
ps -eo pid,lstart,etime | grep 5176

#打印堆信息, 包括 JVM版本、垃圾收集器、堆配置、堆各个区域使用情况
jmap -heap pid

ps -aux | grep 服务名称 #查看服务CPU和内存的占用率,内存占用数据单位k
free -m #cpu&内存的使用
df -h #磁盘的使用

#Linux查看/var/log/wtmp文件查看可疑IP登陆
last -f /var/log/wtmp
#登陆用户名、时间、IP
who /var/log/wtmp
#寻找可疑IP登陆次数
vim /var/log/secure
#切换到root或某个用户名下
su - 用户名/root
输入 history #能看到这个用户历史命令,默认最近的1000条

#内存泄漏处理
1. 获取内存详情 jmap -dump:format=b,file=e.bin pid
这种方式可以用 jvisualvm.exe 进行内存分析,或者采用 Eclipse Memory Analysis Tools (MAT)这个工具
2. https://www.cnblogs.com/baihuitestsoftware/articles/6491344.html

磁盘挂载

1
2
3
4
5
6
7
8
#1. 使用fdisk -l命令查看主机上的硬盘
fdisk -l
#2. 使用mount命令挂载磁盘
mount /dev/vdb/ /home
#3. 卸载挂载
umount /home
#4. 配置服务器重启后自动应用之前的挂载配置,否则将自动挂载到临时目录/mnt下
echo '/dev/vdb /home ext4 defaults 0 0' >> /etc/fstab

service命令


nginx

停止nginx:
sudo systemctl stop nginx

启动nginx:
sudo systemctl start nginx

重启nginx:
sudo systemctl restart nginx

修改配置文件后,平滑加载配置命令(不会断开用户访问):
sudo systemctl reload nginx

默认,nginx是随着系统启动的时候自动运行。如果你不想开机启动,那么你可以禁止nginx开机启动:
sudo systemctl disable nginx

重新配置nginx开机自动启动:
sudo systemctl enable nginx

网站文件位置
/var/www/html: 网站文件存放的地方, 默认只有我们上面看到nginx页面,可以通过改变nginx配置文件的方式来修改这个位置。
服务器配置
/etc/nginx: nginx配置文件目录。所有的nginx配置文件都在这里。
/etc/nginx/nginx.conf: Nginx的主配置文件. 可以修改他来改变nginx的全局配置。
/etc/nginx/sites-available/: 这个目录存储每一个网站的”server blocks”。nginx通常不会使用这些配置,除非它们陪连接到 sites-enabled 目录 (see below)。一般所有的server block 配置都在这个目录中设置,然后软连接到别的目录 。
/etc/nginx/sites-enabled/: 这个目录存储生效的 “server blocks” 配置. 通常,这个配置都是链接到 sites-available目录中的配置文件
/etc/nginx/snippets: 这个目录主要可以包含在其它nginx配置文件中的配置片段。重复的配置都可以重构为配置片段。
日志文件
/var/log/nginx/access.log: 每一个访问请求都会记录在这个文件中,除非你做了其它设置。
/var/log/nginx/error.log: 任何Nginx的错误信息都会记录到这个文件中。

mysql

  1. 重启 service mysql restart

iptsbles

  1. 重启 service iptables restart
  2. 配置iptables路径 /etc/sysconfig/iptables