Linux中Crontab定时脚本语句无效,直接执行脚本就可以的解决

255 阅读1分钟

首先确保sh脚本具有可执行属性

chmod +777 ***.sh

确保sh脚本手动执行正常

手动执行脚本

加载环境变量

这是比较容易忽略的问题,加入source /etc/profile

路径问题

这个是当时遇到的问题,对于相对路径,要特别注意!脚本运行时的目录是不是期望中的目录,这样相对路径才有效。 我的方法是cd到目录下

示例

定时任务

00 12 * * * /dadan/db2esdb/run_db2esdb.sh

执行脚本

run_db2esdb

#!/bin/bash


source /etc/profile



# 获取当前日期和时间,格式化为"年月日"
DATE=$(date +%Y%m%d)

# 创建日志文件名,包含时间信息
LOG_FILE="output_${DATE}.log"

cd /dadan/db2esdb

# 运行Python脚本,并将输出重定向到包含时间信息的文件
nohup python3 create_run_logstash_conf.py > "$LOG_FILE" 2>&1 &