iT邦幫忙

0

FTP 使用者空間郵件通知(2)

http://ithelp.ithome.com.tw/questions/10185593
繼上一篇沒辦法解決故想使用寫程式的方式(sh or Perl)
但小弟我實在對程式很不在行,故想請各位大大給點專業的意見
大約是這樣

  1. 搜尋出超過Quota的使用者
  2. 寄信給超過Quota的使用者
  3. 加入每天的排程
    請問這程式該如何寫?能提供範例也可以
    謝謝大家幫忙!

1 個回答

1
bizpro
iT邦大師 1 級 ‧ 2017-03-29 21:02:46

由於您問了第二次, 原以為是FTP的事, 但其實是quota的問題.
兩個可能可以解決您的問題的專案, 請參考:
1.https://sourceforge.net/projects/linuxquota/?source=navbar
C語言, 這需要編譯.
2.https://github.com/asciiphil/quotanotify
Python.System for notifying people when they've gone over quota. More friendly than warnquota.
我只是概略了解上述的專案, 並不能保證適合您. 當然如果要用Bash或Perl寫也是可以.

這篇文章可以參考:
http://wiki.robotz.com/index.php/Quota-_Linux_User_Quota_HowTo

上面的文章設定warnquota.conf來送Email, 但我認為用mutt直接送email可能會更簡易.寫這個需要時間, 但應該用bash就可以了, 例如:

這指令可以找出超出quota的使用者:
repquota -ta | grep -v "\-\-\ \ \ "
整理成一個users字串. 以空白相隔.
在每個使用者的迴圈中:
for iuser in $users; do
  如果要紀錄使用者習慣, 可以產生以每個使用者為檔名的紀錄檔. 遞送Email時順便送出 
  用mutt送出email,
  如果超出hard quota, 就停止該用戶的ftp.
done

用cron定時檢查.

我要發表回答

立即登入回答