Linux bash脚本要求以时间间隔运行用户输入

时间:2015-09-14 20:56:02

标签: linux

我想写一个bash脚本,在要求用户确认压缩文件夹时。 bash脚本每天会执行一次,要求用户进行确认,如果给出了确认,则执行该命令。

1 个答案:

答案 0 :(得分:1)

cron运行没有连接终端的进程,因此获得用户响应将成为一个问题。例如,您需要使用电子邮件设置某种人为干预。

如果您需要输入,请考虑采用另一种方式: 发送邮件到夜间操作员,让我们称他/她为“noc”,就在cron作业运行之前 - 你可以这样做作为crontab调用一个小的shell脚本:

echo 'run  /path/to/setup.shl' | mailx -s 'action required' noc@mycompany.com

setup.shl bash示例将'N'设为默认值:

echo 'N' > /path/to/controlfile

read -p "Run cronjob foo? " -n 1 -r

if [[ $REPLY =~ ^[Yy]$ ]]
then
   echo 'Y' > /path/to/controlfile
fi

接下来,修改第一行的foo cronjob以读取控制文件,如果'N'则退出,如果'N'则退出