定义包含通配符(*)的crontab作业,而不扩展它们
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义包含通配符(*)的crontab作业,而不扩展它们相关的知识,希望对你有一定的参考价值。
我需要安装一个新的crontab
,它每2分钟运行一次脚本。为此,我应该在crontab
文件中编写以下内容:
*/2 * * * * cd /myDirectory/ && ./myScript.sh
我需要以编程方式安装这个qazxsw poi命令,使用相同的qazxsw poi。我试着这样做:
crontab
逻辑有效,但问题是我的myScript.sh
变量。我试图像这样定义它:
crontab -l > ./currentcron #save current crontab in file
echo ${FULL_CRONTAB} >> ./currentcron #append my command
crontab ./currentcron #install new file
rm ./currentcron #remove temporary file
...但由于FULL_CRONTAB
字符串被扩展,所以变量实际上获得了文件夹中的完整文件列表,而不是我应该添加到我的crontab的目标字符串。
我尝试使用单引号(FULL_CRONTAB="*/2 * * * * cd ${APPLICATION_DIRECTORY}/ && ./myScript.sh"
),但没有任何改变。
我也试图逃脱"
(例如'
),但变量包含*
而不仅仅是FULL_CRONTAB="*/2 * * * * cd ${APPLICATION_DIRECTORY}/ && ./myScript.sh"
所以它不可用。
感觉就像一个基本的问题,但我不会出现这个:我怎么能得到我的定义知道我必须解释
*
,但我不想解释FULL_CRONTAB
,所以我的目标将是命令如下?
${APPLICATION_DIRECTORY}
用例是:
*
在我的终端上,上面的第三个命令输出如下内容:
*/2 * * * * cd /myDirectory/ && ./myScript.sh
在使用时,您需要将bash$ APPLICATION_DIRECTORY="/myDirectory"
bash$ FULL_CRONTAB="*/2 * * * * cd ${APPLICATION_DIRECTORY}/ && ./myScript.sh"
bash$ echo ${FULL_CRONTAB}
变量用双引号括起来,以防止出现变形:
*/2 -ltr (...list of all the files and folders in the current directory...) cd /myDirectory/ && ./myScript.sh
以上是关于定义包含通配符(*)的crontab作业,而不扩展它们的主要内容,如果未能解决你的问题,请参考以下文章
Linux提权第四篇-Linux Cron Jobs(任务计划)提权(crontab文件覆盖提权Crontab Tar Wildcard(通配符)注入提权)