201506171654[Shell Script] 列表出所有使用者的網站

本篇介紹一個簡單的 UNIX Shell Script ,目的是要列出系統上所有使用者的個人網頁,並要判斷該網頁是否存在,有個人網頁才需要被列入。

一般來說,UNIX 本機的使用者帳號資訊在 /etc/passwd ,其格式如下
帳號:密碼:UID:GID:NICKNAME:USER_HOME:SHELL
k104523331:x:2104523331:30100:k104523331:/home/104/k104523331:/bin/nologin

所以我們要做的就是針對每個使用者查詢,並到每個人家裡的網頁目錄,查詢該網頁目錄(htdocs)下是否有檔案存在

假設本 script 檔名為 list.sh ,使用方式為  ./list.sh  /etc/passwd > user_web.html

#!/bin/bash
#filename="/shells/a.log"
NO=1
URL="http://www.nthu.edu.tw"
echo "<html><head><title>個人網頁列表</title></head><body>"
echo "<h1>個人網頁列表</h1>"
exec < $1
while read var
do
if [ -d "$var"/htdocs ]; then
     #echo $var/htdocs
     if [ "$(ls -A $var/htdocs)" ]; then
          #echo $(ls -A $var/htdocs)
          i=`echo $var | cut -d"/" -f5`
          echo "Users_$NO: <a href=\"$URL/~$i\">$i</a><br>"
          NO=$(($NO+1))
     fi
fi
done
echo "</body></html>"

 

如果你的使用者有好幾萬人,這個動作可能會跑好一陣子,耐心的等他跑完,就有一個所有使用者網頁的列表囉~

~End

回應
Google Search
Google
累積 | 今日
loading......
平均分數:0 顆星
投票人數:0
我要評分:
Google