解决crontab无法读取环境变量

简介: 解决crontab无法读取环境变量

今天在公司服务器上设置一个crontab,*/1 * * * * /bin/sh  /data/tool/jstack.sh,手动sh  /data/tool/jstack.sh是可以执行的,但放到crontab里却无法运行,对脚本头部加上#!/bin/bash还是没有运行.而jstack.sh里的内容是:

#!/bin/bash
echo 堆栈信息记录开始
jstack 24238 >> /data/log/monitor/jstack_$(date +"%Y%m%d%H%M").log
echo "文件路径 /data/log/monitor/jstack_$(date +"%Y%m%d%H%M").log"
echo 堆栈信息记录完毕

然后再等crontab执行,发现成功.网上搜了下发现了问题所在:

crontab有一个坏毛病,就是它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错.

看了这个就知道怎么修改脚本了,脚本的头上用缺省的#!/bin/sh就可以,然后然后第一个部分先写这些:

###################

. /etc/profile

. ~/.bash_profile

##################

这样crontab在执行脚本的时候,就能够读到用户的环境变量参数.如下:

#!/bin/sh
. /etc/profile
. ~/.bash_profile
echo 堆栈信息记录开始
jstack 24238 >> /data/log/monitor/jstack_$(date +"%Y%m%d%H%M").log
echo "文件路径 /data/log/monitor/jstack_$(date +"%Y%m%d%H%M").log"
echo 堆栈信息记录完毕

这样就不用在脚本里写全php路径了.

00 01 * * * /bin/sh /usr/local/shells/timesyn.sh
59 23 * * * /bin/sh /data/tool/log.sh
*/1 * * * * /bin/sh  /data/tool/jstack.sh


目录
相关文章
|
Oracle Java 关系型数据库
Oracle jdk 的国内下载镜像
Oracle jdk 的国内下载镜像
53974 0
|
传感器 人工智能 JSON
多图、视频首上端!面壁「小钢炮」 MiniCPM-V 2.6 模型重磅上新!魔搭推理、微调、部署实战教程来啦!
该模型基于 SigLip-400M 和 Qwen2-7B 构建,仅 8B 参数,取得 20B 以下单图、多图、视频理解 3 SOTA 成绩,一举将端侧AI多模态能力拉升至全面对标 GPT-4V 水平。
|
算法 大数据 Python
局部异常因子(LOF)
局部异常因子(LOF)
|
11月前
|
数据库连接 数据库 DataX
数据接入方案
数仓平台可直连或通过从库、堡垒机、FTP/SFTP等方式接入业务数据库,需提供可读用户权限及相应连接方式。若无法直连,可通过提供数据文件或脚本处理实现数据导入。
488 7
数据接入方案
|
9月前
|
数据采集 数据可视化 Apache
Qwen2.5-Coder全系列来咯!强大、多样、实用
Qwen2.5-Coder全系列来咯!强大、多样、实用
idea没有Maven运行界面怎么办
idea没有Maven运行界面怎么办
|
Rust API 开发工具
Rust初学者,边学边写的OSS的sdk,欢迎批评指正 :)
`Rust`语言编写的阿里云OSS的SDK,依据官方文档并参考了其他语言的实现。
865 5
Rust初学者,边学边写的OSS的sdk,欢迎批评指正 :)
|
SQL 资源调度 数据处理
实时计算 Flink版产品使用问题之在DolphinScheduler调度Flink批作业时,遇到作业提交后状态立即变为成功,但实际上作业还在后台运行的情况,如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL JSON Java
Flink SQL 问题之重启报错如何解决
Flink SQL报错通常指在使用Apache Flink的SQL接口执行数据处理任务时遇到的问题;本合集将收集常见的Flink SQL报错情况及其解决方法,帮助用户迅速恢复数据处理流程。
344 3
|
安全 PHP
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
432 0
解决pcntl_fork() has been disabled for security reasons in file /www/wwwroot/192.168.21.2/vendor/wor
下一篇
开通oss服务