【centos】关闭You have new mail in /var/spool/mail/root提示

这个提示是LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的root的邮箱里,以供有需之时查看。

echo "unset MAILCHECK">> /etc/profile

source /etc/profile

【centos】firewalld开放端口

centos7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld

1.firewalld的基本使用

启动: systemctl start firewalld

查状态:systemctl status firewalld

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

2.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

3.那怎么开启一个端口呢

添加

firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)

firewall-cmd --zone=public --add-service=http --permanent

firewall-cmd --reload # 重新载入,更新防火墙规则

firewall-cmd --zone= public --query-port=80/tcp #查看

firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除

firewall-cmd --list-services

firewall-cmd --get-services

firewall-cmd --add-service=<service>

firewall-cmd --delete-service=<service>

在每次修改端口和服务后/etc/firewalld/zones/public.xml文件就会被修改,所以也可以在文件中之间修改,然后重新加载

使用命令实际也是在修改文件,需要重新加载才能生效。

【zookeeper】命令行

启动zookeeper客户端:zkCli.sh

查看帮助:-h

查看根目录下的文件:ls /

查看某个目录下的数据:get 目录名

1、 ls path 查看某个路径下目录列表

ls  / 查看根目录下有一个zookeeper的目录。 目录就是一个节点。

/ 根节点  zookeeper是子节点

2、ls2  / 命令

ls2 显示了数据的一些状态信息

【centos】创建软链接、硬链接

【例 1】创建硬链接:

[root@localhost ~]# touch cangls

[root@localhost ~]# ln /root/cangls /tmp

#建立硬链接文件,目标文件没有写文件名,会和原名一致

#也就是/tmp/cangls 是硬链接文件

【例 2】创建软链接:

[root@localhost ~]# touch bols

[root@localhost ~]# In -s /root/bols /tmp

#建立软链接文件

这里需要注意,软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接文件会报错。这是初学者非常容易犯的错误。

【centos】查看系统版本

查看centos版本号的方法:在centos终端输入“cat /etc/centos-release”命令回车

【centos】更改linux文件目录\文件拥有者权限

更改文件拥有者 #>chown  账号名称 文件或目录

改变文件的用户组用命令 #> chgrp  组名   文件或目录

还可以通过chown命令 同时修改用户和组#> chown 所有者:所属组  文件或目录

【h2】启动异常

Database "/opt/.h2/kara" not found, and IFEXISTS=true, so we cant auto-create it [90146-199]

H2 数据库报错 Database "XXX" not found, and IFEXISTS=true, so we cant auto-create it [90146] 的解决办法

参考spring boot - Database not found, and IFEXISTS=true, so we cant auto-create it - Stack Overflow

应该是为了安全起见禁止了自动建立数据库,修改到2019年之前的版本后就可以了,2019版后的解决办法参考上述链接;

使用下面的版本可以直接使用:

  1. <dependency>
  2. <groupId>com.h2database</groupId>
  3. <artifactId>h2</artifactId>
  4. <version>1.193</version>
  5. </dependency>

【java】bean复制

  1. 从整体的表现来看,Cglib的BeanCopier的性能是最好的无论是数量较大的1万次的测试,还是数量较少10次,几乎都是趋近与零损耗,
  2. Spring是在次数增多的情况下,性能较好,在数据较少的时候,性能比PropertyUtils的性能差一些。
  3. PropertyUtils的性能相对稳定,表现是呈现线性增长的趋势。而Apache的BeanUtil的性能最差,无论是单次Copy还是大数量的多次Copy性能都不是很好。
  4. PropertyUtils和BeanUtils的功能基本一致,唯一的区别是:BeanUtils在对Bean赋值时会进行类型转化,而PropertyUtils不会对类型进行转化,如果类型不同则会抛出异常!,这可以解释PropertyUtils效率比BeanUtils要高的原因。
  5. 建议:基本类型在源目标类型一致的情况下使用: PropertyUtils效率会更高。
  6. Dozer框架的拷贝,万次内的效率beanutils比dozer要快, 十万次以上的效率beanutils的效率和dozer差不多, 复杂类型的拷贝可以使用: Dozer

【centos】centos下kill、killall、pkill命令区别

首先可以通过ps aux或 ps -ef查看系统有哪些进程正在运行。

1.kill,用于杀死某一个进程

#kill,加选项-9,加PID,表示杀死进程编号为PID的这个进程

#kill -9 PID

2. killall,杀死一类进程

#killall,加选项-9,加服务名, 表示杀死该服务的所有进程

#killall -9 service

3. pkill用于杀死一个进程

Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

另一解释:pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程

# pkill -f abc 杀掉含abc的所有进程

比如我们要杀死mysql的相关进程,我们可以使用pkill -9 mysqld即可杀死所有mysql相关的进程,比较方便,不过它有可能会误删程序。

下面是常用的信号的数字及其含义:

1     表示从终端上发出的结束信号

2     表示从键盘上发出的终端信号(即Ctrl+c)

3     表示从键盘上发出的退出信号(即Ctrl+\)

8     表示浮点异常,比如被0除

