linux下用iftop 查看你的网卡流量(iftop安装配置)
[
2010/08/22 09:41 | by admin ]
2010/08/22 09:41 | by admin ]
linux下用iftop 查看你的网卡流量
我用的是Centos5 ,需要安装 byacc 和flex这2个包
rpm -ivh byacc-1.9-29.2.2.i386.rpm
rpm -ivh flex-2.5.4a-41.fc6.i386.rpm
一般系统默认都是安装了的,如果没有安装可以到这下载:
wget ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/byacc-1.9-29.2.2.i386.rpm
wget ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/flex-2.5.4a-41.fc6.i386.rpm
rpm -ivh byacc-1.9-29.2.2.i386.rpm
rpm -ivh flex-2.5.4a-41.fc6.i386.rpm
另外还需要libpcap
libpcap下载:
http://www.tcpdump.org/release/
wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
tar zxvf libpcap-1.1.1.tar.gz
cd libpcap-1.1.1
./configure
make
make install
安装iftop
iftop下载:
http://www.ex-parrot.com/pdw/iftop/
http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make
make install
安装完成后直接用 iftop -i eth0 -n ,默认为监控eth0网卡的流量,也就是说直接运行iftop即可,就可以看到eth0网卡的流量状况,如图:

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的=> <= 这两个左右箭头,表示的是流量的方向,2行显示时,一行出,一行进。
右侧的三列数值:
第一列是:在此次刷新之前2s或10s或40s的平均流量(按B设置秒数);
第二列是:在此次刷新之前10秒钟的总流量的一半;
第三列是:在此次刷新之前40秒钟的总流量的1/5;
中间的列表,默认没有排序情况下,把10秒平均通信量大的排在前面。
界面最下面的三行显示的分别是发送、接收、总计的流量
右侧值分别是总流量(过滤后的,没过滤就是全部的)、在此次刷新之前40秒内的峰值流量、最近2秒的平均传输速率、最近10秒的平均传输速率、最近40秒的平均传输速率。
常用的参数:
/usr/sbin/iftop --help 查看帮助命令
-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message)没明白啥意思呢。。。hehe
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
-c指定具体的设定文件,暂时没用过;
进入iftop画面后的一些操作命令(注意大小写):
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
也可以从本站下载这几个软件:
下载文件 (已下载 203 次)
这是以上几个的rpm包,下载后直接rpm -ivh *.rpm即可完成安装。
我用的是Centos5 ,需要安装 byacc 和flex这2个包
rpm -ivh byacc-1.9-29.2.2.i386.rpm
rpm -ivh flex-2.5.4a-41.fc6.i386.rpm
一般系统默认都是安装了的,如果没有安装可以到这下载:
wget ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/byacc-1.9-29.2.2.i386.rpm
wget ftp://ftp.muug.mb.ca/mirror/centos/5.5/os/i386/CentOS/flex-2.5.4a-41.fc6.i386.rpm
rpm -ivh byacc-1.9-29.2.2.i386.rpm
rpm -ivh flex-2.5.4a-41.fc6.i386.rpm
另外还需要libpcap
libpcap下载:
http://www.tcpdump.org/release/
wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
tar zxvf libpcap-1.1.1.tar.gz
cd libpcap-1.1.1
./configure
make
make install
安装iftop
iftop下载:
http://www.ex-parrot.com/pdw/iftop/
http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make
make install
安装完成后直接用 iftop -i eth0 -n ,默认为监控eth0网卡的流量,也就是说直接运行iftop即可,就可以看到eth0网卡的流量状况,如图:
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的=> <= 这两个左右箭头,表示的是流量的方向,2行显示时,一行出,一行进。
右侧的三列数值:
第一列是:在此次刷新之前2s或10s或40s的平均流量(按B设置秒数);
第二列是:在此次刷新之前10秒钟的总流量的一半;
第三列是:在此次刷新之前40秒钟的总流量的1/5;
中间的列表,默认没有排序情况下,把10秒平均通信量大的排在前面。
界面最下面的三行显示的分别是发送、接收、总计的流量
右侧值分别是总流量(过滤后的,没过滤就是全部的)、在此次刷新之前40秒内的峰值流量、最近2秒的平均传输速率、最近10秒的平均传输速率、最近40秒的平均传输速率。
常用的参数:
/usr/sbin/iftop --help 查看帮助命令
-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message)没明白啥意思呢。。。hehe
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
-c指定具体的设定文件,暂时没用过;
进入iftop画面后的一些操作命令(注意大小写):
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
也可以从本站下载这几个软件:
下载文件 (已下载 203 次)这是以上几个的rpm包,下载后直接rpm -ivh *.rpm即可完成安装。
在windows下使用memcached教程
[
2010/08/12 10:45 | by admin ]
2010/08/12 10:45 | by admin ]
在windows下使用memcached教程
一、php扩展的安装
下载地址:http://downloads.php.net/pierre/
下载合适所用php版本,解压出php_memcache.dll,并拷入php\ext目录。
修改php.ini
加入extension=php_memcache.dll
重启iis
二、memcached服务端的安装
下载地址:http://jehiah.cz/projects/memcached-win32/
如:memcached-1.2.1-win32.zip,并解压
把memcached.exe拷入指定位置,如d:\memcached
打开cmd,进入d:\memcached
memcached.exe -d install
memcached.exe -d start
这时候memcached就可以正常使用了。
默认启动为使用内存: 64M
如需自行加大内存需自行运行memcached
停掉安装的服务或卸载安装的服务,进入d:\memcached
memcached.exe -m 128
这样,memcached就可以使用128M内存了。这时候你会发现这个CMD窗口一直开着,并不能关闭,关闭窗口memcached程序也会退出。
解决方法:
下载RunHiddenConsole.exe,并拷入d:\memcached
RunHiddenConsole.exe memcached.exe -m 128
附:memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
附:php扩展中的配置信息
[Memcache]
; 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
; 它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
; 是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = On
; 接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。
memcache.max_failover_attempts = 20
; 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
; 如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192
; 连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11211
; 控制将key映射到server的策略。默认值"standard"表示使用先前版本的老hash策略。
; 设为"consistent"可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
;memcache.hash_strategy = "standard"; 控制将key映射到server的散列函数。默认值"crc32"使用CRC32算法,而"fnv"则表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = "crc32"
;memcache也可以作为session的存储模块,具体参看:memcache PHP 的 session.save_handler.
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com
一、php扩展的安装
下载地址:http://downloads.php.net/pierre/
下载合适所用php版本,解压出php_memcache.dll,并拷入php\ext目录。
修改php.ini
加入extension=php_memcache.dll
重启iis
二、memcached服务端的安装
下载地址:http://jehiah.cz/projects/memcached-win32/
如:memcached-1.2.1-win32.zip,并解压
把memcached.exe拷入指定位置,如d:\memcached
打开cmd,进入d:\memcached
memcached.exe -d install
memcached.exe -d start
这时候memcached就可以正常使用了。
默认启动为使用内存: 64M
如需自行加大内存需自行运行memcached
停掉安装的服务或卸载安装的服务,进入d:\memcached
memcached.exe -m 128
这样,memcached就可以使用128M内存了。这时候你会发现这个CMD窗口一直开着,并不能关闭,关闭窗口memcached程序也会退出。
解决方法:
下载RunHiddenConsole.exe,并拷入d:\memcached
RunHiddenConsole.exe memcached.exe -m 128
附:memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
附:php扩展中的配置信息
[Memcache]
; 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
; 它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
; 是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = On
; 接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。
memcache.max_failover_attempts = 20
; 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
; 如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192
; 连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11211
; 控制将key映射到server的策略。默认值"standard"表示使用先前版本的老hash策略。
; 设为"consistent"可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
;memcache.hash_strategy = "standard"; 控制将key映射到server的散列函数。默认值"crc32"使用CRC32算法,而"fnv"则表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = "crc32"
;memcache也可以作为session的存储模块,具体参看:memcache PHP 的 session.save_handler.
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com
监控memcached的使用情况
[
2010/08/11 21:53 | by admin ]
2010/08/11 21:53 | by admin ]
php程序中的加速有eaccerator、xcache、memcached,自从DZX开始支持使用memcached,越来越多的人使用memcached,今天要讲的是如何掌握memcached的内存使用状况。
前提是已安装好memcache的php扩展,并安装memcached服务程序,并且已经启动,正常工作。
一、从php官方下载memcache的扩展包,下载地址如下:
http://pecl.php.net/package/memcache
如我们下载:memcache-3.0.4.tgz
解压后得到:memcache.php
打开memcache.php,设置上帐号、密码、连接信息
$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';
define('ADMIN_USERNAME','memcache'); // Admin Username
define('ADMIN_PASSWORD','password'); // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
如以上内容设置如下:
$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';
define('ADMIN_USERNAME','admin'); // 此处设置登录用户名
define('ADMIN_PASSWORD','123456'); // 此处设置登录用户密码
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 此处设置连接信息
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 只使用一个进程,此处屏蔽,否则可以设置多个连接信息
保存后把memcache.php文件拷贝到网站目录里,在IE的地址里打开,输入用户名密码后就可以看到memcached的使用情况了。
如下图所示:

