linux死循环脚本2个

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)

 

posted on 2019-03-01 21:48  nmap  阅读(2304)  评论(0编辑  收藏  举报

导航