本篇文章为大家展示了linux中crontab的脚本不执行如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、在调用oracle的sqlplus、sqlldr等命令工具时必须写出其全路径才能在crontab中执行成功,否则,虽然开发云主机域名手动运行很正常,但一配到crontab上就出现异常。
2、手动运行shell脚本时,可以用sh命令;但在cron中一定不能用sh执行命令,而要用直接的列出shell脚本文件的方式顺序执行。3、在crontab调用时,如果有用到数据库,最好把数据库的相关环境变量等列写出来。4、要在crontab里调度,shell脚本中引用到的文件最好都写绝对路径。5、如果是ORACLE数据库的脚本,一定要注意环境变量,例如
PATH=$PATH:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=racdb1
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
6、检查crond进程是否正常/etc/init.d/crond status (貌似centos7版本没有这个命令)/etc/init.d/crond startservice rsyslog statusps -elf|grep crond7、如何判断crontab是否执行,可以看这个日志/var/lo开发云主机域名g/cron8、如果是root用户下执行,环境变量可以设置加上这两行. /etc/profile. ~/.bash_profile9、如果是grails进程的启动
nohup grails prod run-app -Dserver.port=xxxx –non-interactive 2>&1 > nohup.out &为了这个脚本能成功执行,添加了N多的环境变量,这里关于grails就添加了java相关的环境变量。#!/bin/bash#设置环境变量#root用户环境变量. /etc/profile. ~/.bash_profile#java环境变量JAVA_HOME=/home/app/jdk1.7.0_71JAVA_OPTS=”-Xmx1024m -XX:MaxPermSize=512M”GRAILS_HOME=/home/app/grails-2.3.11MAVEN_HOME=/home/app/apache-maven-3.0.5export JAVA_HOME JAVA_OPTS GRAILS_HOME MAVEN_HOMEPATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$GRAILS_HOME/bin:$MAVEN_HOME/binexport PATH#查找9898的进程IDprocess_id1=$(echo $(ps -ef | grep server.port=9898 | grep -v grep | awk ‘{print $2}’))process_id2=`ps -ef | g开发云主机域名rep rule-service-api1 | grep -v grep |grep -v ‘/home/app/rule-service-api1/restart_9898.sh’| awk ‘{print $2}’`count=$(echo $(ps -ef | grep server.port=9898 | grep -v grep | awk ‘{print $2}’|wc -l))#判断进程是否存在,重启该进程if [ $count -eq 0 ];thencd /home/app/rule-service-api1/sh /home/app/rule-service-api1/startup-rule.sh > /opt/restart9898_1.log 2>&1sleep 10echo ‘start successful’ >> /opt/restart9898_1.logdate >> /opt/restart9898_1.logelsekill -9 $process_id1 $process_id2sleep 10cd /home/app/rule-service-api1/sh /home/app/rule-service-api1/startup-rule.sh > /opt/restart9898_1.log 2>&1sleep 10echo ‘kill and restart successful’ >> /opt/restart9898_1.logdate >> /opt/restart9898_1.logfi遇到/etc/rc.loca活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看l这个开机自启动,但是在里面写命令确不执行怎么办注意:ll /etc/rc.local[root@test ~]# ll /etc/rc.locallrwxrwxrwx. 1 root root 13 Oct 23 2014 /etc/rc.local -> rc.d/rc.local发现这是一个链接文件[root@test ~]# ll /etc/rc.d/rc.local-rw-r–r– 1 root root 696 Oct 8 11:16 /etc/rc.d/rc.local在查看发现权限是644,并没有执行权限,原因就在这里了赋予权限即可chmod 755 /etc/rc.d/rc.local上述内容就是linux中crontab的脚本不执行如何解决,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注开发云行业资讯频道。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《linux中crontab的脚本不执行如何解决》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...