Solaris 10的Crontab应用

linux下使用crontab很顺利,没遇到什么问题,直接crontab -e添加任务即可,可是在 Solaris下却碰到些问题,没有按计划执行指定任务,问题解决后,简要总结一下Solaris下crontab的用法:
a、添加操作
bash-3.00# vi /var/spool/cron/crontabs/root
* * * * * /export/home/test/analysisTNS/DCSMonitor.sh
b、删除FIFO,否则cron不能重启
bash-3.00# rm /etc/cron.d/FIFO
c、杀掉现有crontab进程
bash-3.00# ps -ef | grep cron
    root   308     1   0 11:09:58 ?           0:01 /usr/sbin/cron
bash-3.00# kill -9 308
d、重启crontab进程
bash-3.00# /usr/sbin/cron
e、查看crontab日志
启动正确后,可以看见如下信息:
! *** cron started ***   pid = 2631 Mon Jun  7 14:29:24 2010
>  CMD: /export/home/test/analysisTNS/DCSMonitor.sh
>  root 2637 c Mon Jun  7 14:30:00 2010
<  root 2637 c Mon Jun  7 14:30:00 2010
f、Solaris定是脚本
# !/bin/bash
check_service() {
       # if return 0, service exist in system
       # else, service not exist in system
       mainprocess=`ps -e | grep analysis`
       # in linux, i use mainprocess=$(ps -e | grep analysisTNS)
       if [ -z "$mainprocess" ]; then
              return 1
       else
              return 0
       fi
if check_service; then
       echo "service tns is running now"
else
       cd /export/home/test/analysisTNS
       ./analysisTNS >/dev/null 2>&1 &
       echo "start tns success"
exit 0
上面完成后,就可以看见指定任务按计划执行了。
脚本处检查进程时使用了ps -e | grep analysis,而不是ps -e | grep analysisTNS,因为我发现即使进程在执行,使用后者却没有任何输出,使用前者则可以检测到进程信息,如下:
bash-3.00# ps -e | grep analysisTNS
bash-3.00# ps -e | grep analysis  
  2641 ?           0:00 analysis
使用ps -ef | grep analysisTNS当然可以检测到进程,但同时grep命令本身也被检测到了,用-v发现也不好使,Solaris真有点不一样。
bash-3.00# ps -ef | grep analysisTNS
    root  2641     1   0 14:30:00 ?           0:00 ./analysisTNS
    root  3214   830   0 15:24:08 pts/2       0:00 grep analysisTNS
而这在linux下我还没发现过,很奇怪!

你可能感兴趣的:(职场,Solaris,休闲,10的Crontab应用)