通过SSH执行命令

通过SSH执行命令

我正在编写一个脚本来检查组织中的所有服务器是否正常运行。 Zimbra 邮件服务器就是其中之一。我正在尝试使用以下命令通过 zimbra 包提供的 sendmail 发送邮件

ssh Jarvice@someip echo "Hello" | /opt/zimbra/postfix-2.7.4.2z/sbin/sendmail [email protected]

但我无法这样做。我想我犯了一些错误

echo "Hello" | /opt/zimbra/postfix-2.7.4.2z/sbin/sendmail [email protected]

部分。但我不知道那是什么。有人可以告诉我正确的方法吗?由于我是通过脚本执行此操作,因此我确保ssh无需提供密码即可完成此操作。我希望这个过程完全自动化。

答案1

您的本地 shell 将您的命令分为ssh .../opt/zimbra ...,然后通过管道传输这两个命令。

您必须引用 ssh 的参数,这样您的本地 shell 就不会尝试解释它,而是将其完整发送到远程计算机:

ssh Jarvice@someip "echo \"Hello\" | /opt/zimbra/postfix-2.7.4.2z/sbin/sendmail [email protected]"

答案2

有两种基于 ZCS 角色从 zimbra 服务器发送邮件命令行的方法。

  1. 从 Zimbra MTA 发送邮件
  2. 通过 Zimbra MTA 从邮件存储、LDAP、代理发送邮件
/bin/awk ' BEGIN{\
               print "Subject:zimbra backup status (MTA to NAS) !\nFrom:ms2 <[email protected]>"\
           }{\
               printf("%s\015\n", $0)\
           }' $LOG | sendmail -t "[email protected]""

欲了解更多信息,请参阅下面的链接 http://www.knowledgelinux.com/how-to-send-mail-from-zimbra-command-line/

相关内容