9     表示结束接受信号的进程,也就是强行杀死进程

15    kill命令默认的终止信号

17    子进程终止或结束的信号

19    从键盘来执行的信号

【linux】PS -EF和PS AUX的区别及格式详解

Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。

这两个到底有什么区别呢?两者没太大差别,

讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。

ps -ef 是用标准的格式显示进程的、其格式如下

其中各列的内容意思如下

UID    //用户ID、但输出的是用户名

PID    //进程的ID

PPID    //父进程ID

C      //进程占用CPU的百分比

STIME  //进程启动到现在的时间

TTY    //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。

CMD    //命令的名称和参数

ps aux 是用BSD的格式来显示、其格式如下

同ps -ef 不同的有列有

USER      //用户名

%CPU      //进程占用的CPU百分比

%MEM      //占用内存的百分比

VSZ      //该进程使用的虚拟內存量(KB)

RSS      //该进程占用的固定內存量(KB)(驻留中页的数量)

STAT      //进程的状态

START    //该进程被触发启动时间

TIME      //该进程实际使用CPU运行的时间

其中STAT状态位常见的状态字符有

D      //无法中断的休眠状态(通常 IO 的进程);

R      //正在运行可中在队列中可过行的;

S      //处于休眠状态;

T      //停止或被追踪;

W      //进入内存交换 (从内核2.6开始无效);

X      //死掉的进程 (基本很少见);

Z      //僵尸进程;

<      //优先级高的进程

N      //优先级较低的进程

L      //有些页被锁进内存;

s      //进程的领导者(在它之下有子进程);

l      //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);

+      //位于后台的进程组;

【es】data to large  ES Data too large Error_Big-Brian的博客-CSDN博客

org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large

org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large, data for [<transport_request>] would be [2064285114/1.9gb], which is larger than the limit of [2040109465/1.8gb], real usage: [2064284680/1.9gb], new bytes reserved: [434/434b], usages [request=0/0b, fielddata=91192/89kb, in_flight_requests=434/434b, accounting=2921492/2.7mb]

异常原因

出现类似问题的原因在于fielddata的内存被占用完了,其他索引无法分配更多的内存

解决方案

大招1

在es参数中,可以通过设置indices.fielddata.cache.size值来修改单个索引占用缓存的大小,如果超出这个值,该数据将被逐出。这样的方式可以帮助你合理的分配你有限的内存,但是不能改变你的内存。所以终极解决办法还是增加你的内存大小。

## 编辑ES配置文件config/elasticsearch.yml,添加一下配置,然后restart集群 indices.fielddata.cache.size:  20%

如果你觉得以上方式太暴力,可以通过命令行方式修改配置

PUT _cluster/settings {   "persistent" : {     "indices.breaker.fielddata.limit" : "20%"    } }

大招2

问题解决了吗?什么没有???OK,如果以上方式依然没有解决你的问题。第二大招来了。出现以上问题的根源就是ES的fielddata缓存空间被用完了,那么我们可以清除ES缓存

## 清除单个索引缓存POST twitter/_cache/clear##  清除多个索引缓存POST kimchy,elasticsearch/_cache/clear POST _cache/clear

好啦,到目前为此,希望你的集群已经健康的变绿。

【http】HTTP 请求头中的 X-Forwarded-For

  1. X-Forwarded-For

X-Forwarded-For 是一个扩展头。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP,现在已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中.

X-Forwarded-For请求头格式非常简单,就这样:

X-Forwarded-For:client, proxy1, proxy2

可以看到,XFF 的内容由「英文逗号 + 空格」隔开的多个部分组成,最开始的是离服务端最远的设备 IP,然后是每一级代理设备的 IP。

如果一个 HTTP 请求到达服务器之前,经过了三个代理 Proxy1、Proxy2、Proxy3,IP 分别为 IP1、IP2、IP3,用户真实 IP 为 IP0,那么按照 XFF 标准,服务端最终会收到以下信息:

X-Forwarded-For: IP0, IP1, IP2

Proxy3 直连服务器,它会给 XFF 追加 IP2,表示它是在帮 Proxy2 转发请求。列表中并没有 IP3,IP3 可以在服务端通过

remote_address 来自 TCP 连接,表示与服务端建立 TCP 连接的设备 IP,在这个例子里就是 IP3。

详细分析一下,这样的结果是经过这样的流程而形成的:

  1. 用户IP0---> 代理Proxy1(IP1),Proxy1记录用户IP0,并将请求转发个Proxy2时,带上一个Http Header

X-Forwarded-For: IP0

  1. Proxy2收到请求后读取到请求有 X-Forwarded-For: IP0,然后proxy2 继续把链接上来的proxy1 ip追加到 X-Forwarded-For 上面,构造出X-Forwarded-For: IP0, IP1,继续转发请求给Proxy 3
  2. 同理,Proxy3 按照第二部构造出 X-Forwarded-For: IP0, IP1, IP2,转发给真正的服务器,比如NGINX,nginx收到了http请求,里面就是 X-Forwarded-For: IP0, IP1, IP2 这样的结果。所以Proxy 3 的IP3,不会出现在这里。
  3. nginx 获取proxy3的IP 能通过

