Language
2007. 1. 24. 09:57
vsftpd가 나온지 수년이 흘렀지만.. 아직도 제대로 된 ftpwho가 없다.
구글링을 해봐도 ps ax의 조합이나 log를 이용해서 처리하는 방법뿐..
그럼 실시간 처리가 안돼잖아...
그래서 한번 만들어 봤다.
결과는??
대 만족 *^---------------------,.-----------------------^*
구글링을 해봐도 ps ax의 조합이나 log를 이용해서 처리하는 방법뿐..
그럼 실시간 처리가 안돼잖아...
그래서 한번 만들어 봤다.
결과는??
대 만족 *^---------------------,.-----------------------^*
#!/bin/bash
##########################################################################
# Script Name : ftpwho #
# Description : ProFTPD의 ftpwho 와 비슷하게 구현된 스크립트 #
# Version : 1.0.3 #
# License : Hyeok-Jung, KIM (Nick. 티니) #
# WebSite : LTN(Linux.Tini4u.Net) #
# E-Mail : sky (at) tini4u.net #
# LastUpdate : 2007. 01. 23. #
# Message : 이 스크립트는 VsFTPD의 독립모드(Standalone) 기준으로 #
# 제작되었습니다. #
# 사용/배포/수정은 자유이나, 이부분은 삭제하지 마십시요 #
##########################################################################
str_stat=`ps -ef | grep 'vsftpd' | grep 'LISTENER' | sed -e 's/.*vsftpd: //'`
if [ "$str_stat" ]; then
usr_cnt=`ps -ef | grep 'vsftpd' | grep 'connected' | wc -l`
if [ "$usr_cnt" != "0" ]; then
echo "♧ 현재 접속된 사용자는 총 $usr_cnt 명 입니다."
echo "-----------------------------------------------"
ps -ewwf \
| grep 'vsftpd' \
| grep -v 'grep' \
| grep -v 'sed' \
| grep -v ': connected' \
| grep -v 'LISTENER' \
| sed -e 's/.*vsftpd: //' \
| sed -e 's/:/\t| Status:/' \
| sed -e 's/STOR/UpLoad =>/' \
| sed -e 's/RETR/DownLoad =>/' \
| sed -e 's/\<\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\>/IP: \1/' \
| sed -e 's/\//\t| ID: /'
else
echo "♧ 현재 접속된 사용자가 아무도 없습니다."
fi
else
echo "VsFTP 데몬이 실행되고 있지 않습니다. VsFTP 데몬을 실행해주시기 바랍니다."
fi
##########################################################################
# Script Name : ftpwho #
# Description : ProFTPD의 ftpwho 와 비슷하게 구현된 스크립트 #
# Version : 1.0.3 #
# License : Hyeok-Jung, KIM (Nick. 티니) #
# WebSite : LTN(Linux.Tini4u.Net) #
# E-Mail : sky (at) tini4u.net #
# LastUpdate : 2007. 01. 23. #
# Message : 이 스크립트는 VsFTPD의 독립모드(Standalone) 기준으로 #
# 제작되었습니다. #
# 사용/배포/수정은 자유이나, 이부분은 삭제하지 마십시요 #
##########################################################################
str_stat=`ps -ef | grep 'vsftpd' | grep 'LISTENER' | sed -e 's/.*vsftpd: //'`
if [ "$str_stat" ]; then
usr_cnt=`ps -ef | grep 'vsftpd' | grep 'connected' | wc -l`
if [ "$usr_cnt" != "0" ]; then
echo "♧ 현재 접속된 사용자는 총 $usr_cnt 명 입니다."
echo "-----------------------------------------------"
ps -ewwf \
| grep 'vsftpd' \
| grep -v 'grep' \
| grep -v 'sed' \
| grep -v ': connected' \
| grep -v 'LISTENER' \
| sed -e 's/.*vsftpd: //' \
| sed -e 's/:/\t| Status:/' \
| sed -e 's/STOR/UpLoad =>/' \
| sed -e 's/RETR/DownLoad =>/' \
| sed -e 's/\<\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\>/IP: \1/' \
| sed -e 's/\//\t| ID: /'
else
echo "♧ 현재 접속된 사용자가 아무도 없습니다."
fi
else
echo "VsFTP 데몬이 실행되고 있지 않습니다. VsFTP 데몬을 실행해주시기 바랍니다."
fi