系统:红帽7.8
目标:我有一个 bash 脚本,它将文件下载到名为“logs”的文件夹中以供短时间查看,并且在一天结束时删除它们。
我尝试过的:
rm -rfd logs | at 6pm
什么不起作用:
上面的代码在rm
通过管道传输到命令之前执行命令at
,并且我从未看到我下载的文件。
答案1
命令
rm -rfd logs | at 6pm
执行rm -rfd logs
立即地,并将其标准输出(可能没有)传输到at 6pm
.
相反,您需要将字符串输出rm -rfd logs
到标准输出 - 这些方法中的任何一种都可以:
键入
at 6pm
,然后点击ENTER,然后键入rm -rfd logs
,再次点击ENTER,然后CTRL+D$ at 6pm warning: commands will be executed using /bin/sh at> rm -rfd logs at> <EOT> job 13 at Wed May 13 18:00:00 2020
与上面类似,但使用这里的文档
at 6pm <<END_AT rm -rfd logs END_AT
一个简单的
echo
或printf
printf -- 'rm -rfd logs' | at 6pm
答案2
需要echo "rm -rfd logs" | at 6pm
来源: https://www.howtoing.com/linux-cron-alternative-at-command-to-schedule-tasks/