Linux服务器 CentOS7.5
查看命令所在位置
which java
查看JVM内存情况
free -h
ps -ef | grep java
jstat -gc [ pid] 1000 10
jstat -gccapacity [ pid] 1000 10
S0C: 年轻代幸存1区( from区) 内存大小 ( kB) .
S1C: 年轻代幸存2区( to区) 内存大小 ( kB) .
S0U: 年轻代幸存1区已使用内存大小 ( kB) .
S1U: 年轻代幸存2区已使用内存大小 ( kB) .
EC: 年轻代eden区内存大小 ( kB) .
EU: 年轻代eden区已使用内存大小 ( kB) .
OC: 老年代内存大小 ( kB) .
OU: 老年代已使用内存大小 ( kB) .
MC: 元空间内存大小 ( kB) .
MU: 元空间已使用内存大小 ( kB) .
CCSC: 压缩类内存大小 ( kB) .
CCSU: 压缩类已使用内存大小 ( kB) .
YGC: 年轻代gc次数.
YGCT: 年轻代gc耗时.
FGC: full gc次数.
FGCT: full gc耗时.
GCT: 总gc耗时.
AWK命令
用法:awk [ POSIX or GNU style options] -f progfile [ --] file .. .
用法: awk [ POSIX or GNU style options] [ --] 'pattern { action }' file .. .
// 默认的行分隔符是空格,$0 表示整行 每行被分隔成第1列-NF列,$NF 表示最后一列
awk '{ print $0 }'
awk '{ print NF,$NF }'
awk '{ print NF,$NF }' file1
// 自定义行分隔符
awk -F ':' '{ print $0 }'
awk -F ':' '{ print NF,$NF }'
awk -F ':' '{ print NF,$NF }' file1
// 根据分隔后的某列进行筛选
awk '$3 == 0 { print $1 }'
awk '$3 == 0 { print $1 , $2 * $3 }'
awk '$3 == 0 { print $1 }' file1
awk '$3 == 0 { print "MutilFile",$1 }' file1 file2
// 自定义打印格式
awk '{ printf("金额:%6.2f 原记录:%s\n", $2 * $3 , $0 ) }' file1
// 特殊模式 BEGIN 用于匹配第一个输入文件的第一行之前的位置, END 则用于匹配处理过的最后一个文件的最后一行之后的位置
// 一行上的多个语句,使用分号; 分隔
// print "" 可以输出一个空行
awk 'BEGIN {print "标题"; print "表头1 表头2 表头3"; print ""} {print $0 }' file1
// 使用控制语句/循环语句
awk -F ':' '{if (NF==2) print "success",$0 ; else print "failure",$0 }' file1
awk '{i=1; while (i<10) { print i; i++} }' file1 // 一行执行一次
awk '{x[NF]++} END { print "列数","行数"; for(i in x) print i,x[i]}' file1 // 统计各个列数所包含的行数
cat test.log | grep 'url:' | awk -F "url:|param:" '{print $2 }' | sort | uniq -c | sort -rn
cat test.log | grep 'url:' | awk -F "url:|param:|in:|ms" '{x[$2 ]+=$( NF-1) ;y[$2 ]++} END {for(i in x){print sprintf("%.3f",x[i]/y[i]/1000),x[i],y[i],i}}' | sort -rn
cat test.log | grep 'url:/open/auth/addAuthContact' | awk -F "in:|ms" '{print $( NF-1) ,$0 }' | sort -rn | head -5
cat test.log | grep 'url:/open' | awk -F " |:" '{x[$2 ]+=1} END {for(i in x){print sprintf("%.1f",x[i]/3600),x[i],$1 ,i}}' | sort -rn
awk -F " |:" '/url:\/open/{x[$2 ]+=1} END {for(i in x){print sprintf("%.1f",x[i]/3600),x[i],i}}' logs/test.2019-06-25.0.log | sort -rn
[ AWK程序设计语言] ( https://awk.readthedocs.io/en/latest/chapter-one.html)
服务器端编译Maven项目
mvn clean install -Dmaven.test.skip= true
修复profile修改错误导致常用命令无法使用的问题
/bin/vi /etc/profile
export PATH= /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo $PATH
防火墙端口操作
systemctl status firewalld
systemctl start firewalld
firewall-cmd --zone= public --list-ports
firewall-cmd --zone= public --add-port= 80/tcp --permanent
firewall-cmd --zone= public --add-port= 8000-9000/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone= public --remove-port= 80/tcp --permanent
调整服务器的时区
timedatectl
timedatectl set-timezone Asia/Jakarta
vim /etc/profile
ZT= 'Asia/Jakarta'
export ZT
source /etc/profile
date -R
服务器上查看磁盘使用量
df -h
服务器上运行Jar包的命令
java -jar test-1.0-SNAPSHOT.jar --debug --spring.profiles.active= prod
nohup java -jar test-1.0-SNAPSHOT.jar --debug --spring.prot= 8080 >> log.txt 2> & 1 &
java -jar test-1.0-SNAPSHOT.jar --spring.config.location= /item/conf/application.properties
CentOS7下安装Mysql5.7版本数据库
yum install mysql57-community-release-el7-11.noarch.rpm
yum install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload
vim /var/log/mysqld.log
mysql -u root -p
> set global validate_password_policy= LOW;
> set global validate_password_length= 6;
> alter user 'root' @'localhost' identified by '123456' ;
> grant all privileges on *.* to 'root' @'%' identified by '123456' with grant option;
> exit
firewall-cmd --zone= public --add-port= 3306/tcp --permanent