我想把各种命令的输出写成电子邮件。 我试过这个:
#!/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>";
脚本是无限的。 :/
我该怎么做?我需要在一封电子邮件中提供日期,最高输出和更新日志。
答案 0 :(得分:3)
这是正确的方法,问题在于echo $(top)
。 top
是一个交互式应用程序,因此永远不会返回。
您应该使用ps
来列出当前正在运行的进程。
答案 1 :(得分:1)
jas_raj答案是正确的,但是如果您喜欢top
的输出,则可以批量模式运行:top -bn 1
这将在运行一次后立即退出。
答案 2 :(得分:0)
查看cron-apt
和nullmailer
,以便在系统更新后发送邮件。