1.不用停止WEB服务就可以清空nohup.out的命令。
第一种:cp /dev/null nohup.out
第二种:cat /dev/null > nohup.out
2.启动不打印nohup.out命令
nohup java -jar xxxjar >/dev/null 2>&1 &
nohup java -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC -jar ***.jar > /dev/null 2>&1 &
3.解决web传入时间和服务器时间偏差一个方法
Uri target = new Uri("http://time.beijing-time.org/time.asp");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(target);
req.Timeout = 30000;
var h = req.GetResponse().Headers;
if (DateTime.TryParse(h.Get("Date"), out DateTime d))
{//从消息头里拿日期信息就行了。这个日期,是网站服务器的时间,应该是准的。
//当然,如果发布权威时间的网站的服务器本身时间都不准,那就无语了,只能认了
int offset = (int)d.Subtract(DateTime.Now).TotalDays;
save(offset);
}
4 根据关键字查看前后10行日志,并显示出行号
cat info.log | grep "要搜索的内容" -C 10
5 Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol
原因:jdk1.8高版本导致SSL调用权限上有问题。
解决方案:jre\lib\security java.security
找到对应的SSLv3,删除掉,重启。(删掉SSLv3就是允许SSL调用)
6 根据pid获取端口号
一个进程很有可能对应多个端口
netstat -anopt |grep 18676 |head -n 1|awk '{print $4}' |cut -d: -f4
一个进程很有可能对应多个端口 这里只获取获取四位的端口
netstat -anopt |grep 18676 |grep LISTEN|awk '{print $4}'|rev|cut -d: -f 1|grep -E '^[0-9]{4}'|rev