keepalive.sh 守护及定时任务脚本
#!/bin/sh
#--------------定时每天1:30重启应用程序
#先关闭crond
killall -9 crond
#创建目录,默认是没有的
mkdir -p /var/spool/cron/crontabs
#编辑定时任务,写好保存,会生成root用户名文件,我不写了跳过,下面直接替换这个文件
#crontab -e
#30 1 * * * sh /home/agent/bin/timerrestartapp.sh
#把要执行的文件授权
chmod -R 777 /home
#把已经生成的root用户名文件/home/agent/bin/crontabs/root复制到crond任务目录下
cp -rf /home/agent/bin/crontabs/. /var/spool/cron/crontabs
#任务文件授权
chmod -R 777 /var/spool/cron
sleep 3
#启动crond
crond
#--------------进程守护
while true
do
#进程名字可修改
PRO_NAME=ysagentmce01
#用ps获取进程数量
NUM=`ps |grep ${PRO_NAME} |grep -v "grep" |wc -l`
#echo $NUM ${PRO_NAME}
if [ $NUM != 1 ]
then
#如果不是1个,就全杀掉,再启动应用
echo "ERROR ,RESET ,NUM:" $NUM $(date)
killall -9 "${PRO_NAME}"
/home/agent/bin/ysagentmce01 &
fi
#10秒查看一次
sleep 10s
done
exit 0
在以上各个字段中,还可以使用以下特殊字符:
"*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
","分散的数字(不一定连续),如1,2,3,4,7,9。
注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。
crond是一个服务,一个守护进程。crond 是linux用来定期执行程序的命令,crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
按照网上查找的资料执行时经常会碰到这种错误:
crontab: chdir(/var/spool/cron/crontabs): No such file or directory
所以首先创建这样一个目录吧!
mkdir -p /var/spool/cron/crontabs
然后编辑要执行的任务
crontab -e 编辑
crontab -l查看任务列表
0 */1 * * * /sbin/ntpdate 192.168.1.67 >/dev/null 2>&1 每隔一个小时更新下时间,不打印任何信息
最后,执行下
#crond
此时你会发现/var/spool/cron/crontabs下有一个跟用户名相同的文件,保存着要执行的任务。
ps下会发现cron进程已经启动!
Linux查看tcp端口
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况