运行jar包的几种方式:

Linux 运行jar包命令如下:
方式一:
java -jar shareniu.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?
方式二
java -jar shareniu.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行?
方式三
nohup java -jar shareniu.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
方式四
nohup java -jar shareniu.jar >temp.txt &
解释下 >temp.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。

nohup命令中各个参数的意思:

(1) nohup
加在一个命令的最前面,表示不挂断的运行命令
(2) &
加载一个命令的最后面,表示这个命令放在后台执行
2>&1:2就是标准错误,1是标准输出,该命令相当于把标准错误重定向到标准输出么。这里&相当于标准错误等效于标准输出,即把标准错误和标准输出同时输出到指定的“日志文件名.log”文件中。

jobs和ps的区别

只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。
jobs:该命令用于查看当前终端后台运行的任务。
ps:该命令用于查看瞬间进程的动态。
通过一个实例可以理解它们之间的区别,依次执行如下命令:
vim & //后台执行vim
jobs //查看后台执行的任务
ps -au //查看当前的进程
执行效果如下图所示:
image.png
输入jobs 就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。
image.png
查看某端口占用的线程的pid
netstat -nlp |grep :9181
如果忘了进程号,可以通过如下命令来查看当前运行的jar包程序进程号
ps -ef|grep xxx.jar
或者 ps -aux | grep java
//关闭进程
kill -s 9 24204
24204代表上一步查出的进程ID

示例:

自动化进程:
nohup java -jar DafrontSimulator_V1.0.200.0.jar >/dev/null 2>&1 &
nohup java -jar mxm-autotest-agent-client-1.0.0.jar >/dev/null 2>&1 &

可能会产生一些非常大的日志文件,需要定期删除

  1. 查找800M以上的文件
  2. [root@kylin236 ~ 11:22:53]# find . -type f -size +800M
  3. ./CentOS-7-x86_64-DVD-2003.iso
  4. 查看大小
  5. -print 在每一个输出后会添加一个回车换行符,
  6. 而-print0则不会。
  7. [root@kylin236 ~ 11:23:11]# find . -type f -size +800M -print0 | xargs -0 du -h
  8. 4.5G ./CentOS-7-x86_64-DVD-2003.iso
  9. 查看占用大小和详细信息并排序和翻页查看内容
  10. [root@kylin236 /opt/goldwind/EMS 11:19:28]# find . -type f -size +1M -print0 | xargs -0 du -h | sort -nr|more
  11. 125M ./XEAP_Address
  12. 111M ./XEAP
  13. 6.4M ./WatchDog
  14. 5.4M ./WatchDog_Address
  15. 4.9M ./log/allControlLog/2020-12-17_09-09-14.log
  16. 3.4M ./log/emslog/2020-12-12_06-45-42.log
  17. 2.3M ./log/allControlLog/2020-12-02_23-31-49.log
  18. 1.8M ./log/emslog/2020-12-21_00-00-00.log
  19. 1.8M ./log/allControlLog/2020-12-05_23-38-38.log
  20. ...跳过一行
  21. 1.4M ./log/emslog/2020-12-16_23-30-03.log
  22. 小单位MB显示
  23. [root@kylin236 ~ 11:23:26]# du -hm
  24. 0 ./.cache
  25. 1 ./.oracle_jre_usage
  26. 1 ./.ssh
  27. 0 ./cc
  28. 0 ./.hasplm/fs/26931/.id/.nh094e28
  29. 1 ./.hasplm/fs/26931/.id
  30. 1 ./.hasplm/fs/26931
  31. 1 ./.hasplm/fs
  32. 1 ./.hasplm
  33. 4561 .
  34. 标准单位显示
  35. [root@kylin236 ~ 11:25:08]# du -h
  36. 0 ./.cache
  37. 4.0K ./.oracle_jre_usage
  38. 16K ./.ssh
  39. 0 ./cc
  40. 0 ./.hasplm/fs/26931/.id/.nh094e28
  41. 4.0K ./.hasplm/fs/26931/.id
  42. 8.0K ./.hasplm/fs/26931
  43. 4.5G .

查看目录占用大小

  1. [root@kylin236 /opt 11:30:26]# du -h --max-depth=1
  2. 188K ./baseline
  3. 0 ./rh
  4. 2.3G ./goldwind
  5. 499M ./rose
  6. 2.8G .

查看目录的子目录占用大小并排序

  1. [root@kylin236 /opt 11:30:28]# du -h --max-depth=2 | sort -n
  2. 0 ./baseline/logs
  3. 0 ./rh
  4. 2.3G ./goldwind
  5. 2.3G ./goldwind/EMS
  6. 2.8G .
  7. 188K ./baseline
  8. 339M ./rose/ReplicatorPlus-5.8.0-1122.200910-RHEL7-x86_64
  9. 499M ./rose

查看目录的子目录占用大小并排序再查看前几个大的目录
du -hm —max-depth=2 | sort -nr | head -2,用more也能看,这样可以有针对性去找大的目录

  1. [root@kylin236 /opt 11:34:19]# du -h --max-depth=2 | sort -nr | head -2
  2. 499M ./rose
  3. 339M ./rose/ReplicatorPlus-5.8.0-1122.200910-RHEL7-x86_64