【问题标题】:Command that outputs script results into a text file then emails results to personal email将脚本结果输出到文本文件然后将结果通过电子邮件发送到个人电子邮件的命令
【发布时间】:2018-03-03 08:13:25
【问题描述】:

我正在编写一个输出服务器状态结果的 bash 脚本,并希望有办法将结果放入文本文件中,然后通过电子邮件将其发送到根据用户输入输入的电子邮件中。我该怎么做呢?

感谢您的帮助!

【问题讨论】:

  • 请对缩进做一些事情,并发布一个删除所有不相关内容的最小示例。
  • “我想将提到的操作添加到最后一部分,它说输出结果到文本文件中”你的问题应该是这个,就是那个。不是所有其他工作的完整副本,与此无关。
  • 好的,我删除了代码。

标签: linux bash shell email server


【解决方案1】:

创建 cron 作业将是另一项任务。但是对于您关于将 serverStatus 放在文本文件中然后将其邮寄到用户的电子邮件的最初问题。下面是一个例子:

假设我们使用“ps -ef|grep processname”命令。将“top”替换为您拥有的命令。

ssh -q username@serverName "ps -ef|grep -i 进程">>output.txt

echo "输入邮箱:"

阅读电子邮件

uuencode output.txt output.txt|mailx -s "serverStatusReport" $email

如果您有任何需要赋予此功能的脚本/模板,请分享代码或详细说明。 关于 cron 作业,您需要在 crontab 文件中包含命令/脚本以及您希望它安排的时间。

例如:

echo "* * * * * /path/to/your/script.sh ">>crontab

希望这能为您的任务提供一条前进的道路

【讨论】:

    【解决方案2】:

    要将结果输出到文件,请在命令末尾使用 >> 或 > to,后跟文件名。

    >> 将附加到文件中。这意味着您文件的先前内容将保持不变。

    > 将删除所有内容并使用新输出创建一个文件。

    例如: echo $serverOutput>output.txt

    现在邮寄: read email // 会读取用户的email地址。

    邮寄:

    uuencode output.txt output.txt|mailx -s "服务器输出" $email

    您的文件将作为附件发送。

    这是您需要的吗?

    【讨论】:

    • 很抱歉再次打扰,那么整个代码的示例会是什么样子?
    • 我基本上想在它向用户询问他们的电子邮件并为该电子邮件创建一个 cron 作业并在脚本运行后发送它
    • 添加了另一个答案,评论限制字符数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2017-12-12
    相关资源
    最近更新 更多