Ubuntu 16.04下创建IntelliJ IDEA图标快捷方式

一般在安装目录下面或者桌面上创建文件,命名为: idea.desktop
使用 vim编辑该文件

内容如下:

接着给予这个文件执行权限

以后双击这个图标,就可以直接启动 IntelliJ IDEA了。

Linux ls列出目录下所有文件数量

1.查看统计当前目录下文件的个数

2.查看统计当前目录下文件的个数,包括子目录里的。

3.查看某目录下文件夹(目录)的个数,包括子目录里的。

参考链接


linux ls列出目录下所有文件数量

在阿里云的Ubuntu 14.04系统上解决Tomcat 7由于OOM(Out Of Memory)而被系统杀掉的问题

最近服务器上面一直出现 Tomcat莫名奇妙的被系统杀掉,后来从系统的日志中找到如下信息:

原来是系统内存不足,导致进程被杀掉了,网上搜了一下,解决方法有两个

1.限制 Tomcat使用的内存

方法如下:

在文件尾部增加如下配置:

然后重启 Tomcat

2.为阿里云服务器增加 swap分区,来解决物理内存不足的问题

阿里云的服务器默认没有开启交换分区,导致内存极易耗尽导致服务被杀死,解决方法就是手工增加一个交换文件,来解决这个问题。

参考链接


Ubuntu 16.04出现“/tmp 容量不够”的提示,如何增大“/tmp”空间大小

Ubuntu 16.04出现“ /tmp 容量不够”的提示,当时安装系统的时候 /tmp是单独划分出来的,大小被限制为 2GB,这个时候尝试用 gparted来进行拉大分区的时候,发现由于分区在其他分区中间,导致没办法加大临时分区。

当时划分分区的时候,系统分区的大小是足够的,因此,我们只需要在 /etc/fstab中注释掉临时分区即可,此时系统会自动在根分区" /"下面生成临时文件即可了。

注释掉这句话即可:

之后需要重启系统。

在处理完成后,记得修改回原样。

Tomcat 7使用AJP协议导致AJP端口被意外暴露给外网

使用Ubuntu 13.10 Apache 2.2 通过 AJP 整合 Tomcat 7中的方法配置了通过 AJP协议来通过 Apache进行访问的代理。

但是最近发现 Tomcat有时候会崩溃掉。刚刚开始以为是正常的 OOM,后来分析日志,并没有找到相关的记录,反倒是发现如下内容:

于是感觉有些奇怪,因为 AJP协议应该不会发生非常频繁的通信协议错误问题。结果尝试从外网连接 TomcatAjp端口 8009,发现竟然可以通过 telnet连接成功!!说明端口意外暴露给了外网。

那么根据The AJP Connector中的介绍说明(注意 address部分),如果没有指定 IP地址的话,默认是绑定任意地址,这样就导致外网也可以访问这个端口。因此出于安全考虑,我们需要增加这个 address的设置,并且绑定到 127.0.0.1。最终结果如下:

而我在配置的时候,恰恰少设置了 address="127.0.0.1".这个这种错误有些低级啊。

Ubuntu 16.04运行iLO-jirc.jnlp(.jnlp格式文件)

HP Gen8的远程控制支持 .Net, Java Web Start, Java Applet三种控制方式,如下图所示:

hp_ilo_html
Windows下面首选是 .Net方式,简单,快速,比较坑的就是必须在 IE浏览器下面点击链接,在 FireFox, Chrome中点击这个链接都是无效的。那么如何在 Ubuntu 16.04下面运行远程控制呢?答案就是使用 Java Web Start。但是 Java Web Start下载下来的是 iLO-jirc.jnlp这个文件,那么如何运行这个文件呢?如下方式即可:

Ubuntu 16.04下Tomcat 7.0.68启动服务时候报告“java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;”

在使用Ubuntu16.04 安装openjdk-7-jdk介绍的方式切换 Java1.7版本后,在进行代码调试的时候, Tomcat 7.0.68报告如下错误:

这说明 Ubuntu 16.04下的 Tomcat是在 Java 8环境下面编译的,尽管我们已经切换到 Java 7下面了,但是 Tomcat并不能很好的执行我们的 Java 7代码。这个时候的解决方法就是,编译代码的时候指定 Java 7,但是在 Tomcat执行的时候,指定使用 Java 8来运行。

参考链接


Java error java.util.concurrent.ConcurrentHashMap.keySet

Ubuntu16.04 安装openjdk-7-jdk

Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:

# 1. oracle openjdk ppa source

# 2. oracle java jdk ppa source

JDK6 :

JDK 7:

JDK 8:

如果安装成功之后还是不能用可能不有多个版本,选的不对

选出正确的版本

参考链接


Ubuntu16.04 安装openjdk-7-jdk

Ubuntu 14.04隐藏Tomcat-7.0.52的版本号与操作系统类型

一般情况下,软件的漏洞信息和特定版本,特定操作系统是相关的,因此,软件的版本号以及操作系统类型对攻击者来说是很有价值的。

在默认情况下, Tomcat会在返回信息中把自身的版本号,操作系统类型都显示出来,如下图:
TomcatErrorPageVersion

这样做会造成潜在的安全风险,导致不必要的攻击行为。

Ubuntu 14.04系统上隐藏 Tomcat-7.0.52的版本号与操作系统类型的方法如下:

可以看到里面的内容如下:

修改里面的内容,如下:

修改完成后,把修改完成的数据存储到 catalina.jar中。

把修改后的 catalina.jar放回到 Tomcat的目录下面:

重启 Tomcat的服务

修改后的结果如下图所示,已经没有系统类型信息了,仅仅返回了一个 404错误。

TomcatErrorPageVersionAfterHide

至于如何隐藏 Apache的版本号,参考链接 Ubuntu 14.04隐藏Apache-2.4的版本号与操作系统类型