我想通过以下命令每小时调用一个脚本:
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执行的命令,因此每次都会要求输入密码,无论如何都要每小时运行一次这个脚本除了手动吗?
答案 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"