通过脚本远程更新许多系统的root crontab

时间:2015-09-29 21:52:21

标签: bash unix

我正在尝试使用来自跳转主机的for循环来更新1000+系统的crontab文件。

以下不起作用。

echo -e 'pass365\!\n' | sudo -S echo 'hello' >> /var/spool/cron/root
-bash: /var/spool/cron/root: Permission denied

我在sudoers文件中有(ALL)ALL。

3 个答案:

答案 0 :(得分:1)

以下对我有用。

echo 'pass365\!' | sudo -S echo 'hello' | sudo -S tee -a /var/spool/cron/root > /dev/null

答案 1 :(得分:1)

这是另一种解决方案;

echo 'pass365\!' | sudo -S bash -c 'echo "hello">> /var/spool/cron/root'

答案 2 :(得分:0)

问题1:您正尝试通过echo将密码发送到sudo。 问题2:你不能在sudo命令中使用shell重定向。

在这两者之间,考虑设置ssh公钥授权并执行

ssh root@host "echo 'hello' \>\> /var/spool/cron/root"

你可能最终会让sudo工作,但这会比这更痛苦。