linux – 从systemd bash内联脚本创建文件名_ $(日期%Y-%m-%d
发布时间:2020-12-14 00:54:21 所属栏目:Linux 来源:网络整理
导读:我正在尝试执行systemd计时器,并希望每个日期将执行脚本的输出保存在文件中.这是.service文件中的ExecStart脚本: ExecStart=/bin/bash -c 'echo $(date +%Y-%m-%d) /home/username/test_output_$(date +%Y-%m-%d).log' 这会创建文件,但会添加“哈希”而不是
我正在尝试执行systemd计时器,并希望每个日期将执行脚本的输出保存在文件中.这是.service文件中的ExecStart脚本:
ExecStart=/bin/bash -c 'echo $(date +%Y-%m-%d) >> /home/username/test_output_$(date +%Y-%m-%d).log' 这会创建文件,但会添加“哈希”而不是月份名称: ~/test_output_2017-ea3c0c2dd56c499a93412641e41008db-01.log 内容是一样的: 2017-ea3c0c2dd56c499a93412641e41008db-01 如果我在shell中运行/ bin / bash -c’echo $(date%Y-%m-%d)’而不通过systemd服务传递它,它会按预期工作.打印: %m是否代表系统环境中的月份数以外的其他数字? 知道如何设置systemd服务以将脚本的标准输出放入具有当前日期的文件中吗? 谢谢. 解决方法
您需要通过将它们加倍来逃避$和%符号才能使其工作.
如下所述: > https://github.com/systemd/systemd/issues/2146
ExecStart=/bin/bash -c 'echo $$(date +%%Y-%%m-%%d) >> /home/username/test_output_$$(date +%%Y-%%m-%%d).log' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |