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

Bash 通过脚本远程更新许多系统的根crontab,bash,unix,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。问题1:您试图通过echo将密码发送到sudo。 问题2:不能在这样的sudo命令中使用shell重定向 在这两

我正在尝试使用跳转主机的for循环更新1000多个系统的crontab文件

下面的方法不起作用

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

我确实在sudoers文件中有(全部)ALL。

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

在这两个之间,考虑设置SSH公钥授权和执行

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

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

下面的内容对我很有用

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

这是另一种解决办法

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

我还有一个问题。ssh-t$i“echo'pass365\!”| sudo-S bash-c“echo”hello“>>/var/spool/cron/root”还有两个双引号需要添加。@KevinM:发布新问题或更新现有问题。在评论中寻求帮助是“没做过的事,老人”;-)祝你好运。这可能会有帮助