运行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 //查看当前的进程
执行效果如下图所示:
输入jobs 就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。
查看某端口占用的线程的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 &
可能会产生一些非常大的日志文件,需要定期删除
查找800M以上的文件
[root@kylin236 ~ 11:22:53]# find . -type f -size +800M
./CentOS-7-x86_64-DVD-2003.iso
查看大小
-print 在每一个输出后会添加一个回车换行符,
而-print0则不会。
[root@kylin236 ~ 11:23:11]# find . -type f -size +800M -print0 | xargs -0 du -h
4.5G ./CentOS-7-x86_64-DVD-2003.iso
查看占用大小和详细信息并排序和翻页查看内容
[root@kylin236 /opt/goldwind/EMS 11:19:28]# find . -type f -size +1M -print0 | xargs -0 du -h | sort -nr|more
125M ./XEAP_Address
111M ./XEAP
6.4M ./WatchDog
5.4M ./WatchDog_Address
4.9M ./log/allControlLog/2020-12-17_09-09-14.log
3.4M ./log/emslog/2020-12-12_06-45-42.log
2.3M ./log/allControlLog/2020-12-02_23-31-49.log
1.8M ./log/emslog/2020-12-21_00-00-00.log
1.8M ./log/allControlLog/2020-12-05_23-38-38.log
...跳过一行
1.4M ./log/emslog/2020-12-16_23-30-03.log
小单位MB显示
[root@kylin236 ~ 11:23:26]# du -hm
0 ./.cache
1 ./.oracle_jre_usage
1 ./.ssh
0 ./cc
0 ./.hasplm/fs/26931/.id/.nh094e28
1 ./.hasplm/fs/26931/.id
1 ./.hasplm/fs/26931
1 ./.hasplm/fs
1 ./.hasplm
4561 .
标准单位显示
[root@kylin236 ~ 11:25:08]# du -h
0 ./.cache
4.0K ./.oracle_jre_usage
16K ./.ssh
0 ./cc
0 ./.hasplm/fs/26931/.id/.nh094e28
4.0K ./.hasplm/fs/26931/.id
8.0K ./.hasplm/fs/26931
4.5G .
查看目录占用大小
[root@kylin236 /opt 11:30:26]# du -h --max-depth=1
188K ./baseline
0 ./rh
2.3G ./goldwind
499M ./rose
2.8G .
查看目录的子目录占用大小并排序
[root@kylin236 /opt 11:30:28]# du -h --max-depth=2 | sort -n
0 ./baseline/logs
0 ./rh
2.3G ./goldwind
2.3G ./goldwind/EMS
2.8G .
188K ./baseline
339M ./rose/ReplicatorPlus-5.8.0-1122.200910-RHEL7-x86_64
499M ./rose
查看目录的子目录占用大小并排序再查看前几个大的目录
du -hm —max-depth=2 | sort -nr | head -2,用more也能看,这样可以有针对性去找大的目录
[root@kylin236 /opt 11:34:19]# du -h --max-depth=2 | sort -nr | head -2
499M ./rose
339M ./rose/ReplicatorPlus-5.8.0-1122.200910-RHEL7-x86_64