shell脚本手动执行成功,定时任务执行脚本不成功
上一篇文档脚本手动能执行成功,crontab定时任务执行脚本不成功。
原因:cron的环境变量和shell脚本的环境变量不一样
1 2 3 4 5 6 7 8 9 | 解决办法: #方法一:定时任务里面切换到root执行() */ 5 * * * * su - root -c "/data/pkgs/mysql/tools/auto_backup.sh" #方法二:在脚本里面添加环境变量(亲测可用) vim /data/pkgs/mysql/tools/auto_backup.sh #!/bin/bash source /etc/profile source ~/.bash_profile |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/sh # 在这修改程序名和程序所在目录,其他不用改 source /etc/profile source ~/.bash_profile name= "carte" path= "/app/bigdata/data-integration/" pid=`ps -A |grep $name| awk '{print $1}' ` now=`date "+%Y-%m-%d %H:%M:%S" ` # 检测是否在运行 if [ ! $pid ] then echo "$now $name is not running, start it now..." # 启动程序命令 cd $path echo "$now $path come in..." nohup /app/bigdata/data-integration/carte.sh /app/bigdata/data-integration/pwd/carte-config-master- 8080 .xml >> /data/bigdata/kettle/log/spoon.log 2 >& 1 & new_pid=`ps -A |grep $name| awk '{print $1}' ` # 检测是否启动成功 else echo "$now $name is running, pid is $pid" fi |
定时任务可以通过cat /var/spool/mail/root查看是否生效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律