2016-03-22 14 views
1

Aşağıdaki betik crontab ile çalışmıyor. lütfen bu sorunu çözmek için hangi adıma ihtiyacım olduğunu bildirin. Bu komut dosyası manuel olarak tetiklediğimde iyi çalışıyor.Kabuk betiği çalışmayan bir işlemdir sadece üç işlemi bir arada olmak üzere yalnızca 2 işlemi öldürmek

Crontab: -

### Repack Restart 
33 01 * * 1,2,3,4,5 /home/repackpr/scripts/repack_restart_script.sh > /tmp/repack_log16234.log 2>&1 

repack_restart_script.sh:

#!/usr/bin/bash 
    cd /home/repackpr 
    today_date=`date '+%Y%m%d'` 
    DATE_STAMP=`TZ=CST+24 date +%Y%m%d` 

tomcat_pid=$(pgrep -U $USER java) 
rmireg_pid=$(pgrep -U $USER rmiregistry) 
nagios_pid=$(pgrep -U $USER nrpe) 

export tomcat_pid 
export rmireg_pid 
export nagios_pid 

    #Removing old logs 

    rm /home/repackpr/scripts/Repack_$DATE_STAMP.log 
    rm /home/repackpr/scripts/Repack_feed_mgt_$DATE_STAMP.log 
    rm /home/repackpr/scripts/Repack_Stop_$DATE_STAMP.log 

    # Stopping Services 
    /home/repackpr/server stop 
    kill -9 `ps -fu repackpr -o pid,comm | egrep 'java|repackpr' | awk '{print $1}'` 
    /home/repackpr/server status > /home/repackpr/scripts/Repack_Stop_$today_date.log 

    #Starting Services 
    export CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=8071 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" 
    /home/repackpr/server start 
    /home/repackpr/server status > /home/repackpr/scripts/Repack_$today_date.log 

    VALUE=`grep up /home/repackpr/scripts/Repack_$today_date.log|wc -l` 
    if [ $VALUE -eq 3 ] 
    then 
     /apps/repack/jetty/start.sh > /home/repackpr/scripts/Repack_feed_mgt_$today_date.log & #####Starting Repack Feed Management###### 
     echo "Repack services has been started successfully"|mailx -s "Repack Service Restart--SUCCESS" [email protected]  else 
     echo "Please perform the Repack service restart check" |mailx -s "Repack Service Restart--FAIL" [email protected] 
    fi 

sunucu komut dosyası: - Bu komut repack_restart_script.sh gelen başlatıyordur -> yani/home/repackpr/sunucu durdurma

/tmp/repack_log16234.log

pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     /home/repackpr/scripts/Repack_20160322.log: No such file or directory 
     /home/repackpr/scripts/Repack_feed_mgt_20160322.log: No such file or directory 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     Repack  is down 
     rmiregistry is down 
     /home/repackpr/server: line 54: [: =: unary operator expected 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     /home/repackpr/server: line 54: [: =: unary operator expected 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     Repack is not running. Creating rpdb.log.20160323-0133 backup... 
     Starting Repack... This should start rmiregistry as well. 
     /home/repackpr/server: line 28: /startup.sh: No such file or directory 
     Starting Nagios agent 
     Nagios agent has been started 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     Repack  is down 
     rmiregistry is down 
     /home/repackpr/server: line 54: [: =: unary operator expected 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     pgrep: invalid user name -- java 
     pgrep: invalid user name -- rmiregistry 
     pgrep: invalid user name -- nrpe 
     /home/repackpr/server: line 54: [: =: unary operator expected 
+1

Bu makul görünüyor (ish). "Çalışmıyor" derken, ">/tmp/repack_log ..." bile yaratılmıyor mu demek istiyorsun? Lütfen daha spesifik ol. 33 01 * * */home/... 'ile denediniz mi? İyi şanslar. – shellter

+2

Bu soru, muhtemelen Süper Kullanıcı veya Sunucu Hatası –

+0

için en uygunudur. Komut dosyası için yürütme izniniz var mı ve bir "shebang karakteri eklediğinizden emin olun" #! –

cevap

0

cron ile ilgili sorunlar İşler, Komut satırından gelen İşler'den farklı şekilde çalışan işler, genellikle ortamdan farklı bir şekilde ayarlanmış olduğundan kaynaklanır.

Hata iletisi, pgrep'un yanlış bir kullanıcı adıyla bir yerde, belki de eksik bir ortam değişkeninin bir sonucu olarak çağrıldığını gösterir. Göndermiş olduğunuz kodda pgrep bulunmadığından, sanırım bu, cron işinizden çağrılan bazı kodlarda, yani ~repackpr/server veya /apps/repack/jetty/start.sh olmalıdır. pgrep'un nerede bulunduğunu bulmaya çalışın ve buradan geriye doğru çalışın.

+0

Yararlı, ama bir cevap değil. Bunun yerine belki de bir yorum olmalı. – tripleee

0

Düzenleme: cron, sunucu tanımlı bir saat dilimi üzerinde çalışır. Şiddetli saat diliminize göz atmanız ve ardından kendi cron'unuzu ayarlamanız gerekir.

33 01 * * 1-5 command-to-be-executed

cron biçimi aşağıdaki gibidir:

* * * * * 
| | | | | 
| | | | | 
| | | | +---- Day of the Week (range: 1-7 or 0-6, 7/0 = Sunday) 
| | | +------ Month of the Year (range: 1-12) 
| | +-------- Day of the Month (range: 1-31) 
| +---------- Hour    (range: 0-23) 
+------------ Minute   (range: 0-59) 

kontrol daha cron format örnekleri here

ne sıklıkta istiyorsun hakkında daha fazla bilgi veriniz sunucu dilimini varsayın GMT betiği cron ile çalıştırın, sonra çıkışın nasıl görünmesi gerektiğini anlamaya yardımcı olabiliriz.

+0

1:35 GMT adresinden komut dosyasını çalıştırmak istiyorum - montag fri – Ajinkya

+0

Huh? Yıl alanı tamamen standart değil. Bu hangi platform için? – tripleee

+0

Plat formu, Linux 3.0.101-0.47.52-default # 1 SMP Per Mar 26 10:55:49 UTC 2015 (0e3c7c8) x86_64 x86_64 x86_64 GNU/Linux – Ajinkya

İlgili konular