【问题标题】:Crontab Script File SyntaxCrontab 脚本文件语法
【发布时间】:2011-05-02 05:59:40
【问题描述】:

我在学校学习 UNIX 系统管理课程,并且必须生成一个 Cron 作业,该作业执行以下操作:

  • 每小时查询一次系统以找到 找出谁登录了。
  • 将结果邮寄到我的电子邮件帐户。

我知道实际的 crontab 如下所示:

# Check to see who is logged in every hour.
MAILTO="me@email.com"
0       *       *       *       *       root    /tmp/loggedin.sh

# Check to see who is logged in every hour.
MAILTO="me@email.com"
@hourly /tmp/loggedin.sh

但我已经在谷歌上搜索了一段时间,但无法找到任何 .sh 文件应该是什么样子的示例。我知道它开始于:

#!/bin/bash
# Shell script to see who is logged in, to be run every hour.

我不知道还有什么可以放在那里的。非常感谢任何帮助!

【问题讨论】:

  • 所以你想知道who是否登录了?
  • 是的,下面的评论很有帮助,但我不确定如何让它运行我在 /etc/loggedin.sh 中拥有的 .sh 文件

标签: shell cron crontab freebsd


【解决方案1】:

我认为who 应该可以解决问题。它将向您显示一次登录到系统的所有用户的列表。您可以将其写入文件,然后邮寄给您。

w 会告诉你登录的人目前正在做什么。

所以,脚本看起来像:

#!/bin/sh  
HOME=<your home directory>
who > ${HOME}/usersLoggedIn.txt  
w > ${HOME}/whatLoggedInUsersAreDoing.txt  

${HOME} 指的是您的主目录。在命令提示符下,echo $HOME 应该为您提供主目录。命令whow 的输出将被重定向到主目录中的文件usersLoggedIn.txtwhattLoggedInUsersAreDoing.txt。当然,您可以更改要写入此数据的目录和文件名。

HTH,
斯里拉姆

【讨论】:

  • ${HOME} 变量指的是什么?这如何告诉它通过电子邮件将结果发送给我?因为我刚试了一下,没用。
【解决方案2】:

cron 作业的任何输出都会邮寄给用户。如果您不关心主题行,您的 cron 条目就这么简单:

@hourly w

如果您确实关心它,请使用邮件(1):

@hourly w|mail -s'Users logged in' me@work.example.com

【讨论】:

    【解决方案3】:
    #!/bin/bash
    # Shell script to see who is logged in, to be run every hour.
    who | mail -s "Who is logged in `date`" "$MAILTO"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 2014-03-23
      • 2012-07-05
      相关资源
      最近更新 更多