如何每小时运行一个需要密码的脚本?

时间:2017-08-18 08:56:04

标签: bash sudo gnu-screen

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

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.

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

2 个答案:

答案 0 :(得分:2)

您可以将sudo配置为不需要用户和命令的特定组合的密码。

例如,如果需要运行命令的用户名为keshav且命令位于/sbin/someCommand

首先创建你的sudoers文件的副本,以防万一

sudo cp /etc/sudoers /etc/sudoers.backup

然后编辑/ etc / sudoers

sudo visudo

该命令将在默认编辑器中打开/etc/sudoers文件。使用编辑器添加此行

keshav ALL = NOPASSWD: /sbin/someCommand

保存文件并退出编辑器。

如果您正确执行了这些步骤,那么您的用户keshav现在应该可以在没有密码提示的情况下运行sudo /sbin/someCommand

答案 1 :(得分:0)

您可以使用expect命令。示例代码

#!/bin/bash
spawn scp $p testuser@192.168.2.2:/home/testuser
expect "Password"
send "Pass@123\r"