前提是已安装好memcache的php扩展,并安装memcached服务程序,并且已经启动,正常工作。
一、从php官方下载memcache的扩展包,下载地址如下:
http://pecl.php.net/package/memcache
如我们下载:memcache-3.0.4.tgz
解压后得到:memcache.php
打开memcache.php,设置上帐号、密码、连接信息
$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';
define('ADMIN_USERNAME','memcache'); // Admin Username
define('ADMIN_PASSWORD','password'); // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
如以上内容设置如下:
$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';
define('ADMIN_USERNAME','admin'); // 此处设置登录用户名
define('ADMIN_PASSWORD','123456'); // 此处设置登录用户密码
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 此处设置连接信息
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 只使用一个进程,此处屏蔽,否则可以设置多个连接信息
保存后把memcache.php文件拷贝到网站目录里,在IE的地址里打开,输入用户名密码后就可以看到memcached的使用情况了。
如下图所示:
vsftpd通过DB验证虚拟用户配置2用户安装脚本
[
2010/07/17 10:37 | by admin ]
2010/07/17 10:37 | by admin ]
脚本仅作参考,具体为什么,请参考vsftpd配置文件,转载请注明地址,谢谢
附件此脚本服务控制脚本.
下载文件 (已下载 265 次)
#!/bin/bash
clear
echo "----------------源码安装vsftpd安装程序,按任意键继续----------------"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "本安装为配置tom和jack两虚拟用户登录各自的目录,请按任意键继续......"
char=`get_char`
mkdir -p /usr/local/man/man8/
mkdir -p /usr/local/man/man5/
tar zxvf vsftpd-2.2.2.tar.gz
cd vsftpd-2.2.2
make
make install
cp vsftpd.conf /etc/
touch /etc/vsftpd.chroot_list
touch /etc/ftpusers
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
cp ../vsftpd /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/vsftpd
chkconfig --add vsftpd
chkconfig vsftpd on
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#' /etc/vsftpd.conf
sed -i 's\#local_enable=YES\local_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#write_enable=YES\write_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#local_umask=022\local_umask=022\g' /etc/vsftpd.conf
sed -i 's\#ftpd_banner=Welcome to blah FTP service.\ftpd_banner=Welcome to xiaoyuwxzs FTP service.\g' /etc/vsftpd.conf
sed -i 's\dirmessage_enable=YES\#dirmessage_enable=YES\g' /etc/vsftpd.conf
sed -i 's\xferlog_enable=YES\#xferlog_enable=YES\g' /etc/vsftpd.conf
sed -i 's\connect_from_port_20=YES\#connect_from_port_20=YES\g' /etc/vsftpd.conf
echo "pam_service_name=vsftpd" >>/etc/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd.conf
echo "guest_enable=YES " >>/etc/vsftpd.conf
echo "guest_username=virtualuser" >>/etc/vsftpd.conf
echo "virtual_use_local_privs=YES" >>/etc/vsftpd.conf
echo "user_config_dir=/etc/vftp" >>/etc/vsftpd.conf
#修改pam认证文件
sed -i 's\auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed\#auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed\g' /etc/pam.d/vsftpd
sed -i 's\auth required /lib/security/pam_unix.so shadow nullok\#auth required /lib/security/pam_unix.so shadow nullok\g' /etc/pam.d/vsftpd
sed -i 's\auth required /lib/security/pam_shells.so\#auth required /lib/security/pam_shells.so\g' /etc/pam.d/vsftpd
sed -i 's\account required /lib/security/pam_unix.so\#account required /lib/security/pam_unix.so\g' /etc/pam.d/vsftpd
sed -i 's\session required /lib/security/pam_unix.so\#session required /lib/security/pam_unix.so\g' /etc/pam.d/vsftpd
echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >>/etc/pam.d/vsftpd
echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >>/etc/pam.d/vsftpd
useradd virtualuser -d /home/virtualuser -s /sbin/nologin
rpm -ivh db4*
touch /login.txt
echo "tom" >>/login.txt
echo "123456" >>/login.txt
echo "jack" >>/login.txt
echo "654321" >>/login.txt
db_load -T -t hash -f /login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_lofgin.db
mkdir /etc/vftp
touch /etc/vftp/tom
echo "local_root=/home/tom" >>/etc/vftp/tom
touch /etc/vftp/jack
echo "local_root=/home/jack" >>/etc/vftp/jack
mkdir /home/tom
mkdir /home/jack
chown virtualuser.virtualuser /home/tom
chown virtualuser.virtualuser /home/jack
chmod 700 /home/tom
chmod 700 /home/jack
service vsftpd start
sleep 1
echo "删除安装临时文件.............."
rm -Rf vsftpd-2.2.2
echo
echo
echo " ------------------- 如需增加新用户,请使用以下命令 -------------------"
echo "| echo "用户名" >>/login.txt |"
echo "| echo "密码" >>/login.txt |"
echo "| db_load -T -t hash -f /login.txt /etc/vsftpd_login.db |"
echo "| touch /etc/vftp/用户名 |"
echo "| mkdir /home/用户名 |"
echo "| chown virtualuser.virtualuser /home/用户名 |"
echo "| chmod 700 /home/用户名 |"
echo "| echo "local_root=/home/用户名" >>/etc/vftp/jack/用户名 |"
echo "| service vsftpd start |"
echo "| 如需禁用用户,增加用户名到 /etc/ftpusers |"
echo " -------------------------- vsftpd 安装结束! --------------------------"
sleep 1
附件此脚本服务控制脚本.
下载文件 (已下载 265 次)#!/bin/bash
clear
echo "----------------源码安装vsftpd安装程序,按任意键继续----------------"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "本安装为配置tom和jack两虚拟用户登录各自的目录,请按任意键继续......"
char=`get_char`
mkdir -p /usr/local/man/man8/
mkdir -p /usr/local/man/man5/
tar zxvf vsftpd-2.2.2.tar.gz
cd vsftpd-2.2.2
make
make install
cp vsftpd.conf /etc/
touch /etc/vsftpd.chroot_list
touch /etc/ftpusers
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
cp ../vsftpd /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/vsftpd
chkconfig --add vsftpd
chkconfig vsftpd on
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#' /etc/vsftpd.conf
sed -i 's\#local_enable=YES\local_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#write_enable=YES\write_enable=YES\g' /etc/vsftpd.conf
sed -i 's\#local_umask=022\local_umask=022\g' /etc/vsftpd.conf
sed -i 's\#ftpd_banner=Welcome to blah FTP service.\ftpd_banner=Welcome to xiaoyuwxzs FTP service.\g' /etc/vsftpd.conf
sed -i 's\dirmessage_enable=YES\#dirmessage_enable=YES\g' /etc/vsftpd.conf
sed -i 's\xferlog_enable=YES\#xferlog_enable=YES\g' /etc/vsftpd.conf
sed -i 's\connect_from_port_20=YES\#connect_from_port_20=YES\g' /etc/vsftpd.conf
echo "pam_service_name=vsftpd" >>/etc/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd.conf
echo "guest_enable=YES " >>/etc/vsftpd.conf
echo "guest_username=virtualuser" >>/etc/vsftpd.conf
echo "virtual_use_local_privs=YES" >>/etc/vsftpd.conf
echo "user_config_dir=/etc/vftp" >>/etc/vsftpd.conf
#修改pam认证文件
sed -i 's\auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed\#auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed\g' /etc/pam.d/vsftpd
sed -i 's\auth required /lib/security/pam_unix.so shadow nullok\#auth required /lib/security/pam_unix.so shadow nullok\g' /etc/pam.d/vsftpd
sed -i 's\auth required /lib/security/pam_shells.so\#auth required /lib/security/pam_shells.so\g' /etc/pam.d/vsftpd
sed -i 's\account required /lib/security/pam_unix.so\#account required /lib/security/pam_unix.so\g' /etc/pam.d/vsftpd
sed -i 's\session required /lib/security/pam_unix.so\#session required /lib/security/pam_unix.so\g' /etc/pam.d/vsftpd
echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >>/etc/pam.d/vsftpd
echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >>/etc/pam.d/vsftpd
useradd virtualuser -d /home/virtualuser -s /sbin/nologin
rpm -ivh db4*
touch /login.txt
echo "tom" >>/login.txt
echo "123456" >>/login.txt
echo "jack" >>/login.txt
echo "654321" >>/login.txt
db_load -T -t hash -f /login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_lofgin.db
mkdir /etc/vftp
touch /etc/vftp/tom
echo "local_root=/home/tom" >>/etc/vftp/tom
touch /etc/vftp/jack
echo "local_root=/home/jack" >>/etc/vftp/jack
mkdir /home/tom
mkdir /home/jack
chown virtualuser.virtualuser /home/tom
chown virtualuser.virtualuser /home/jack
chmod 700 /home/tom
chmod 700 /home/jack
service vsftpd start
sleep 1
echo "删除安装临时文件.............."
rm -Rf vsftpd-2.2.2
echo
echo
echo " ------------------- 如需增加新用户,请使用以下命令 -------------------"
echo "| echo "用户名" >>/login.txt |"
echo "| echo "密码" >>/login.txt |"
echo "| db_load -T -t hash -f /login.txt /etc/vsftpd_login.db |"
echo "| touch /etc/vftp/用户名 |"
echo "| mkdir /home/用户名 |"
echo "| chown virtualuser.virtualuser /home/用户名 |"
echo "| chmod 700 /home/用户名 |"
echo "| echo "local_root=/home/用户名" >>/etc/vftp/jack/用户名 |"
echo "| service vsftpd start |"
echo "| 如需禁用用户,增加用户名到 /etc/ftpusers |"
echo " -------------------------- vsftpd 安装结束! --------------------------"
sleep 1





