2011-05-02 59 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"