在 cron 中运行包含 sudo 的脚本

在 cron 中运行包含 sudo 的脚本
#!/bin/bash
value=$(<man.txt)
echo "$value"

if [ "$value" == "true" ]; then
    echo "startedif_manthan"
      ps -ef|grep sym |awk '{ print $2 }'|sudo  xargs kill -9;
      sleep 30;
    sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server;
fi

我需要在 cron 中运行上述脚本。它可以在 cron 中执行而无需密码吗?

有什么建议么?

答案1

如果您的脚本在没有提示的情况下运行,则密码完全取决于您的/etc/sudoers文件以及以哪个用户身份运行此 cron 脚本。

如果 cron 脚本以 方式运行myuser,则可以在/etc/sudoers

myuser ALL=NOPASSWD: /var/www/symmetric-ds-3.1.6/bin/sym

我不确定sh首先运行脚本时 sudo 如何工作,因此您可能需要制作/var/www/symmetric-ds-3.1.6/bin/sym可执行文件并替换它:

sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server;

有了这个

sudo /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server;

相关内容