remote_address就是真正建立TCP链接的IP,这个不能伪造,是直接产生链接的IP。$remote_address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。

链接:https://www.jianshu.com/p/15f3498a7fad

【linux】top命令VIRT,RES,SHR,DATA的含义

字体: 大 小Posted by 佚名 | tags: top  VIRT  RES  SHR

VIRT:virtual memory usage 虚拟内存

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等

2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

1、进程当前使用的内存大小,但不包括swap out

2、包含其他进程的共享

3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反

4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存

1、除了自身进程的共享内存,也包括其他进程的共享内存

2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小

3、计算某个进程所占的物理内存大小公式:RES – SHR

4、swap out后,它将会降下来

【开发日志-已归档】2020-09相关推荐

  1. 【开发日志-已归档】2021-07

    [Redis]bgsave bgsave持久化原理: 底层会fork 出一条子进程,这条子进程来进行持久化操作,而主进程进行相应其他操作,在子进程进行持久过程中,会生成temp.rdb,当子进程持久化 ...

  2. 【开发日志-已归档】2021-11

    [centos]top命令切换视图 先输入top命令,打开top监控查看界面 $> top i. 切换内存显示方式(默认常规显示字节:第一次切换显示竖线型进度条:第二次切换显示实线型进度条:第三 ...

  3. 【开发日志-已归档】2021-06

    [K8S]K8S中的port 在编排kubernetes时,Deployment的Pod项有containerPort,Service文件里的port,targetPort, nodePort,这些p ...

  4. 【开发日志-已归档】2021-01

    [elasticsearch]es健康检查 GET _cluster/health { "cluster_name": "elasticsearch", &qu ...

  5. Oracle错误——归档日志已满问题

    问题描述 安装完数据库后,在做压力测试,测试了没多久就出现了Oracle挂起的问题,提示如下错误: ORA-00257: Archiver error. Connect AS SYSDBA only ...

  6. 毕业设计开发日志2018.04.09

    开发日志本来是应该从一开始就写的,不过到了现在我才有写日志这个想法-- 那就从今天开始吧. ---------------------- 毕业设计的课题是安卓平台的陆战棋手游开发.不是很难的题目,当初 ...

  7. 乐博睿机器人_译介|桌面上的“猎魔人”宇宙 ——《猎魔人》TRPG开发日志(五)...

    本文首发于[乐博睿]公众号 作者:Cody Pondsmith 译者:白日骤梦 校对:樱庭若雪 <猎魔人>是R. Talsorian Games与CD Projekt Red联手推出的一款 ...

  8. (十五)Zookeeper原理源码分析之数据日志文件归档

    文章目录 1. 日志文件概述 1.1 作用说明 1.2 日志文件格式 1.2.1 事务日志文件解析 1.2.2 快照日志文件解析 2. 日志文件序列化 2.1 日志路径配置 2.2 序列化时机 2.3 ...

  9. ORA-16038的解决(日志无法归档)

    ORA-16038的解决 数据库装载完毕. ORA-16038: 日志 3 序列号 5035 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: . ...

最新文章

  1. 如何在一场面试中展现你对Python的coding能力?| 技术头条
  2. 学会python编程容易吗-Python 适合初学编程的人学吗?
  3. 收藏老外的jquery web 按钮插件
  4. SAP Spartacus Organization Unit List三个按钮的技术实现
  5. AR-关于应收票据的系统操作说明
  6. 手写及场景文字分析与识别的一些新尝试
  7. mysql数据库分析结果与结论_mysql数据库show processlist结果分析
  8. C++设计模式——Composite 组合模式
  9. 手机端图片滑动切换效果
  10. Sass:@error
  11. PAT Basic Level 1072 开学寄语 (20 分)
  12. Linux生成掩码的计算,谈子网掩码及其计算
  13. OTL:通用数据库连接模板
  14. 微软校园招聘面试经历
  15. python向excel写数据_Python向excel中写入数据的方法 方法简单
  16. Obi - Advanced Rope Simulation 绳索插件学习文档
  17. 记一次简单学习MarkDown语法
  18. 计算机考研怎么计划,计算机考研复习计划怎么制定
  19. iis启动和停止的方法介绍
  20. 阿迪達斯NFT狂卷兩千多萬美元,但過程並非一帆風順

热门文章

  1. 蓝桥杯第09届 2018年省赛C/C++大学生B组——试题8 日志统计
  2. 下载高清图片素材,就上这6个网站,免费还能商用
  3. Windows系统下隐藏的文件
  4. WPA3的特点有哪些?
  5. 用夜神安卓模拟器做Android开发
  6. 有功功率,无功功率,视在功率定义
  7. 米的换算单位和公式_小学数学单位换算公式(附练习题)
  8. 发布曾经出售过的PIC开发工具制作资料包括:JMD烧写器,串口ICD2,USB口ICD2.5
  9. 如何调用WxJump的API接口实现微信网址链接转二维码
  10. 【入门】(二)相机标定、矩阵求解、相机位姿势估计