Bash Script将多个命令传递给一封电子邮件

时间:2015-01-15 12:09:15

标签: linux bash shell ubuntu sh

我想把各种命令的输出写成电子邮件。 我试过这个:

#!/bin/bash

(echo $(date); echo $(top);sudo apt-get update && sudo apt-get upgrade -y)  | mail -s "Updated!" xxxxxxxxxxx@gmail.com -a "From: UpdateNotify<xxxxxxxx@gmail.com>";

脚本是无限的。 :/

我该怎么做?我需要在一封电子邮件中提供日期,最高输出和更新日志。

3 个答案:

答案 0 :(得分:3)

这是正确的方法,问题在于echo $(top)top是一个交互式应用程序,因此永远不会返回。

您应该使用ps来列出当前正在运行的进程。

答案 1 :(得分:1)

jas_raj答案是正确的,但是如果您喜欢top的输出,则可以批量模式运行:top -bn 1这将在运行一次后立即退出。

答案 2 :(得分:0)

查看cron-aptnullmailer,以便在系统更新后发送邮件。