2011-05-02 55 views
0

我在学校一个UNIX系统管理课程,并有可能产生一个cron作业,做了以下内容:crontab的脚本文件语法

  • 查询每个小时才找到 谁在登录的系统
  • 邮寄结果到我的电子邮件帐户。

我知道实际的crontab看起来像下面这样:

# Check to see who is logged in every hour. 
MAILTO="[email protected]" 
0  *  *  *  *  root /tmp/loggedin.sh 

OR

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

但我一直在谷歌搜索了一段时间,一直无法找到任何实例什么.sh文件应该看起来像。我知道它开头:

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

而且我不知道该怎么把别人在那里。任何帮助是极大的赞赏!

+0

所以,你如果你不关心的主题行cron项是如此简单想找出谁登录? – 2011-05-02 06:04:36

+0

是的,下面的注释很有帮助,但我不知道如何让它运行我在/etc/loggedin.sh中的.sh文件 – Jeff 2011-05-02 06:56:44

回答

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,
斯利拉姆

+0

$ {HOME}变量引用了什么?那是如何告诉它给我发送结果的?因为我只是试了一下,并没有奏效。 – Jeff 2011-05-02 07:07:49

+0

@Jeff:见上面的编辑 – Sriram 2011-05-02 07:21:18

1

从计划作业的任何输出被邮寄给用户。如果你关心它,使用邮件(1)

@hourly w 

@hourly w|mail -s'Users logged in' [email protected] 
1
#!/bin/bash 
# Shell script to see who is logged in, to be run every hour. 
who | mail -s "Who is logged in `date`" "$MAILTO"