千家信息网

linux中crontab的脚本不执行如何解决

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了linux中crontab的脚本不执行如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 、在调用 oracle 的 sqlplus
千家信息网最后更新 2026年11月01日linux中crontab的脚本不执行如何解决

本篇文章为大家展示了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 start

service rsyslog status

ps -elf|grep crond

7、如何判断crontab是否执行,可以看这个日志/var/log/cron

8、如果是root用户下执行,环境变量可以设置加上这两行

. /etc/profile

. ~/.bash_profile

9、如果是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_71

JAVA_OPTS="-Xmx1024m -XX:MaxPermSize=512M"

GRAILS_HOME=/home/app/grails-2.3.11

MAVEN_HOME=/home/app/apache-maven-3.0.5

export JAVA_HOME JAVA_OPTS GRAILS_HOME MAVEN_HOME

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$GRAILS_HOME/bin:$MAVEN_HOME/bin

export PATH

#查找9898的进程ID

process_id1=$(echo $(ps -ef | grep server.port=9898 | grep -v grep | awk '{print $2}'))

process_id2=`ps -ef | grep 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 ];

then

cd /home/app/rule-service-api1/

sh /home/app/rule-service-api1/startup-rule.sh > /opt/restart9898_1.log 2>&1

sleep 10

echo 'start successful' >> /opt/restart9898_1.log

date >> /opt/restart9898_1.log

else

kill -9 $process_id1 $process_id2

sleep 10

cd /home/app/rule-service-api1/

sh /home/app/rule-service-api1/startup-rule.sh > /opt/restart9898_1.log 2>&1

sleep 10

echo 'kill and restart successful' >> /opt/restart9898_1.log

date >> /opt/restart9898_1.log

fi

遇到/etc/rc.local这个开机自启动,但是在里面写命令确不执行怎么办

注意:

ll /etc/rc.local

[root@test ~]# ll /etc/rc.local

lrwxrwxrwx. 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的脚本不执行如何解决,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

变量 环境 脚本 命令 进程 数据 数据库 文件 权限 成功 内容 手动 技能 最好 用户 知识 路径 运行 简明 简明扼要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 南京欣网互联网络科技有限公司 互联网是第几次科技革命的成果 蓝思科技飞鸽互联网 互联网科技工作委员会毛军 金融科技 互联网金融 长亮科技 互联网金融 成都狮子座互联网科技 互联网科技公司做什么 互联网科技类展会 银川新华互联网科技学校地址 哈尔滨新华互联网科技学院 团飞科技与伯堂互联网服务平台 厦门千工互联网科技有限公司 阿大互联网科技有限公司 杭州壁岐互联网科技有限公司 搜狐科技互联网 四川互联网展示科技馆设计 杭州科技互联网公司有哪些 互联网科技自媒体灵感 互联网与科技 互联网最新的科技 互联网科技实习生岗位职责 互联网对科技的发展 港股科技和互联网 开一家科技互联网公司需要多少钱 区块链结合互联网科技 长沙易易互联网科技有限公司 科技互联网专业务虚会材料 武汉亿视互联网科技有限公司
0