之前介绍了通过
Ping
值来测试机房质量,但这仅仅是测试的一部分。我们想要考察机房是否符合自己的业务需求,它的线路情况好不好,稳定不稳定,则还是需要测试它的上传下载速率情况。
由于前面的文章我有介绍虚拟用户的
vsftp
部署,在这里正好可以用上,我们就用
FTP
来进行测试,而
vsftp
的日志里面的信息足以归纳出我们想要的结果。首先我们来根据一个基本的环境来做测试前的准备工作。假设我们全国选了
10
个机房,这些工作可能是要在每个机房提供的测试服务器上都要做的。
1.
建立
500M
测试文件
用
admin
用户来测试。
在
ftp
的
admin
用户的家目录下创建
500M
文件
dd if=/dev/zero of=/home/ftpsite/admin/bigfile bs= 1M count=500
2.
创建脚本(大家可以根据自己的情况修改)
vi lftpshell
#!/bin/bash
ftp_server="192.168.18.9" #
目的
Ftpserver IP
地址
username="admin" #
用户名
password="1" #
密码
download_file_name="" #
要下载的文件名
lftp <<!
open ftp://${ftp_server} -p 21 -u ${username},${password} # -p
制定端口,和你
ftp
监听的端口保持一致
lcd /root/ #
本地目录
#mput a b
get $download_file_name
rm -f $download_file_name
put $download_file_name
exit
!
rm -f "/root/ ${download_file_name}" #
删除从
ftp
上下载到本地目录的文件
3.
设置到
crontab
中自动运行
vi /etc/crontab
编辑
crontab
,加入
0 */1 * * * root sh /root/software/lftpshell #
表示每隔一小时,在整点钟运行
lftpshell
脚本。
4.
定时查看
ftp
日志文件
more /var/log/vsftpd.log
网通,电信FTP互测
在测试中我们可能会遇到这样的问题,例如我们在测试北京网通的一个机房时,我们会让他去全国各个我们选择的待测机房节点去上传和下载我们事先创建好的测试文件。这样就可能出现一个问题,比如我们的测试文件大小是
1000M ,我们的测试周期为一小时,也就是每隔一小时会测不同的机房,这时候你会发现,网通连网通的时候,这个
1000M 的测试文件可能
10分钟就上传或下载完了,而网络连电信的时候即使
1个小时的时间也未必能完成测试过程,这样就会影响了连接下一个机房的测试,从而使整个测试出现混乱,所以我们要针对这种情况做一些修改。
1.
建立测试文件
用
admin
用户来测试。
为了避免跨网连接时速率较慢,上传和下载测试文件分别分为两个来创建
1.1
创建用于下载的文件
(
在
ftp
服务器端创建
)
在
ftp
的
admin
用户的家目录下创建
1000M
文件
(
用于电信连电信或网通连网通时所要下载的
)
dd if=/dev/zero of=/home/ftpsite/admin/test.txt bs= 100M count=10
再创建一个
10M
的文件(用于电信连网通或网通连电信时所要下载的)
dd if=/dev/zero of=/home/ftpsite/admin/test1.txt bs= 1M count=10
1.2
创建用于上传的文件(可以任意指定目录,最后和脚本中的本地目录对应即可,在
ftp
客户端创建)
在
root
家目录下创建
1000M
文件
(
用于电信连电信或网通连网通时所要上传的
)
dd if=/dev/zero of=/root/hello.txt bs= 100M count=10
再创建一个
10M
的文件(用于电信连网通或网通连电信时所要上传的)
d dd if=/dev/zero of=/root/hello1.txt bs= 1M count=10
2.
创建脚本
这里以电信
IDC
上的脚本为例
vi lftpshell_dianxin
(用于连接电信服务器的脚本)
#!/bin/bash
ftp_server="192.168.18.9" #
目的
Ftpserver IP
地址
username="admin" #
用户名
password="1" #
密码
download_file_name="test.txt" #
要下载的文件名(
1000M
的)
upload_file_name="hello.txt" #
要上传的文件名
(
1000M
的)
lftp <<!
open ftp://${ftp_server} -p 21 -u ${username},${password} # -p
制定端口,和你
ftp
监听的端口保持一致
lcd /root/ #
本地目录
#mput a b
get $download_file_name #
下载指定文件
put $ upload_file_name #
上传指定文件
rm -f $ upload_file_name #
最后删除上传后的文件
exit
!
rm -f "/root/ ${download_file_name}" #
删除从
ftp
上下载到本地目录的文件
vi lftpshell_wangtong
(用于连接网通服务器的脚本)
#!/bin/bash
ftp_server="192.168.18.7" #
目的
Ftpserver IP
地址
username="admin" #
用户名
password="1" #
密码
download_file_name="test1.txt" #
要下载的文件名
(
10M
的)
upload_file_name="hello1.txt" #
要上传的文件名
(
10M
的)
lftp <<!
open ftp://${ftp_server} -p 21 -u ${username},${password} # -p
制定端口,和你
ftp
监听的端口保持一致
lcd /root/ #
本地目录
#mput a b
get $download_file_name #
下载指定文件
put $ upload_file_name #
上传指定文件
rm -f $ upload_file_name #
最后删除上传后的文件
exit
!
rm -f "/root/ ${download_file_name}" #
删除从
ftp
上下载到本地目录的文件
3.
设置到
crontab
中自动运行
vi /etc/crontab
编辑
crontab
,加入
0 */1 * * * root sh /root/software/lftpshell_dianxin #
表示每隔一小时,在整点钟运行
lftpshell_dianxin
脚本。
30 */1 * * * root sh /root/software/lftpshell_wangtong #
表示每隔一小时,在半点钟运行
lftpshell_wangtong
脚本。
网通,电信FTP互测(匿名登录)
当然也不需要非得用虚拟用户的
vsftp,我们用匿名的
FTP也可以测试,大家可以根据情况来自己选择,下面就来介绍一下:
1.
yum
安装
vsftp
yum install vsftpd
2.
配置匿名
FTP
vi /etc/vsftpd/vsftpd.conf
修改配置文件
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
pasv_min_port=50000
pasv_max_port=60000
pasv_enable=yes
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
ftp_username=ftp
vi /etc/sysconfig/iptables
添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # 21
是监听端口,在
vsftpd.conf
中设置的
listen [
端口
]
对应
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50000:60000 -j ACCEPT #
传输数据用
50000----60000
之间的端口
和
vsftpd.conf
中的
pasv_min_port=50000
和
pasv_max_port=60000
对应
重启
iptables
3.
建立服务器端测试文件
匿名登录默认目录是
/var/ftp/,
为了提供上传权限需进入
pub
目录下创建测试文件,因为默认
/var/ftp/
目录没有上传权限
3.1
创建用于下载的文件
(
在
ftp
服务器端创建
)
在
/var/ftp/pub/
下创建
1000M
文件
(
用于电信连电信或网通连网通时所要下载的
)
dd if=/dev/zero of=/var/ftp/pub/admin/test.txt bs= 100M count=10
再创建一个
10M
的文件(用于电信连网通或网通连电信时所要下载的)
dd if=/dev/zero of=/var/ftp/pub/admin/test1.txt bs= 1M count=10
4.
建立匿名
ftp
脚本
#!/bin/bash
ftp_server="121.14.34.52"
username="ftp" #
用户名为
ftp
password="" #
密码为空
download_file_name="test.txt"
upload_file_name="hello.txt"
lftp <<!
open ftp://${ftp_server} -p 21 -u ${username},${password}
lcd /root/
cd pub #
进入
pub
目录下
#mput a b
get $download_file_name
put $upload_file_name
rm -f $upload_file_name
exit
!
rm -f "/root/${download_file_name}"
这样通过
FTP来测试上传下载速率,就可以很直观的看到每个节点,它去连接其他节点时,上传和下载的质量如何。当然机房的最终选择还需要一些指标来考量,大家可以根据实际情况来取舍。
本文出自 “奇幻的梦” 博客,转载请与作者联系!