【发布时间】:2015-04-03 08:53:32
【问题描述】:
我有一个带有 2 个参数的命令。
当我手动运行命令时,我是这样做的:
cmd -i xyz.dat
hit enter
enter password in the prompt
hit enter
confirm password
命令运行成功。
当我在 crontab 中执行此操作时,每 30 分钟运行一次,如下所示:
30 * * * * /$HOME/cmd -i xyz.dat mypwd mypwd
cmd-脚本在我手动运行时需要用户交互(输入密码)。
您能否帮助我如何在没有用户交互的情况下运行 crontab 作业?
感谢您的帮助!
【问题讨论】:
-
不是每 30 分钟运行一次;它每小时运行一次,每小时 30 分钟。将
30替换为*/30或0,30。看起来您的命令提示输入密码。从 cron 作业中输入密码会很棘手。您可以修改cmd以将密码作为命令行参数,但这是不安全的,因为您的 crontab 中必须以明文形式提供密码。 -
我不知道
cmd做了什么,除了它显然以交互方式读取密码。我不知道它是从标准输入、/dev/tty还是通过其他机制读取的。我想您仍然需要以某种方式向cmd提供密码,但是没有足够的信息来说明更具体的内容。 -
我尝试运行的命令是 gsa_logger -i login.dat 当我按下回车键时,它会提示输入密码,再次输入会提示密码确认。
-
我不知道
gsa_logger是什么。我认为您的真正问题更多是关于以非交互方式运行gsa_logger,而不是关于 crontab。我建议更新问题。 (不要假设人们会在 cmets 中看到信息。)