You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过nohup命令为Java jar包自动传递7天前的日期参数

解决方案

你只需要修改startup.sh脚本,在其中加入日期计算逻辑,将计算好的7天前日期作为参数传递给jar包即可,无需修改crontab配置。

修改后的完整startup.sh脚本(适用于Linux GNU date环境,绝大多数服务器默认使用该环境)

echo "Kicking off the app..."
source ~/.bashrc
cd /qa/updateprocess/
# 计算当前日期往前推7天的日期,格式为YYYY-MM-DD
SEVEN_DAYS_AGO=$(date -d "7 days ago" +%Y-%m-%d)
# 启动jar时传入日期参数,此处假设你的Spring Boot项目接收参数名为--before-date,可根据实际参数名调整
nohup /opt/jdk-11.0.2/bin/java -Xmx768m -Xms256m -Dlogging.config=/qa/updateprocess/logback.xml -jar /qa/updateprocess/update-service.jar --spring.profiles.active=qa --before-date=${SEVEN_DAYS_AGO} &> logs/console.log&

补充说明

  • 如果你使用的是macOS/BSD类系统,日期计算命令需替换为SEVEN_DAYS_AGO=$(date -v-7d +%Y-%m-%d)
  • 若你的jar包接收的是位置参数而非Spring格式的启动参数,直接将${SEVEN_DAYS_AGO}放在jar包路径之后即可,不需要加参数名前缀
  • 修改完成后可以手动执行一次/qa/updateprocess/startup.sh,通过ps aux|grep update-service.jar检查启动参数是否正确携带了日期
  • 若crontab执行时出现日期计算异常,可替换为date命令的绝对路径,执行which date可查询你环境中date的绝对路径,比如改为/usr/bin/date -d "7 days ago" +%Y-%m-%d

内容的提问来源于stack exchange,提问作者user3919727

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:06:00