shell - 如何在crontab中传递日期参数
问题描述
我有以下脚本,它在日志文件名中创建具有当前日期的日志文件:
#script name: abc.sh
curr_date=`date '+%Y-%m-%d'`
/user/scripts/abc.sh > /user/logs/test_$curr_date.log
我尝试将 crontab 配置为abc.sh
每天调用,如下所示:
16 14 * * * /user/scripts/abc.sh || mail -s "Errors" abcd@gmail.com < /user/logs/test_$curr_date.log
但是,crontab 无法执行上述作业,因为它不识别$curr_date
$curr_date
使用 crontab 时如何将 传递给脚本?
解决方案
在 shell 中,这定义了一个 shell 实例本地的变量:
curr_date=`...`
如果您希望将其应用于子流程:
export curr_date=`...`
然后,它不仅显示为$curr_date
,而且显示在它执行的任何程序的环境中。
推荐阅读
- css - 如何在 React 中结合模块化 CSS 和标准样式
- arrays - 程序查找两个元素 a 和 b 之间的元素数(其中 a 和 b 都包含在内)
- angular - 请求抛出错误时总是执行重复请求
- java - JPA 错误:实体类没有指定主键
- javascript - 将对象数组的数组转换为数组
- java - 即使在 Spring 启动失败后,Redis 事务现在也会抛出错误
- proxy - 以太坊 Geth 私有区块链代理
- c++ - 我的项目中从 const char 到 int 的无效转换错误
- javascript - 如何使用纯 JavaScript 遍历每个 div 标签?
- vaadin - 我们如何在 Vaadin Flow (Vaadin 14) 中为所有 VerticalLayout 和 HorizontalLayout 添加边框?