我在学校的UNIX系统管理课程中,必须生成一个执行以下操作的Cron作业:
我知道实际的crontab将如下所示:
# Check to see who is logged in every hour.
MAILTO="me@email.com"
0 * * * * root /tmp/loggedin.sh
OR
# 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.
我不知道还有什么可以放在那里。非常感谢任何帮助!
答案 0 :(得分:1)
我认为who
应该做到这一点。它将显示一次登录系统的所有用户的列表。您可以将其写入文件,然后将其邮寄给您。
w
会告诉您当前登录的人员正在做什么。
所以,脚本看起来像:
#!/bin/sh
HOME=<your home directory>
who > ${HOME}/usersLoggedIn.txt
w > ${HOME}/whatLoggedInUsersAreDoing.txt
${HOME}
指的是您的主目录。在命令提示符下,echo $HOME
应该为您提供主目录。命令who
和w
的输出将重定向到主目录中的文件usersLoggedIn.txt
和whattLoggedInUsersAreDoing.txt
。当然,您可以更改要将此数据写入的目录和文件名。
HTH,
斯利拉姆
答案 1 :(得分:1)
来自cron作业的任何输出都会邮寄给用户。如果您不关心主题行,您的cron条目就像这样简单:
@hourly w
如果你关心它,请使用mail(1):
@hourly w|mail -s'Users logged in' me@work.example.com
答案 2 :(得分: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"