如何每小时运行一个脚本,有一些需要密码的命令?

时间:2017-08-18 12:40:13

标签: bash sudo gnu-screen

我正在使用云桌面并尝试执行./parseScript.sh,其中包含以下命令: sudo -u identmon /apollo/env/PARISOperationalTools/scripts/get/callRetryOfFai‌​lures.rb "$apiname" "$requestinput" –

我想通过使用以下命令每小时调用此脚本:

Step 1. Connect to your cloud desktop using ssh.
Step 2. Run these commands:
% screen
% while true; do ./parseScript.sh; sleep 3600; done
Step 3. Close the window with the running command.
Step 4. (same as Step 1) Connect to your cloud desktop using ssh.
Step 5. Run this command: screen -R. You will get back to the session you left in step 3.

现在的问题是,在我的脚本中我有上面提到的1个命令,必须使用sudo -u identmon执行,因此每次都会要求输入密码,无论如何都要每小时运行一次这个脚本除了手动吗?

2 个答案:

答案 0 :(得分:0)

最简单的方法是在您的Sudors文件中添加NOPASSWD选项,您可以在此处查看https://askubuntu.com/questions/147241/execute-sudo-without-password

username ALL=(ALL) NOPASSWD: ALL

那说小心你要添加一个无密码sudo。

答案 1 :(得分:0)

您可以使用bash的expect feature自动执行脚本。将密码存储在某个变量中。 Expect utility会在运行时自动为脚本提供密码。