linux java 死循环_linux死循环脚本2个

本文介绍两个现网使用的死循环脚本案例,包括一个用于反向映射的脚本和一个监控memcached服务并记录日志的脚本。此外,还详细解释了如何使用nohup命令与重定向来使脚本在后台永久运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2个现网在用的死循环脚本。写的比较简单粗暴

第一个脚本:不停反向映射脚本,每隔60秒执行一次,这里使用tomcat_profile名字伪装下

[root@HB ~]# ls /scripts/tomcat_profile

/scripts/tomcat_profile

[root@HB ~]# cat /scripts/tomcat_profile

ssh -fN -R 22012:192.168.115.102:22 portmap@183.129.x.x -p21024 -o ServerAliveInterval=60

[root@HB ~]# cat /scripts/tomcat_profile.sh

#!/bin/bash

while true

do

source /scripts/tomcat_profile

sleep 60

done

[root@HB ~]#

#把计划任务放入后台,同时把正确输出和错误输出放入后台

[root@HB ~]# nohup sh tomcat_profile.sh >/dev/null 2>&1 &

第2个脚本:监控memcached服务,同时记录日志和时间戳

[root@localhost ~]# cat monitor_mem.sh

#!/bin/bash

while true

do

echo $(date +%Y%m%d_%H%M%S) >>/tbkt/memcached.log

printf "stats\r\n" |nc 172.20.225.157 11219 >>/tbkt/memcached.log

sleep 5

echo "-----------------------------------------" >>/tbkt/memcached.log

done

[root@localhost ~]#

#把计划任务放入后台,同时把正确输出和错误输出放入后台

[root@localhost ~]# nohup sh monitor_mem.sh >/dev/null 2>&1 &

补充内容

一、用途:nohup表示永久运行。&表示后台运行

在应用Unix/Linux时,我们一般想让某个程序在后台运行,nohup ./start-mysql.sh &

该命令的一般形式为:nohup command &

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

nohup command > myout.file 2>&1 &

在上面的例子中,输出被重定向到myout.file文件中。

二、>/dev/null 2>&1

/dev/null 代表空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

> 代表重定向到哪里

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

2 表示stderr标准错误

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

nohup ./mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 &

即标准输出到mqnamesrv.out中,接着,标准错误输出重定向等同于标准输出,输出到同一文件中。

三、

sh xxx.sh是用sh 执行start.sh,start.sh可以没有执行标志,可以不用加./,可以不用在脚本第一行写上#!/bin/sh

./start.sh是调用脚本第一行制定的shell去解释执行,缺省为sh,就是bash

进程前后台操作用到以下命令或按键:

Ctrl+C

终止并退出前台命令的执行,回到SHELL

Ctrl+Z

暂停前台命令的执行,将该进程放入后台,回到SHELL

jobs

查看当前在后台执行的命令,可查看命令进程号码

&

运行命令时,在命令末尾加上&可让命令在后台执行

fg N

将命令进程号码为N的命令进程放到前台执行,同%N

bg N

将命令进程号码为N的命令进程放到后台执行

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的

一、& 最经常被用到

这个用在一个命令的最后,可以把这个命令放到后台执行

二、ctrl + z

可以将一个正在前台执行的命令放到后台,并且暂停

三、jobs

查看当前有多少在后台运行的命令

四、fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五、bg

将一个在后台暂停的命令,变成继续执行

如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值