从 Bash 脚本中获取 crontab 文本模板

从 Bash 脚本中获取 crontab 文本模板

crontab -e最初选择一个文本模板,显然是从这个文件中https://anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c。我想以编程方式获取该文本块,这样我就可以在模板末尾附加带有 cron 作业的行,这样它看起来就像一个手动编辑的 cron 文件。

crontab -e > somefile不起作用,因为它卡在了交互式 shell 上。

crontab -l > somefile也不起作用,因为创建用户帐户时没有 crontab 文件。

我可以尝试使用sed文本模板,但它在运行系统中的位置在哪里?此外,它是否存在于托管提供商部署的图像(Ubuntu)中,还是我需要先将源存储库添加到 apt 列表中?

也许更简单的方法是export VISUAL=nano; crontab -e发送 Ctrl+o、Enter、Ctrl+X 来创建一个新的 crontab 文件,而无需用户交互?但是,如何将按键发送到 bash 脚本中的交互式 shell?

答案1

由于模板嵌入在crontab程序本身中,因此它不需要存在于任何其他文件中。

要在没有 crontab 的系统上提取它,请尝试暂时将您的编辑器设置为touch

VISUAL=touch crontab -e
crontab -l >saved

您也可以使用它来提取它strings,或者只是将它作为此处的文档嵌入到您自己的脚本中。

相关内容