update testcase for testsuite ftp
This commit is contained in:
@@ -14,190 +14,18 @@
|
||||
"name": "test_ftp_function_create_dir",
|
||||
"desc": "Test creating a directory on FTP server"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__v",
|
||||
"desc": "测试ftp命令的-v参数,用于显示详细信息"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__n",
|
||||
"desc": "测试ftp命令的-n参数,用于禁止自动登录"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__i",
|
||||
"desc": "测试ftp命令的-i参数,用于关闭交互式提示"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__d",
|
||||
"desc": "测试ftp命令的-d参数,用于启用调试信息"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__g",
|
||||
"desc": "测试ftp命令的-g参数,用于禁用文件名通配符"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__s_filename",
|
||||
"desc": "测试ftp命令的-s参数并指定文件名,用于从文件读取命令"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__a",
|
||||
"desc": "测试ftp命令的-a参数,用于在绑定时使用任何本地接口"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__upper_a",
|
||||
"desc": "测试ftp命令的-A参数,用于强制使用主动模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__p",
|
||||
"desc": "测试ftp命令的-p参数,用于强制使用被动模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__r",
|
||||
"desc": "测试ftp命令的-r参数,用于设置重试次数"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__upper_v",
|
||||
"desc": "测试ftp命令的-V参数,用于显示版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_ftp__h",
|
||||
"desc": "测试ftp命令的-h参数,用于显示帮助信息"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_v",
|
||||
"desc": "测试pftp命令的-V参数,用于显示版本信息"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_v",
|
||||
"desc": "测试pftp命令的-v参数,用于显示详细输出"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_n",
|
||||
"desc": "测试pftp命令的-N参数,用于指定网络地址"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_p",
|
||||
"desc": "测试pftp命令的-P参数,用于指定端口号"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_r",
|
||||
"desc": "测试pftp命令的-R参数,用于指定重试次数"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_t",
|
||||
"desc": "测试pftp命令的-T参数,用于设置超时时间"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_i",
|
||||
"desc": "测试pftp命令的-I参数,用于指定输入文件"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_o",
|
||||
"desc": "测试pftp命令的-O参数,用于指定输出文件"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_s",
|
||||
"desc": "测试pftp命令的-S参数,用于指定源地址"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_a",
|
||||
"desc": "测试pftp命令的-A参数,用于启用主动模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_e",
|
||||
"desc": "测试pftp命令的-E参数,用于启用EPSV模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_l",
|
||||
"desc": "测试pftp命令的-L参数,用于限制数据速率"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_u",
|
||||
"desc": "测试pftp命令的-U参数,用于设置用户"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_w",
|
||||
"desc": "测试pftp命令的-W参数,用于设置密码"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_d",
|
||||
"desc": "测试pftp命令的-D参数,用于启用调试模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_c",
|
||||
"desc": "测试pftp命令的-C参数,用于启用压缩模式"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_k",
|
||||
"desc": "测试pftp命令的-K参数,用于设置keepalive间隔"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_m",
|
||||
"desc": "测试pftp命令的-M参数,用于设置MDTM时间戳"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_f",
|
||||
"desc": "测试pftp命令的-F参数,用于设置FTP命令"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_g",
|
||||
"desc": "测试pftp命令的-G参数,用于禁用通配符扩展"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_h",
|
||||
"desc": "测试pftp命令的-H参数,用于指定主机"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_j",
|
||||
"desc": "测试pftp命令的-J参数,用于指定代理"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_x",
|
||||
"desc": "测试pftp命令的-X参数,用于指定代理用户"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_y",
|
||||
"desc": "测试pftp命令的-Y参数,用于指定代理密码"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_z",
|
||||
"desc": "测试pftp命令的-Z参数,用于指定代理类型"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_q",
|
||||
"desc": "测试pftp命令的-Q参数,用于设置配额"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_pftp_upper_b",
|
||||
"desc": "测试pftp命令的-B参数,用于设置缓冲区大小"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_install_check",
|
||||
"desc": "Check if FTP package is installed"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_basic_connect",
|
||||
"desc": "Test basic FTP server connection"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_list_dir",
|
||||
"desc": "Test listing directory contents via FTP"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_upload_file",
|
||||
"desc": "Test uploading a file via FTP"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_download_file",
|
||||
"desc": "Test downloading a file via FTP"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_delete_file",
|
||||
"desc": "Test deleting a file on FTP server"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_passive_mode",
|
||||
"desc": "Test FTP connection in passive mode"
|
||||
},
|
||||
{
|
||||
"name": "test_ftp_function_help_output",
|
||||
"desc": "Test FTP command help information"
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-a参数,用于在绑定时使用任何本地接口
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试ftp命令的-a参数功能
|
||||
LOG_INFO "开始测试ftp命令的-a参数功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="ftp"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查ftp软件包是否已安装"
|
||||
rpm -q $PACKAGE_NAME
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
dnf list available $PACKAGE_NAME 2>/dev/null | grep -q $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "yum源中没有找到ftp软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查ftp命令是否存在
|
||||
LOG_INFO "检查ftp命令是否存在"
|
||||
which ftp
|
||||
CHECK_RESULT $? 0 0 "ftp命令不存在"
|
||||
|
||||
# 检查ftp命令是否支持-a参数
|
||||
LOG_INFO "检查ftp命令是否支持-a参数"
|
||||
ftp --help 2>&1 | grep -q "\-a"
|
||||
CHECK_RESULT $? 0 0 "ftp命令不支持-a参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持-a参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试ftp命令的-a参数功能
|
||||
LOG_INFO "测试ftp命令的-a参数功能"
|
||||
ftp -a localhost <<EOF
|
||||
quit
|
||||
EOF
|
||||
|
||||
# 检查ftp命令执行结果
|
||||
CHECK_RESULT $? 0 0 "ftp命令执行失败"
|
||||
|
||||
# 清理测试环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "ftp命令-a参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-g参数,用于禁用文件名通配符
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-g参数,用于禁用文件名通配符"
|
||||
|
||||
LOG_INFO "检查ftp命令是否已安装"
|
||||
if command -v ftp &> /dev/null; then
|
||||
LOG_INFO "ftp命令已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp命令未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "检查ftp命令是否支持-g参数"
|
||||
ftp -h 2>&1 | grep -q "\-g"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持-g参数"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "测试ftp命令的-g参数"
|
||||
ftp -g example.com <<EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "ftp命令执行失败"
|
||||
|
||||
LOG_INFO "测试完成,开始清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "环境恢复完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-h参数,用于显示帮助信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-h参数,用于显示帮助信息"
|
||||
|
||||
# 检查是否已安装ftp客户端
|
||||
LOG_INFO "检查ftp客户端是否已安装"
|
||||
if rpm -q ftp &>/dev/null; then
|
||||
LOG_INFO "ftp客户端已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则尝试安装
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 测试-h参数
|
||||
LOG_INFO "测试ftp命令的-h参数"
|
||||
ftp -h 2>&1 | grep -q "usage"
|
||||
CHECK_RESULT $? 0 0 "ftp -h命令执行失败或未显示帮助信息"
|
||||
|
||||
# 清理环境:如果测试前未安装,则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
else
|
||||
LOG_INFO "保持ftp客户端安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-i参数,用于关闭交互式提示
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-i参数功能"
|
||||
LOG_INFO "步骤1:检查ftp软件包是否已在yum源中"
|
||||
dnf list available ftp 2>/dev/null | grep -q "^ftp\."
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在ftp软件包"
|
||||
|
||||
LOG_INFO "步骤2:检查系统是否已安装ftp客户端"
|
||||
rpm -q ftp > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp客户端已安装,测试完成后将保持安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,将作为测试步骤安装"
|
||||
INSTALLED=0
|
||||
fi
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
LOG_INFO "ftp客户端安装成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:检查ftp命令是否支持-i参数"
|
||||
ftp -i --help 2>&1 | grep -q "\-i"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持-i参数"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "ftp命令支持-i参数"
|
||||
|
||||
LOG_INFO "步骤5:验证ftp -i命令基本执行(不实际连接服务器)"
|
||||
ftp -i -n 2>&1 | head -5
|
||||
CHECK_RESULT $? 0 0 "ftp -i命令执行失败"
|
||||
|
||||
LOG_INFO "步骤6:验证-i参数关闭交互式提示的效果(模拟操作)"
|
||||
echo "测试-i参数功能" | timeout 2 ftp -i 2>&1 | grep -q "Interactive mode off"
|
||||
CHECK_RESULT $? 0 0 "-i参数未能关闭交互式提示"
|
||||
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤7:清理环境,卸载测试安装的ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
LOG_INFO "ftp客户端卸载成功"
|
||||
else
|
||||
LOG_INFO "步骤7:环境已安装ftp客户端,保持安装状态,无需卸载"
|
||||
fi
|
||||
|
||||
LOG_INFO "ftp命令的-i参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-n参数,用于禁止自动登录
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp客户端
|
||||
LOG_INFO "检查是否已安装ftp客户端"
|
||||
if ! dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "ftp客户端未安装,将在测试过程中安装"
|
||||
INSTALLED_FTP=0
|
||||
else
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
INSTALLED_FTP=1
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp客户端
|
||||
if [ ${INSTALLED_FTP} -eq 0 ]; then
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 测试ftp命令的-n参数
|
||||
LOG_INFO "测试ftp命令的-n参数"
|
||||
LOG_INFO "执行ftp -n命令,验证禁止自动登录功能"
|
||||
ftp -n
|
||||
CHECK_RESULT $? 0 0 "ftp -n命令执行失败"
|
||||
|
||||
# 验证-n参数是否存在
|
||||
LOG_INFO "验证-n参数是否存在"
|
||||
ftp --help 2>&1 | grep -q "\-n"
|
||||
CHECK_RESULT $? 0 0 "ftp命令不支持-n参数"
|
||||
|
||||
# 测试ftp -n命令的基本功能
|
||||
LOG_INFO "测试ftp -n命令的基本功能"
|
||||
LOG_INFO "尝试连接不存在的服务器,验证-n参数不会自动登录"
|
||||
timeout 5 ftp -n invalid.server.local 2>&1 | grep -q "Not connected"
|
||||
CHECK_RESULT $? 0 0 "ftp -n命令未正确禁止自动登录"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ ${INSTALLED_FTP} -eq 0 ]; then
|
||||
LOG_INFO "卸载测试过程中安装的ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-p参数,用于强制使用被动模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-p参数(被动模式)"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE="ftp"
|
||||
|
||||
# 步骤1:检查环境是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
if command -v ftp &> /dev/null; then
|
||||
LOG_INFO "ftp已安装,测试后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤2:检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否存在ftp软件包"
|
||||
if ! dnf list available "$PACKAGE" &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查ftp命令是否支持-p参数
|
||||
LOG_INFO "检查ftp命令是否支持-p参数"
|
||||
ftp -h 2>&1 | grep -q "\-p"
|
||||
CHECK_RESULT $? 0 0 "ftp命令不支持-p参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持-p参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:测试ftp命令的-p参数
|
||||
LOG_INFO "测试ftp命令的-p参数(被动模式)"
|
||||
# 这里使用一个不存在的服务器地址进行测试,仅检查参数解析是否成功
|
||||
ftp -p -n 127.0.0.1 21 <<EOF
|
||||
quit
|
||||
EOF
|
||||
# 检查ftp命令是否成功解析参数(即使连接失败,参数解析成功也会返回0)
|
||||
CHECK_RESULT $? 0 0 "ftp命令-p参数测试失败"
|
||||
|
||||
# 步骤6:清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y "$PACKAGE"
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "ftp命令-p参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-r参数,用于设置重试次数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp客户端
|
||||
LOG_INFO "检查是否已安装ftp客户端"
|
||||
if ! rpm -q ftp >/dev/null 2>&1; then
|
||||
LOG_INFO "ftp客户端未安装,将在测试过程中安装"
|
||||
INSTALLED_FTP=0
|
||||
else
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
INSTALLED_FTP=1
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装ftp,则进行安装
|
||||
if [ ${INSTALLED_FTP} -eq 0 ]; then
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 测试ftp命令的-r参数
|
||||
LOG_INFO "测试ftp命令的-r参数,设置重试次数为3"
|
||||
ftp -r 3 localhost <<EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "ftp命令的-r参数测试失败"
|
||||
|
||||
# 测试ftp命令的-r参数无效值
|
||||
LOG_INFO "测试ftp命令的-r参数无效值(非数字)"
|
||||
ftp -r abc localhost 2>&1 | grep -q "invalid"
|
||||
CHECK_RESULT $? 0 0 "ftp命令的-r参数无效值处理不符合预期"
|
||||
|
||||
# 测试ftp命令的-r参数不支持的情况
|
||||
LOG_INFO "测试ftp命令的-r参数不支持的情况"
|
||||
if ftp -r 3 -x localhost 2>&1 | grep -q "invalid option\|unrecognized option"; then
|
||||
LOG_INFO "ftp命令不支持-x参数,符合预期"
|
||||
else
|
||||
LOG_ERROR "ftp命令参数检查失败"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 清理环境:如果测试前未安装ftp,则卸载
|
||||
if [ ${INSTALLED_FTP} -eq 0 ]; then
|
||||
LOG_INFO "卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "ftp命令-r参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-s参数并指定文件名,用于从文件读取命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出
|
||||
LOG_INFO() {
|
||||
echo -e "\033[32m[INFO]\033[0m $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "\033[31m[ERROR]\033[0m $1"
|
||||
}
|
||||
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="ftp"
|
||||
COMMAND="ftp"
|
||||
PARAM="-s"
|
||||
TEST_FILE="/tmp/ftp_commands.txt"
|
||||
TEST_SERVER="localhost"
|
||||
TEST_PORT="21"
|
||||
|
||||
# 步骤1:检查yum源中是否存在ftp软件包
|
||||
LOG_INFO "步骤1:检查yum源中是否存在ftp软件包"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PACKAGE_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查系统是否已安装ftp
|
||||
LOG_INFO "步骤2:检查系统是否已安装ftp"
|
||||
if command -v ${COMMAND} &>/dev/null; then
|
||||
LOG_INFO "ftp已安装,脚本结束后保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "ftp未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 步骤3:安装ftp软件包(如果未安装)
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "步骤3:安装ftp软件包"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查ftp命令是否支持-s参数
|
||||
LOG_INFO "步骤4:检查ftp命令是否支持-s参数"
|
||||
${COMMAND} --help 2>&1 | grep -q "${PARAM}"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持${PARAM}参数"
|
||||
# 如果之前未安装,则卸载软件包
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤5:创建测试文件
|
||||
LOG_INFO "步骤5:创建测试文件"
|
||||
cat > ${TEST_FILE} << EOF
|
||||
open ${TEST_SERVER} ${TEST_PORT}
|
||||
user anonymous anonymous
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 步骤6:测试ftp命令的-s参数
|
||||
LOG_INFO "步骤6:测试ftp命令的-s参数"
|
||||
${COMMAND} ${PARAM} ${TEST_FILE} ${TEST_SERVER} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "ftp命令执行失败"
|
||||
|
||||
# 步骤7:清理测试文件
|
||||
LOG_INFO "步骤7:清理测试文件"
|
||||
rm -f ${TEST_FILE}
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
|
||||
# 步骤8:恢复环境
|
||||
LOG_INFO "步骤8:恢复环境"
|
||||
if [ ${ALREADY_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-A参数,用于强制使用主动模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-A参数(强制使用主动模式)"
|
||||
|
||||
LOG_INFO "1. 检查是否已安装ftp客户端"
|
||||
if command -v ftp &> /dev/null; then
|
||||
LOG_INFO "ftp客户端已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "3. 安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查ftp命令是否支持-A参数"
|
||||
ftp -A 2>&1 | grep -q "unknown option"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持-A参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 测试ftp命令的-A参数"
|
||||
LOG_INFO "尝试使用主动模式连接FTP服务器(假设服务器为localhost)"
|
||||
ftp -A localhost <<EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "使用-A参数连接FTP服务器失败"
|
||||
|
||||
LOG_INFO "6. 清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
else
|
||||
LOG_INFO "保持ftp客户端安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-V参数,用于显示版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp客户端
|
||||
LOG_INFO "检查是否已安装ftp客户端"
|
||||
if ! dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "ftp客户端未安装,将在测试过程中安装"
|
||||
INSTALLED_DURING_TEST=1
|
||||
else
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
INSTALLED_DURING_TEST=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp客户端
|
||||
if [ ${INSTALLED_DURING_TEST} -eq 1 ]; then
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 测试ftp命令的-V参数
|
||||
LOG_INFO "测试ftp命令的-V参数,用于显示版本信息"
|
||||
ftp -V
|
||||
CHECK_RESULT $? 0 0 "ftp -V命令执行失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ ${INSTALLED_DURING_TEST} -eq 1 ]; then
|
||||
LOG_INFO "卸载测试期间安装的ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载ftp客户端"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试ftp命令的-v参数,用于显示详细信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试ftp命令的-v参数,用于显示详细信息"
|
||||
LOG_INFO "检查环境是否已安装ftp软件包"
|
||||
if dnf list installed ftp &> /dev/null; then
|
||||
LOG_INFO "ftp软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "检查yum源中是否存在ftp软件包"
|
||||
if ! dnf list available ftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
LOG_INFO "检查ftp命令是否支持-v参数"
|
||||
ftp -v &> /dev/null
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "ftp命令不支持-v参数或参数不存在"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "执行ftp -v命令测试"
|
||||
ftp -v
|
||||
CHECK_RESULT $? 0 0 "ftp -v命令执行失败"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "测试完成,卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "测试完成,保持ftp软件包安装状态"
|
||||
fi
|
||||
LOG_INFO "测试结束,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test basic FTP server connection
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试:Test basic FTP server connection"
|
||||
|
||||
# 检查是否已安装vsftpd
|
||||
LOG_INFO "检查vsftpd是否已安装"
|
||||
if dnf list installed vsftpd &>/dev/null; then
|
||||
LOG_INFO "vsftpd已安装,标记为需要保持安装状态"
|
||||
INSTALLED_BEFORE_TEST=true
|
||||
else
|
||||
LOG_INFO "vsftpd未安装,将在测试中安装"
|
||||
INSTALLED_BEFORE_TEST=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有vsftpd软件包
|
||||
LOG_INFO "检查yum源中是否有vsftpd软件包"
|
||||
if ! dnf list available vsftpd &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到vsftpd软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装vsftpd
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "安装vsftpd软件包"
|
||||
dnf install -y vsftpd
|
||||
CHECK_RESULT $? 0 0 "安装vsftpd失败"
|
||||
fi
|
||||
|
||||
# 启动vsftpd服务
|
||||
LOG_INFO "启动vsftpd服务"
|
||||
systemctl start vsftpd
|
||||
CHECK_RESULT $? 0 0 "启动vsftpd服务失败"
|
||||
|
||||
# 检查vsftpd服务状态
|
||||
LOG_INFO "检查vsftpd服务状态"
|
||||
systemctl status vsftpd | grep -q "active (running)"
|
||||
CHECK_RESULT $? 0 0 "vsftpd服务未正常运行"
|
||||
|
||||
# 测试FTP基本连接
|
||||
LOG_INFO "测试FTP基本连接"
|
||||
timeout 5 ftp -n localhost <<EOF
|
||||
user anonymous anonymous
|
||||
bye
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "FTP基本连接测试失败"
|
||||
|
||||
# 停止vsftpd服务
|
||||
LOG_INFO "停止vsftpd服务"
|
||||
systemctl stop vsftpd
|
||||
CHECK_RESULT $? 0 0 "停止vsftpd服务失败"
|
||||
|
||||
# 清理环境:如果测试前未安装则卸载vsftpd
|
||||
if [ "$INSTALLED_BEFORE_TEST" = false ]; then
|
||||
LOG_INFO "卸载vsftpd软件包"
|
||||
dnf remove -y vsftpd
|
||||
CHECK_RESULT $? 0 0 "卸载vsftpd失败"
|
||||
else
|
||||
LOG_INFO "测试前已安装vsftpd,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test basic FTP server connection"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,218 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test deleting a file on FTP server
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试FTP服务器上删除文件功能
|
||||
LOG_INFO "开始测试:Test deleting a file on FTP server"
|
||||
|
||||
# 定义软件包名称
|
||||
FTP_PACKAGE="vsftpd"
|
||||
FTP_CLIENT_PACKAGE="ftp"
|
||||
|
||||
# 检查是否已安装FTP服务器
|
||||
LOG_INFO "步骤1:检查FTP服务器是否已安装"
|
||||
if rpm -q $FTP_PACKAGE >/dev/null 2>&1; then
|
||||
LOG_INFO "FTP服务器已安装,脚本结束时将保持安装状态"
|
||||
FTP_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "FTP服务器未安装,将在测试过程中安装"
|
||||
FTP_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查是否已安装FTP客户端
|
||||
if rpm -q $FTP_CLIENT_PACKAGE >/dev/null 2>&1; then
|
||||
LOG_INFO "FTP客户端已安装"
|
||||
CLIENT_INSTALLED=true
|
||||
else
|
||||
LOG_INFO "FTP客户端未安装"
|
||||
CLIENT_INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有FTP服务器软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有FTP服务器软件包"
|
||||
dnf list available $FTP_PACKAGE >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到$FTP_PACKAGE软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有FTP客户端软件包
|
||||
LOG_INFO "步骤3:检查yum源中是否有FTP客户端软件包"
|
||||
dnf list available $FTP_CLIENT_PACKAGE >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到$FTP_CLIENT_PACKAGE软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果需要,安装FTP服务器
|
||||
if [ "$FTP_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤4:安装FTP服务器"
|
||||
dnf install -y $FTP_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "安装FTP服务器失败"
|
||||
fi
|
||||
|
||||
# 如果需要,安装FTP客户端
|
||||
if [ "$CLIENT_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤5:安装FTP客户端"
|
||||
dnf install -y $FTP_CLIENT_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "安装FTP客户端失败"
|
||||
fi
|
||||
|
||||
# 启动FTP服务
|
||||
LOG_INFO "步骤6:启动FTP服务"
|
||||
systemctl start vsftpd
|
||||
CHECK_RESULT $? 0 0 "启动FTP服务失败"
|
||||
|
||||
# 检查FTP服务状态
|
||||
LOG_INFO "步骤7:检查FTP服务状态"
|
||||
systemctl status vsftpd | grep -q "active (running)"
|
||||
CHECK_RESULT $? 0 0 "FTP服务未正常运行"
|
||||
|
||||
# 创建测试用户和目录
|
||||
LOG_INFO "步骤8:创建测试用户和目录"
|
||||
TEST_USER="ftp_test_user"
|
||||
TEST_PASS="ftp_test_pass123"
|
||||
TEST_DIR="/home/$TEST_USER/ftp_test"
|
||||
TEST_FILE="$TEST_DIR/test_file.txt"
|
||||
|
||||
# 检查用户是否已存在
|
||||
if id "$TEST_USER" &>/dev/null; then
|
||||
LOG_INFO "测试用户已存在,跳过创建"
|
||||
else
|
||||
useradd -m -s /bin/bash $TEST_USER
|
||||
CHECK_RESULT $? 0 0 "创建测试用户失败"
|
||||
echo "$TEST_USER:$TEST_PASS" | chpasswd
|
||||
CHECK_RESULT $? 0 0 "设置测试用户密码失败"
|
||||
fi
|
||||
|
||||
# 创建测试目录
|
||||
mkdir -p $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "创建测试目录失败"
|
||||
chown $TEST_USER:$TEST_USER $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "设置测试目录权限失败"
|
||||
|
||||
# 创建测试文件
|
||||
LOG_INFO "步骤9:创建测试文件"
|
||||
echo "This is a test file for FTP delete operation" > $TEST_FILE
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
chown $TEST_USER:$TEST_USER $TEST_FILE
|
||||
CHECK_RESULT $? 0 0 "设置测试文件权限失败"
|
||||
|
||||
# 配置FTP允许本地用户登录
|
||||
LOG_INFO "步骤10:配置FTP服务器"
|
||||
FTP_CONFIG="/etc/vsftpd/vsftpd.conf"
|
||||
cp $FTP_CONFIG ${FTP_CONFIG}.backup
|
||||
CHECK_RESULT $? 0 0 "备份FTP配置文件失败"
|
||||
|
||||
# 修改FTP配置
|
||||
sed -i "s/^#local_enable=YES/local_enable=YES/" $FTP_CONFIG
|
||||
sed -i "s/^#write_enable=YES/write_enable=YES/" $FTP_CONFIG
|
||||
sed -i "s/^#chroot_local_user=YES/chroot_local_user=YES/" $FTP_CONFIG
|
||||
|
||||
# 重启FTP服务使配置生效
|
||||
LOG_INFO "步骤11:重启FTP服务"
|
||||
systemctl restart vsftpd
|
||||
CHECK_RESULT $? 0 0 "重启FTP服务失败"
|
||||
|
||||
# 等待服务完全启动
|
||||
sleep 2
|
||||
|
||||
# 测试FTP删除文件功能
|
||||
LOG_INFO "步骤12:测试FTP删除文件功能"
|
||||
|
||||
# 创建FTP命令脚本
|
||||
FTP_SCRIPT="/tmp/ftp_delete_test.script"
|
||||
cat > $FTP_SCRIPT << EOF
|
||||
user $TEST_USER
|
||||
$TEST_PASS
|
||||
cd ftp_test
|
||||
delete test_file.txt
|
||||
quit
|
||||
EOF
|
||||
|
||||
# 执行FTP命令删除文件
|
||||
LOG_INFO "步骤13:执行FTP命令删除测试文件"
|
||||
ftp -n localhost < $FTP_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "FTP删除文件命令执行失败"
|
||||
|
||||
# 验证文件是否已被删除
|
||||
LOG_INFO "步骤14:验证文件是否已被删除"
|
||||
if [ -f "$TEST_FILE" ]; then
|
||||
LOG_ERROR "测试文件未被删除"
|
||||
CHECK_RESULT 1 0 0 "FTP删除文件功能测试失败"
|
||||
else
|
||||
LOG_INFO "测试文件已成功删除"
|
||||
CHECK_RESULT 0 0 0 "FTP删除文件功能测试成功"
|
||||
fi
|
||||
|
||||
# 清理测试环境
|
||||
LOG_INFO "步骤15:清理测试环境"
|
||||
|
||||
# 删除FTP命令脚本
|
||||
rm -f $FTP_SCRIPT
|
||||
CHECK_RESULT $? 0 0 "删除FTP命令脚本失败"
|
||||
|
||||
# 恢复FTP配置文件
|
||||
if [ -f "${FTP_CONFIG}.backup" ]; then
|
||||
mv ${FTP_CONFIG}.backup $FTP_CONFIG
|
||||
CHECK_RESULT $? 0 0 "恢复FTP配置文件失败"
|
||||
|
||||
# 重启FTP服务
|
||||
systemctl restart vsftpd
|
||||
CHECK_RESULT $? 0 0 "重启FTP服务失败"
|
||||
fi
|
||||
|
||||
# 删除测试目录
|
||||
if [ -d "$TEST_DIR" ]; then
|
||||
rm -rf $TEST_DIR
|
||||
CHECK_RESULT $? 0 0 "删除测试目录失败"
|
||||
fi
|
||||
|
||||
# 删除测试用户(如果是在测试过程中创建的)
|
||||
if [ "$FTP_INSTALLED" = false ] && id "$TEST_USER" &>/dev/null; then
|
||||
userdel -r $TEST_USER
|
||||
CHECK_RESULT $? 0 0 "删除测试用户失败"
|
||||
fi
|
||||
|
||||
# 停止FTP服务(如果是在测试过程中安装的)
|
||||
if [ "$FTP_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤16:停止FTP服务"
|
||||
systemctl stop vsftpd
|
||||
CHECK_RESULT $? 0 0 "停止FTP服务失败"
|
||||
fi
|
||||
|
||||
# 卸载软件包(如果是在测试过程中安装的)
|
||||
if [ "$FTP_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤17:卸载FTP服务器"
|
||||
dnf remove -y $FTP_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "卸载FTP服务器失败"
|
||||
fi
|
||||
|
||||
if [ "$CLIENT_INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤18:卸载FTP客户端"
|
||||
dnf remove -y $FTP_CLIENT_PACKAGE
|
||||
CHECK_RESULT $? 0 0 "卸载FTP客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:Test deleting a file on FTP server"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,145 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test downloading a file via FTP
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试FTP下载文件功能
|
||||
LOG_INFO "开始测试FTP下载文件功能"
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="ftp"
|
||||
|
||||
# 检查软件包是否已安装
|
||||
LOG_INFO "步骤1:检查FTP客户端是否已安装"
|
||||
if dnf list installed "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_INFO "FTP客户端已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_BEFORE="true"
|
||||
else
|
||||
LOG_INFO "FTP客户端未安装,将在测试前安装"
|
||||
INSTALLED_BEFORE="false"
|
||||
fi
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "步骤2:检查yum源中是否存在FTP客户端软件包"
|
||||
if ! dnf list available "$PACKAGE_NAME" &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到FTP客户端软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装FTP客户端"
|
||||
dnf install -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "安装FTP客户端失败"
|
||||
fi
|
||||
|
||||
# 测试FTP下载功能
|
||||
LOG_INFO "步骤4:测试FTP下载文件功能"
|
||||
|
||||
# 检查ftp命令是否存在
|
||||
if ! command -v ftp &>/dev/null; then
|
||||
LOG_ERROR "ftp命令不存在"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查ftp命令是否支持-b参数
|
||||
if ! ftp --help 2>&1 | grep -q "\-b"; then
|
||||
LOG_ERROR "ftp命令不支持-b参数"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 创建测试文件
|
||||
LOG_INFO "步骤5:创建测试文件"
|
||||
TEST_FILE="test_ftp_download.txt"
|
||||
echo "This is a test file for FTP download" > "$TEST_FILE"
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 启动FTP服务器(使用Python的简单FTP服务器)
|
||||
LOG_INFO "步骤6:启动临时FTP服务器"
|
||||
python3 -m pyftpdlib -p 2121 -d . -w &
|
||||
FTP_SERVER_PID=$!
|
||||
sleep 2
|
||||
|
||||
# 检查FTP服务器是否启动成功
|
||||
if ! ps -p $FTP_SERVER_PID &>/dev/null; then
|
||||
LOG_ERROR "FTP服务器启动失败"
|
||||
rm -f "$TEST_FILE"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 下载文件
|
||||
LOG_INFO "步骤7:通过FTP下载文件"
|
||||
DOWNLOADED_FILE="downloaded_test_file.txt"
|
||||
ftp -n <<EOF
|
||||
open localhost 2121
|
||||
user anonymous anonymous
|
||||
get $TEST_FILE $DOWNLOADED_FILE
|
||||
quit
|
||||
EOF
|
||||
|
||||
# 检查下载是否成功
|
||||
if [ -f "$DOWNLOADED_FILE" ]; then
|
||||
LOG_INFO "文件下载成功"
|
||||
# 比较文件内容
|
||||
if cmp -s "$TEST_FILE" "$DOWNLOADED_FILE"; then
|
||||
LOG_INFO "下载的文件内容与原始文件一致"
|
||||
CHECK_RESULT $? 0 0 "文件内容不一致"
|
||||
else
|
||||
LOG_ERROR "下载的文件内容与原始文件不一致"
|
||||
CHECK_RESULT $? 0 1 "文件内容不一致"
|
||||
fi
|
||||
else
|
||||
LOG_ERROR "文件下载失败"
|
||||
CHECK_RESULT $? 0 1 "文件下载失败"
|
||||
fi
|
||||
|
||||
# 清理临时文件
|
||||
LOG_INFO "步骤8:清理临时文件"
|
||||
rm -f "$TEST_FILE" "$DOWNLOADED_FILE"
|
||||
CHECK_RESULT $? 0 0 "清理临时文件失败"
|
||||
|
||||
# 停止FTP服务器
|
||||
LOG_INFO "步骤9:停止FTP服务器"
|
||||
kill $FTP_SERVER_PID 2>/dev/null
|
||||
wait $FTP_SERVER_PID 2>/dev/null
|
||||
|
||||
# 恢复环境
|
||||
LOG_INFO "步骤10:恢复测试环境"
|
||||
if [ "$INSTALLED_BEFORE" = "false" ]; then
|
||||
LOG_INFO "卸载测试期间安装的FTP客户端"
|
||||
dnf remove -y "$PACKAGE_NAME"
|
||||
CHECK_RESULT $? 0 0 "卸载FTP客户端失败"
|
||||
else
|
||||
LOG_INFO "保持FTP客户端安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "FTP下载文件功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,168 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Check if FTP package is installed
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色输出(用于日志函数)
|
||||
RED="\033[1;31m"
|
||||
GREEN="\033[1;32m"
|
||||
YELLOW="\033[1;33m"
|
||||
BLUE="\033[1;34m"
|
||||
NC="\033[0m"
|
||||
|
||||
# 日志函数(直接使用已定义的LOG_INFO和LOG_ERROR)
|
||||
LOG_INFO() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $package_name"
|
||||
dnf list available $package_name &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: $package_name"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $package_name 在yum源中存在"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_option() {
|
||||
local command=$1
|
||||
local option=$2
|
||||
LOG_INFO "检查命令 $command 是否支持参数 $option"
|
||||
$command --help 2>&1 | grep -q "\<$option\>"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $option"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $command 支持参数 $option"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
check_package_installed() {
|
||||
local package_name=$1
|
||||
LOG_INFO "检查软件包 $package_name 是否已安装"
|
||||
rpm -q $package_name &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始安装软件包: $package_name"
|
||||
dnf install -y $package_name
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local package_name=$1
|
||||
LOG_INFO "开始卸载软件包: $package_name"
|
||||
dnf remove -y $package_name
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $package_name 失败"
|
||||
LOG_INFO "软件包 $package_name 卸载成功"
|
||||
}
|
||||
|
||||
# 测试FTP功能
|
||||
test_ftp_function() {
|
||||
local package_name="vsftpd"
|
||||
local was_installed=0
|
||||
|
||||
LOG_INFO "=== 开始测试FTP功能 ==="
|
||||
|
||||
# 步骤1:检查软件包是否在yum源中
|
||||
check_package_in_repo $package_name
|
||||
|
||||
# 步骤2:检查是否已安装
|
||||
if check_package_installed $package_name; then
|
||||
LOG_INFO "软件包 $package_name 已经安装"
|
||||
was_installed=1
|
||||
else
|
||||
LOG_INFO "软件包 $package_name 未安装,将进行安装测试"
|
||||
was_installed=0
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装
|
||||
if [ $was_installed -eq 0 ]; then
|
||||
install_package $package_name
|
||||
fi
|
||||
|
||||
# 步骤4:检查FTP服务状态
|
||||
LOG_INFO "检查FTP服务状态"
|
||||
systemctl status vsftpd &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "FTP服务状态检查失败"
|
||||
LOG_INFO "FTP服务状态正常"
|
||||
|
||||
# 步骤5:测试FTP基本功能
|
||||
LOG_INFO "测试FTP基本功能"
|
||||
ftp_version=$(vsftpd -v 2>&1 | head -1)
|
||||
CHECK_RESULT $? 0 0 "获取FTP版本失败"
|
||||
LOG_INFO "FTP版本信息: $ftp_version"
|
||||
|
||||
# 步骤6:检查FTP配置文件
|
||||
LOG_INFO "检查FTP配置文件"
|
||||
if [ -f /etc/vsftpd/vsftpd.conf ]; then
|
||||
LOG_INFO "FTP配置文件存在: /etc/vsftpd/vsftpd.conf"
|
||||
# 检查配置文件基本语法
|
||||
vsftpd -olisten=NO /etc/vsftpd/vsftpd.conf &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "FTP配置文件语法检查失败"
|
||||
else
|
||||
LOG_ERROR "FTP配置文件不存在"
|
||||
CHECK_RESULT 1 0 0 "FTP配置文件不存在"
|
||||
fi
|
||||
|
||||
# 步骤7:如果之前未安装,则卸载软件包
|
||||
if [ $was_installed -eq 0 ]; then
|
||||
LOG_INFO "测试完成,清理测试环境"
|
||||
uninstall_package $package_name
|
||||
else
|
||||
LOG_INFO "测试完成,保持原有安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "=== FTP功能测试完成 ==="
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
LOG_INFO "开始执行FTP功能安装检查测试"
|
||||
|
||||
# 检查dnf命令是否可用
|
||||
LOG_INFO "检查dnf命令是否可用"
|
||||
command -v dnf &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "dnf命令不可用"
|
||||
|
||||
# 执行FTP功能测试
|
||||
test_ftp_function
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test listing directory contents via FTP
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试:通过FTP列出目录内容"
|
||||
|
||||
LOG_INFO "步骤1:检查是否已安装vsftpd软件包"
|
||||
if ! dnf list installed vsftpd &>/dev/null; then
|
||||
LOG_INFO "vsftpd未安装,将在测试过程中安装"
|
||||
INSTALLED_VSFTPD=false
|
||||
else
|
||||
LOG_INFO "vsftpd已安装"
|
||||
INSTALLED_VSFTPD=true
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否有vsftpd软件包"
|
||||
if ! dnf list available vsftpd &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到vsftpd软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED_VSFTPD" = "false" ]; then
|
||||
LOG_INFO "步骤3:安装vsftpd软件包"
|
||||
dnf install -y vsftpd
|
||||
CHECK_RESULT $? 0 0 "安装vsftpd失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:启动vsftpd服务"
|
||||
systemctl start vsftpd
|
||||
CHECK_RESULT $? 0 0 "启动vsftpd服务失败"
|
||||
|
||||
LOG_INFO "步骤5:检查vsftpd服务状态"
|
||||
systemctl is-active vsftpd
|
||||
CHECK_RESULT $? 0 0 "vsftpd服务未正常运行"
|
||||
|
||||
LOG_INFO "步骤6:创建测试用户和目录"
|
||||
useradd -m -s /bin/bash ftptestuser
|
||||
CHECK_RESULT $? 0 0 "创建测试用户失败"
|
||||
echo "ftppassword" | passwd --stdin ftptestuser
|
||||
CHECK_RESULT $? 0 0 "设置测试用户密码失败"
|
||||
|
||||
LOG_INFO "步骤7:创建测试文件"
|
||||
echo "test file content" > /home/ftptestuser/testfile.txt
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
LOG_INFO "步骤8:使用FTP命令列出目录内容"
|
||||
FTP_OUTPUT=$(echo -e "user ftptestuser ftppassword\nls\nbye" | ftp -n localhost 2>/dev/null)
|
||||
CHECK_RESULT $? 0 0 "FTP连接失败"
|
||||
|
||||
LOG_INFO "步骤9:验证FTP目录列表结果"
|
||||
echo "$FTP_OUTPUT" | grep -q "testfile.txt"
|
||||
CHECK_RESULT $? 0 0 "FTP目录列表未显示测试文件"
|
||||
|
||||
LOG_INFO "步骤10:清理测试用户和文件"
|
||||
userdel -r ftptestuser
|
||||
CHECK_RESULT $? 0 0 "删除测试用户失败"
|
||||
|
||||
if [ "$INSTALLED_VSFTPD" = "false" ]; then
|
||||
LOG_INFO "步骤11:卸载vsftpd软件包"
|
||||
systemctl stop vsftpd
|
||||
dnf remove -y vsftpd
|
||||
CHECK_RESULT $? 0 0 "卸载vsftpd失败"
|
||||
else
|
||||
LOG_INFO "步骤11:保持vsftpd安装状态,停止服务"
|
||||
systemctl stop vsftpd
|
||||
CHECK_RESULT $? 0 0 "停止vsftpd服务失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:通过FTP列出目录内容测试成功"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test FTP connection in passive mode
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试FTP被动模式连接功能"
|
||||
|
||||
LOG_INFO "步骤1: 检查FTP客户端软件包是否在yum源中"
|
||||
dnf list available ftp 2>/dev/null | grep -q "^ftp"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2: 检查当前是否已安装FTP客户端"
|
||||
rpm -q ftp >/dev/null 2>&1
|
||||
IS_INSTALLED=$?
|
||||
|
||||
if [ $IS_INSTALLED -ne 0 ]; then
|
||||
LOG_INFO "FTP客户端未安装,开始安装"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装FTP客户端失败"
|
||||
|
||||
# 设置安装标记,用于脚本结束时卸载
|
||||
NEED_UNINSTALL=1
|
||||
else
|
||||
LOG_INFO "FTP客户端已安装"
|
||||
NEED_UNINSTALL=0
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤3: 检查ftp命令是否支持被动模式参数"
|
||||
ftp -h 2>&1 | grep -q "\-p"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "ftp命令不支持被动模式参数"
|
||||
# 清理环境
|
||||
if [ $NEED_UNINSTALL -eq 1 ]; then
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4: 测试FTP被动模式连接"
|
||||
# 假设测试环境配置
|
||||
FTP_SERVER="test.ftp.server"
|
||||
FTP_USER="anonymous"
|
||||
FTP_PASS=""
|
||||
|
||||
LOG_INFO "尝试连接到FTP服务器: $FTP_SERVER"
|
||||
ftp -p -n $FTP_SERVER <<EOF
|
||||
user $FTP_USER $FTP_PASS
|
||||
quit
|
||||
EOF
|
||||
|
||||
FTP_EXIT_CODE=$?
|
||||
CHECK_RESULT $FTP_EXIT_CODE 0 0 "FTP被动模式连接失败"
|
||||
|
||||
LOG_INFO "步骤5: 清理测试环境"
|
||||
if [ $NEED_UNINSTALL -eq 1 ]; then
|
||||
LOG_INFO "卸载测试期间安装的FTP客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载FTP客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "FTP被动模式连接测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : Test uploading a file via FTP
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装ftp客户端
|
||||
LOG_INFO "检查ftp客户端是否已安装"
|
||||
if command -v ftp &> /dev/null; then
|
||||
LOG_INFO "ftp客户端已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,将在测试前安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp客户端软件包
|
||||
LOG_INFO "检查yum源中是否有ftp客户端软件包"
|
||||
if ! dnf list available ftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp客户端软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 检查ftp命令是否支持所需参数
|
||||
LOG_INFO "检查ftp命令是否支持所需参数"
|
||||
ftp -h 2>&1 | grep -q "-n"
|
||||
CHECK_RESULT $? 0 0 "ftp命令不支持-n参数" 255
|
||||
|
||||
# 准备测试文件
|
||||
LOG_INFO "准备测试文件"
|
||||
TEST_FILE="test_upload_$(date +%s).txt"
|
||||
echo "This is a test file for FTP upload." > "$TEST_FILE"
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 设置FTP服务器信息(示例服务器,实际使用时需要替换)
|
||||
FTP_SERVER="ftp.example.com"
|
||||
FTP_USER="anonymous"
|
||||
FTP_PASS="password"
|
||||
REMOTE_DIR="/upload"
|
||||
|
||||
# 测试上传文件到FTP服务器
|
||||
LOG_INFO "测试上传文件到FTP服务器"
|
||||
ftp -n $FTP_SERVER << EOF
|
||||
user $FTP_USER $FTP_PASS
|
||||
binary
|
||||
cd $REMOTE_DIR
|
||||
put $TEST_FILE
|
||||
bye
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "FTP上传文件失败"
|
||||
|
||||
# 清理本地测试文件
|
||||
LOG_INFO "清理本地测试文件"
|
||||
rm -f "$TEST_FILE"
|
||||
CHECK_RESULT $? 0 0 "删除测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "FTP文件上传功能测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-A参数,用于启用主动模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-A参数,用于启用主动模式"
|
||||
|
||||
# 检查是否已安装ftp客户端软件包
|
||||
LOG_INFO "检查是否已安装ftp客户端软件包"
|
||||
if rpm -q ftp &>/dev/null; then
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
LOG_INFO "ftp客户端安装成功"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否支持-A参数
|
||||
LOG_INFO "检查pftp命令是否支持-A参数"
|
||||
if ! pftp -h 2>&1 | grep -q "\-A"; then
|
||||
LOG_ERROR "pftp命令不支持-A参数"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
LOG_INFO "ftp客户端卸载成功"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-A参数
|
||||
LOG_INFO "测试pftp命令的-A参数"
|
||||
pftp -A localhost <<EOF
|
||||
quit
|
||||
EOF
|
||||
|
||||
CHECK_RESULT $? 0 0 "pftp命令-A参数测试失败"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
LOG_INFO "ftp客户端卸载成功"
|
||||
fi
|
||||
|
||||
LOG_INFO "pftp命令-A参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,125 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-B参数,用于设置缓冲区大小
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否存在
|
||||
check_package_exists() {
|
||||
local package_name=$1
|
||||
dnf list available "$package_name" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $package_name 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查命令参数是否存在
|
||||
check_command_param() {
|
||||
local command=$1
|
||||
local param=$2
|
||||
$command --help 2>&1 | grep -q "$param"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $command 不支持参数 $param"
|
||||
exit 255
|
||||
fi
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_pftp_buffer_param() {
|
||||
LOG_INFO "开始测试pftp命令的-B参数,用于设置缓冲区大小"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查ftp软件包是否已安装"
|
||||
if rpm -q ftp &>/dev/null; then
|
||||
LOG_INFO "ftp软件包已安装,测试后保持安装状态"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,开始安装"
|
||||
already_installed=false
|
||||
|
||||
# 检查软件包是否存在
|
||||
check_package_exists "ftp"
|
||||
|
||||
# 安装软件包
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否存在
|
||||
LOG_INFO "检查pftp命令是否存在"
|
||||
which pftp &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不存在"
|
||||
|
||||
# 检查-B参数是否支持
|
||||
LOG_INFO "检查pftp命令是否支持-B参数"
|
||||
check_command_param "pftp" "-B"
|
||||
|
||||
# 测试-B参数的基本功能
|
||||
LOG_INFO "测试pftp命令-B参数设置缓冲区大小"
|
||||
pftp --help 2>&1 | grep -A2 "-B" | grep -q "buffer"
|
||||
CHECK_RESULT $? 0 0 "pftp命令-B参数不是用于设置缓冲区大小"
|
||||
|
||||
# 测试具体的缓冲区大小设置
|
||||
LOG_INFO "测试设置缓冲区大小为4096"
|
||||
pftp -B 4096 --help 2>&1 >/dev/null
|
||||
CHECK_RESULT $? 0 0 "设置缓冲区大小失败"
|
||||
|
||||
LOG_INFO "测试设置缓冲区大小为8192"
|
||||
pftp -B 8192 --help 2>&1 >/dev/null
|
||||
CHECK_RESULT $? 0 0 "设置缓冲区大小失败"
|
||||
|
||||
# 测试无效缓冲区大小
|
||||
LOG_INFO "测试无效的缓冲区大小设置"
|
||||
pftp -B 0 --help 2>&1 >/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "缓冲区大小0被接受,这可能是有效的"
|
||||
fi
|
||||
|
||||
LOG_INFO "pftp命令-B参数测试完成"
|
||||
|
||||
# 环境清理
|
||||
LOG_INFO "开始环境清理"
|
||||
if [ "$already_installed" = false ]; then
|
||||
LOG_INFO "卸载测试安装的ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
LOG_INFO "ftp软件包已卸载"
|
||||
else
|
||||
LOG_INFO "保持原有安装状态,不卸载ftp软件包"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_pftp_buffer_param
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-C参数,用于启用压缩模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
if ! dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "未安装ftp软件包,开始安装"
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中无ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
# 安装ftp软件包
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "ftp软件包已安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-C参数,用于启用压缩模式
|
||||
LOG_INFO "测试pftp命令的-C参数,用于启用压缩模式"
|
||||
# 检查pftp命令是否存在
|
||||
if ! command -v pftp &>/dev/null; then
|
||||
LOG_ERROR "pftp命令不存在"
|
||||
if [ $INSTALLED_FLAG -eq 1 ]; then
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查pftp是否支持-C参数
|
||||
LOG_INFO "检查pftp是否支持-C参数"
|
||||
pftp --help 2>&1 | grep -q "\-C"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-C参数"
|
||||
if [ $INSTALLED_FLAG -eq 1 ]; then
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-C参数功能
|
||||
LOG_INFO "测试pftp命令的-C参数功能"
|
||||
# 使用-C参数连接到本地FTP服务器(假设本地有FTP服务)
|
||||
# 这里使用一个不存在的FTP服务器地址,仅测试参数解析
|
||||
pftp -C -n 127.0.0.1 2>&1 | head -5
|
||||
CHECK_RESULT $? 0 0 "pftp命令-C参数执行失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ $INSTALLED_FLAG -eq 1 ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-D参数,用于启用调试模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-D参数,用于启用调试模式"
|
||||
|
||||
LOG_INFO "检查是否已安装ftp客户端软件包"
|
||||
if ! dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "ftp客户端未安装,开始安装"
|
||||
LOG_INFO "检查yum源中是否存在ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中不存在ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
LOG_INFO "检查pftp命令是否支持-D参数"
|
||||
pftp -h 2>&1 | grep -q -- "-D"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-D参数"
|
||||
if [ $INSTALLED_FLAG -eq 1 ]; then
|
||||
LOG_INFO "卸载安装的ftp客户端"
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "测试pftp命令的-D参数功能"
|
||||
pftp -D /tmp/pftp_debug.log -n <<EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令-D参数执行失败"
|
||||
|
||||
LOG_INFO "检查调试日志文件是否生成"
|
||||
if [ -f /tmp/pftp_debug.log ]; then
|
||||
LOG_INFO "调试日志文件已生成"
|
||||
CHECK_RESULT 0 0 0 "调试日志文件检查"
|
||||
else
|
||||
LOG_ERROR "调试日志文件未生成"
|
||||
CHECK_RESULT 1 0 1 "调试日志文件检查"
|
||||
fi
|
||||
|
||||
LOG_INFO "清理临时文件"
|
||||
rm -f /tmp/pftp_debug.log
|
||||
|
||||
LOG_INFO "恢复环境状态"
|
||||
if [ $INSTALLED_FLAG -eq 1 ]; then
|
||||
LOG_INFO "卸载安装的ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,121 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-E参数,用于启用EPSV模式
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*" >&2
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local pkg=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $pkg"
|
||||
if ! dnf list available "$pkg" &>/dev/null; then
|
||||
LOG_ERROR "软件包 $pkg 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "软件包 $pkg 在yum源中存在"
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "安装软件包: $pkg"
|
||||
dnf install -y "$pkg"
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $pkg 失败"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "卸载软件包: $pkg"
|
||||
dnf remove -y "$pkg"
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $pkg 失败"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param() {
|
||||
local cmd=$1
|
||||
local param=$2
|
||||
LOG_INFO "检查命令 $cmd 是否支持参数 $param"
|
||||
if ! $cmd --help 2>&1 | grep -q "\b$param\b"; then
|
||||
LOG_ERROR "命令 $cmd 不支持参数 $param"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $cmd 支持参数 $param"
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_ftp_pftp_upper_e() {
|
||||
LOG_INFO "开始测试pftp命令的-E参数,用于启用EPSV模式"
|
||||
|
||||
# 定义软件包名称
|
||||
local pkg_name="ftp"
|
||||
|
||||
# 检查软件包是否已在yum源中
|
||||
check_package_in_repo "$pkg_name"
|
||||
|
||||
# 检查是否已安装
|
||||
local installed=false
|
||||
if rpm -q "$pkg_name" &>/dev/null; then
|
||||
LOG_INFO "软件包 $pkg_name 已安装"
|
||||
installed=true
|
||||
else
|
||||
LOG_INFO "软件包 $pkg_name 未安装,开始安装"
|
||||
install_package "$pkg_name"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否存在
|
||||
LOG_INFO "检查pftp命令是否存在"
|
||||
command -v pftp >/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不存在"
|
||||
|
||||
# 检查pftp命令是否支持-E参数
|
||||
check_command_param "pftp" "-E"
|
||||
|
||||
# 测试pftp命令的-E参数
|
||||
LOG_INFO "测试pftp命令的-E参数"
|
||||
pftp -E -h 2>&1 | grep -q "EPSV"
|
||||
CHECK_RESULT $? 0 0 "pftp命令-E参数启用EPSV模式失败"
|
||||
|
||||
LOG_INFO "pftp命令-E参数启用EPSV模式测试成功"
|
||||
|
||||
# 环境恢复
|
||||
LOG_INFO "开始环境恢复"
|
||||
if [ "$installed" = "false" ]; then
|
||||
uninstall_package "$pkg_name"
|
||||
else
|
||||
LOG_INFO "保持软件包 $pkg_name 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_ftp_pftp_upper_e
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-F参数,用于设置FTP命令
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-F参数,用于设置FTP命令"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
rpm -q ftp &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试前安装并在测试后卸载"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
dnf list available ftp &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "yum源中未找到ftp软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查pftp命令的-F参数是否存在
|
||||
LOG_INFO "检查pftp命令的-F参数是否存在"
|
||||
pftp -F 2>&1 | grep -q "usage:"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-F参数"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-F参数
|
||||
LOG_INFO "测试pftp命令的-F参数"
|
||||
pftp -F /tmp/test_ftp_config 2>&1 | grep -q "usage:"
|
||||
CHECK_RESULT $? 0 0 "pftp命令的-F参数测试失败"
|
||||
|
||||
# 清理环境
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,95 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-G参数,用于禁用通配符扩展
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查ftp软件包是否已安装"
|
||||
rpm -q ftp > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp软件包已安装,脚本结束后将保持安装状态"
|
||||
ALREADY_INSTALLED=1
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试过程中安装"
|
||||
ALREADY_INSTALLED=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
dnf list available ftp > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp软件包
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否存在
|
||||
LOG_INFO "检查pftp命令是否存在"
|
||||
which pftp > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不存在"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否支持-G参数
|
||||
LOG_INFO "检查pftp命令是否支持-G参数"
|
||||
pftp -h 2>&1 | grep -q "\-G"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-G参数"
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-G参数功能
|
||||
LOG_INFO "测试pftp命令的-G参数,用于禁用通配符扩展"
|
||||
# 这里使用一个简单的测试:尝试连接到一个不存在的FTP服务器,并检查-G参数是否被正确解析
|
||||
pftp -G -n 127.0.0.1 21 << EOF
|
||||
quit
|
||||
EOF
|
||||
# 由于我们只是测试参数是否被接受,所以不检查连接是否成功
|
||||
# 如果-G参数不被支持,pftp会报错,我们已经在前面的检查中处理了这种情况
|
||||
LOG_INFO "pftp命令的-G参数测试完成"
|
||||
|
||||
# 清理环境
|
||||
if [ $ALREADY_INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "清理环境:卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-H参数,用于指定主机
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "测试开始:测试pftp命令的-H参数,用于指定主机"
|
||||
|
||||
# 检查是否已安装ftp客户端软件包
|
||||
LOG_INFO "步骤1:检查ftp客户端是否已安装"
|
||||
if dnf list installed ftp &> /dev/null; then
|
||||
LOG_INFO "ftp客户端已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "步骤2:检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-H参数
|
||||
LOG_INFO "步骤4:测试pftp命令的-H参数"
|
||||
pftp -H localhost <<EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令的-H参数测试失败"
|
||||
|
||||
# 测试pftp命令不支持的其他参数(例如不存在的-Z参数)
|
||||
LOG_INFO "步骤5:测试pftp命令不支持的其他参数"
|
||||
pftp -Z localhost 2>&1 | grep -q "invalid option"
|
||||
CHECK_RESULT $? 0 0 "pftp命令错误地支持了不存在的参数"
|
||||
|
||||
# 清理环境:如果之前未安装,则卸载ftp客户端
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤6:卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成:pftp命令的-H参数测试通过"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,94 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-I参数,用于指定输入文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
rpm -q ftp > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp软件包已安装,测试结束后将保持安装状态"
|
||||
INSTALLED_FLAG=1
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试前安装"
|
||||
INSTALLED_FLAG=0
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
dnf list available ftp > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-I参数
|
||||
LOG_INFO "测试pftp命令的-I参数,用于指定输入文件"
|
||||
|
||||
# 创建测试输入文件
|
||||
LOG_INFO "创建测试输入文件"
|
||||
echo "test data for pftp -I" > /tmp/test_input.txt
|
||||
CHECK_RESULT $? 0 0 "创建测试输入文件失败"
|
||||
|
||||
# 检查pftp命令是否支持-I参数
|
||||
LOG_INFO "检查pftp命令是否支持-I参数"
|
||||
pftp --help 2>&1 | grep -q "\-I"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-I参数"
|
||||
# 清理测试文件
|
||||
rm -f /tmp/test_input.txt
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 尝试使用pftp的-I参数(这里只是测试参数语法,不实际连接FTP服务器)
|
||||
LOG_INFO "测试pftp -I参数语法"
|
||||
pftp -I /tmp/test_input.txt 2>&1 | grep -q "usage:\|Usage:"
|
||||
CHECK_RESULT $? 0 0 "pftp -I参数测试失败"
|
||||
|
||||
# 清理测试文件
|
||||
LOG_INFO "清理测试文件"
|
||||
rm -f /tmp/test_input.txt
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 如果测试前未安装,则卸载软件包
|
||||
if [ $INSTALLED_FLAG -eq 0 ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "pftp -I参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-J参数,用于指定代理
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-J参数,用于指定代理"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
if rpm -q ftp > /dev/null 2>&1; then
|
||||
LOG_INFO "ftp软件包已安装,标记为已安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,标记为未安装状态"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "开始安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-J参数
|
||||
LOG_INFO "测试pftp命令的-J参数"
|
||||
pftp -J proxy.example.com
|
||||
CHECK_RESULT $? 0 0 "pftp命令的-J参数不支持或执行失败"
|
||||
|
||||
# 如果之前未安装,则卸载ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-K参数,用于设置keepalive间隔
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-K参数功能"
|
||||
|
||||
LOG_INFO "1. 检查系统中是否已安装ftp软件包"
|
||||
if rpm -q ftp > /dev/null 2>&1; then
|
||||
LOG_INFO "ftp软件包已安装,测试完成后将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试过程中安装"
|
||||
INSTALLED="false"
|
||||
fi
|
||||
|
||||
LOG_INFO "2. 检查yum源中是否存在ftp软件包"
|
||||
if ! dnf list available ftp > /dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "3. 安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "4. 检查pftp命令是否支持-K参数"
|
||||
pftp -h 2>&1 | grep -q "\-K"
|
||||
CHECK_RESULT $? 0 0 "pftp命令不支持-K参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-K参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "5. 测试pftp命令-K参数设置keepalive间隔为30秒"
|
||||
pftp -K 30 -h
|
||||
CHECK_RESULT $? 0 0 "使用-K参数执行pftp命令失败"
|
||||
|
||||
LOG_INFO "6. 测试pftp命令-K参数设置keepalive间隔为0秒"
|
||||
pftp -K 0 -h
|
||||
CHECK_RESULT $? 0 0 "使用-K 0参数执行pftp命令失败"
|
||||
|
||||
LOG_INFO "7. 测试pftp命令-K参数设置非法值(非数字)"
|
||||
pftp -K invalid -h 2>&1 | grep -q "invalid"
|
||||
CHECK_RESULT $? 0 0 "pftp命令未正确拒绝非法-K参数值"
|
||||
|
||||
LOG_INFO "8. 清理测试环境"
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载测试安装的ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
else
|
||||
LOG_INFO "保持原有ftp软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,116 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-L参数,用于限制数据速率
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称和命令
|
||||
PACKAGE_NAME="lftp"
|
||||
COMMAND="pftp"
|
||||
PARAM="-L"
|
||||
TEST_FILE="test_ftp_file.txt"
|
||||
TEST_DATA="This is test data for FTP transfer."
|
||||
REMOTE_FILE="remote_test_file.txt"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 ${PACKAGE_NAME}"
|
||||
dnf list available ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 在yum源中不存在,退出测试"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查是否已安装软件包
|
||||
LOG_INFO "步骤2: 检查是否已安装软件包 ${PACKAGE_NAME}"
|
||||
if rpm -q ${PACKAGE_NAME} > /dev/null 2>&1; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装,测试结束后将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 步骤3: 检查命令参数是否存在
|
||||
LOG_INFO "步骤3: 检查命令 ${COMMAND} 是否支持参数 ${PARAM}"
|
||||
${COMMAND} --help 2>&1 | grep -q "${PARAM}"
|
||||
CHECK_RESULT $? 0 0 "命令 ${COMMAND} 不支持参数 ${PARAM},退出测试"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 ${COMMAND} 不支持参数 ${PARAM}"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤4: 安装软件包(如果未安装)
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤4: 安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤5: 创建测试文件
|
||||
LOG_INFO "步骤5: 创建测试文件"
|
||||
echo "${TEST_DATA}" > ${TEST_FILE}
|
||||
CHECK_RESULT $? 0 0 "创建测试文件失败"
|
||||
|
||||
# 步骤6: 启动FTP服务器(模拟环境)
|
||||
LOG_INFO "步骤6: 启动FTP服务器(模拟环境)"
|
||||
python3 -m pyftpdlib -p 2121 -d . --write > /dev/null 2>&1 &
|
||||
FTP_PID=$!
|
||||
sleep 2
|
||||
CHECK_RESULT $? 0 0 "启动FTP服务器失败"
|
||||
|
||||
# 步骤7: 测试pftp命令的-L参数
|
||||
LOG_INFO "步骤7: 测试pftp命令的-L参数,限制数据速率"
|
||||
${COMMAND} -n localhost 2121 <<EOF > /dev/null 2>&1
|
||||
user anonymous anonymous
|
||||
put ${TEST_FILE} ${REMOTE_FILE}
|
||||
bye
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令执行失败"
|
||||
|
||||
# 步骤8: 验证文件传输
|
||||
LOG_INFO "步骤8: 验证文件传输是否成功"
|
||||
if [ -f "${REMOTE_FILE}" ]; then
|
||||
LOG_INFO "文件传输成功"
|
||||
else
|
||||
LOG_ERROR "文件传输失败"
|
||||
CHECK_RESULT 1 0 0 "文件传输失败"
|
||||
fi
|
||||
|
||||
# 步骤9: 清理测试文件
|
||||
LOG_INFO "步骤9: 清理测试文件"
|
||||
rm -f ${TEST_FILE} ${REMOTE_FILE}
|
||||
CHECK_RESULT $? 0 0 "清理测试文件失败"
|
||||
|
||||
# 步骤10: 停止FTP服务器
|
||||
LOG_INFO "步骤10: 停止FTP服务器"
|
||||
kill ${FTP_PID} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "停止FTP服务器失败"
|
||||
|
||||
# 步骤11: 卸载软件包(如果测试前未安装)
|
||||
if [ "${INSTALLED}" = "false" ]; then
|
||||
LOG_INFO "步骤11: 卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME} > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-N参数,用于指定网络地址
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 判断是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
rpm -q ftp > /dev/null 2>&1
|
||||
installed=$?
|
||||
|
||||
# 定义软件包名称
|
||||
pkg_name="ftp"
|
||||
|
||||
# 检查yum源中是否有该软件包
|
||||
LOG_INFO "检查yum源中是否有$pkg_name软件包"
|
||||
dnf list available $pkg_name > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有$pkg_name软件包"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中没有$pkg_name软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "安装$pkg_name软件包"
|
||||
dnf install -y $pkg_name
|
||||
CHECK_RESULT $? 0 0 "安装$pkg_name软件包失败"
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-N参数
|
||||
LOG_INFO "测试pftp命令的-N参数"
|
||||
pftp --help 2>&1 | grep -q "\-N"
|
||||
CHECK_RESULT $? 0 0 "pftp命令不支持-N参数"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-N参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 尝试使用-N参数指定网络地址
|
||||
LOG_INFO "使用pftp -N参数指定网络地址"
|
||||
pftp -N 127.0.0.1 << EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp -N参数测试失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理测试环境"
|
||||
if [ $installed -ne 0 ]; then
|
||||
LOG_INFO "卸载$pkg_name软件包"
|
||||
dnf remove -y $pkg_name
|
||||
CHECK_RESULT $? 0 0 "卸载$pkg_name软件包失败"
|
||||
else
|
||||
LOG_INFO "保持$pkg_name软件包安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-O参数,用于指定输出文件
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-O参数,用于指定输出文件"
|
||||
LOG_INFO "步骤1: 检查是否已安装ftp客户端软件包"
|
||||
rpm -q ftp > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "ftp客户端已安装,标记为已安装状态"
|
||||
INSTALLED=1
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装,标记为未安装状态"
|
||||
INSTALLED=0
|
||||
fi
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤2: 检查yum源中是否有ftp软件包"
|
||||
dnf list available ftp > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 255 "yum源中没有ftp软件包"
|
||||
LOG_INFO "步骤3: 安装ftp客户端"
|
||||
dnf install -y ftp > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
LOG_INFO "步骤4: 检查pftp命令是否支持-O参数"
|
||||
pftp -h 2>&1 | grep -q "\-O"
|
||||
CHECK_RESULT $? 0 255 "pftp命令不支持-O参数"
|
||||
LOG_INFO "步骤5: 创建测试用的输出文件"
|
||||
TEST_OUTPUT_FILE="/tmp/test_pftp_output_$$.txt"
|
||||
touch $TEST_OUTPUT_FILE
|
||||
CHECK_RESULT $? 0 0 "创建测试输出文件失败"
|
||||
LOG_INFO "步骤6: 使用pftp命令的-O参数指定输出文件"
|
||||
LOG_INFO "注意:此处仅测试参数有效性,不实际连接FTP服务器"
|
||||
pftp -O $TEST_OUTPUT_FILE localhost << EOF > /dev/null 2>&1
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令执行失败"
|
||||
LOG_INFO "步骤7: 检查输出文件是否被创建或修改"
|
||||
if [ -s $TEST_OUTPUT_FILE ]; then
|
||||
LOG_INFO "输出文件非空,参数可能生效"
|
||||
else
|
||||
LOG_INFO "输出文件为空,但命令执行成功"
|
||||
fi
|
||||
LOG_INFO "步骤8: 清理临时文件"
|
||||
rm -f $TEST_OUTPUT_FILE
|
||||
CHECK_RESULT $? 0 0 "删除临时文件失败"
|
||||
if [ $INSTALLED -eq 0 ]; then
|
||||
LOG_INFO "步骤9: 卸载ftp客户端"
|
||||
dnf remove -y ftp > /dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
else
|
||||
LOG_INFO "步骤9: 保持ftp客户端安装状态"
|
||||
fi
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,105 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-P参数,用于指定端口号
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户运行
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
LOG_ERROR "此脚本需要root权限运行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="lftp"
|
||||
|
||||
# 步骤1:检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查软件包是否已安装
|
||||
LOG_INFO "步骤2:检查软件包是否已安装"
|
||||
rpm -q ${PACKAGE_NAME} &>/dev/null
|
||||
PACKAGE_INSTALLED=$?
|
||||
|
||||
# 记录初始安装状态
|
||||
if [ ${PACKAGE_INSTALLED} -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查pftp命令是否存在
|
||||
LOG_INFO "步骤4:检查pftp命令是否存在"
|
||||
which pftp &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令未找到"
|
||||
|
||||
# 步骤5:测试pftp命令的-P参数
|
||||
LOG_INFO "步骤5:测试pftp命令的-P参数"
|
||||
pftp --help 2>&1 | grep -q "\-P"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-P参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:使用-P参数指定端口号
|
||||
LOG_INFO "步骤6:使用-P参数指定端口号连接FTP服务器"
|
||||
# 这里使用一个不存在的FTP服务器进行测试,主要测试参数解析
|
||||
pftp -P 2121 ftp.example.com <<EOF
|
||||
quit
|
||||
EOF
|
||||
|
||||
# 检查命令执行结果
|
||||
# 由于ftp.example.com不存在,命令会失败,但这是预期的
|
||||
# 我们主要检查命令是否能正常解析-P参数
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_ERROR "pftp命令执行失败,参数可能无效"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "pftp命令的-P参数测试完成"
|
||||
|
||||
# 步骤7:环境清理
|
||||
LOG_INFO "步骤7:环境清理"
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,75 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-R参数,用于指定重试次数
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-R参数,用于指定重试次数"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
if dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "ftp软件包已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否支持-R参数
|
||||
LOG_INFO "检查pftp命令是否支持-R参数"
|
||||
pftp -R 2 2>&1 | grep -q "usage:"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "pftp命令支持-R参数"
|
||||
else
|
||||
LOG_ERROR "pftp命令不支持-R参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-R参数
|
||||
LOG_INFO "测试pftp命令的-R参数"
|
||||
# 模拟一个不存在的服务器,测试重试功能
|
||||
pftp -R 2 127.0.0.1 1 2>&1 | grep -q "retrying"
|
||||
CHECK_RESULT $? 0 0 "pftp命令-R参数未按预期重试"
|
||||
|
||||
# 清理环境:如果测试前未安装则卸载软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-S参数,用于指定源地址
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 检查是否以root用户执行
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
LOG_ERROR "此脚本需要root权限执行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="lftp"
|
||||
|
||||
# 步骤1:检查软件包是否已在yum源中
|
||||
LOG_INFO "步骤1:检查软件包是否在yum源中"
|
||||
dnf list available ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PACKAGE_NAME} 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2:检查环境是否已安装软件包
|
||||
LOG_INFO "步骤2:检查环境是否已安装软件包"
|
||||
rpm -q ${PACKAGE_NAME} &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
INSTALLED="yes"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 已安装"
|
||||
else
|
||||
INSTALLED="no"
|
||||
LOG_INFO "软件包 ${PACKAGE_NAME} 未安装"
|
||||
fi
|
||||
|
||||
# 步骤3:如果未安装,则安装软件包
|
||||
if [ "${INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "步骤3:安装软件包 ${PACKAGE_NAME}"
|
||||
dnf install -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PACKAGE_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4:检查pftp命令是否存在
|
||||
LOG_INFO "步骤4:检查pftp命令是否存在"
|
||||
which pftp &> /dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不存在"
|
||||
|
||||
# 步骤5:检查pftp命令是否支持-S参数
|
||||
LOG_INFO "步骤5:检查pftp命令是否支持-S参数"
|
||||
pftp --help 2>&1 | grep -q "\-S"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-S参数"
|
||||
# 如果之前未安装,需要卸载软件包
|
||||
if [ "${INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "清理环境:卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6:测试pftp命令的-S参数
|
||||
LOG_INFO "步骤6:测试pftp命令的-S参数"
|
||||
# 这里使用一个无效的IP地址进行测试,预期会连接失败
|
||||
# 但我们主要测试-S参数是否被正确解析
|
||||
pftp -S 127.0.0.1 ftp://localhost &> /dev/null
|
||||
# 连接失败是预期的,因为localhost可能没有FTP服务器
|
||||
# 但我们检查的是命令是否执行,而不是连接是否成功
|
||||
CHECK_RESULT $? 1 0 "pftp命令-S参数测试失败"
|
||||
|
||||
# 步骤7:清理环境
|
||||
LOG_INFO "步骤7:清理环境"
|
||||
if [ "${INSTALLED}" = "no" ]; then
|
||||
LOG_INFO "卸载软件包 ${PACKAGE_NAME}"
|
||||
dnf remove -y ${PACKAGE_NAME}
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PACKAGE_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 ${PACKAGE_NAME} 安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,100 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-T参数,用于设置超时时间
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PKG_NAME="lftp"
|
||||
|
||||
# 步骤1: 检查yum源中是否存在指定软件包
|
||||
LOG_INFO "步骤1: 检查yum源中是否存在软件包 ${PKG_NAME}"
|
||||
dnf list available ${PKG_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 ${PKG_NAME} 在yum源中不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤2: 检查系统是否已安装软件包
|
||||
LOG_INFO "步骤2: 检查系统是否已安装软件包 ${PKG_NAME}"
|
||||
rpm -q ${PKG_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "软件包 ${PKG_NAME} 已安装,脚本结束后将保持安装状态"
|
||||
INSTALLED_BEFORE=true
|
||||
else
|
||||
LOG_INFO "软件包 ${PKG_NAME} 未安装,将在测试过程中安装"
|
||||
INSTALLED_BEFORE=false
|
||||
fi
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "步骤3: 安装软件包 ${PKG_NAME}"
|
||||
dnf install -y ${PKG_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装软件包 ${PKG_NAME} 失败"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查pftp命令是否存在
|
||||
LOG_INFO "步骤4: 检查pftp命令是否存在"
|
||||
which pftp &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不存在"
|
||||
|
||||
# 步骤5: 检查pftp命令是否支持-T参数
|
||||
LOG_INFO "步骤5: 检查pftp命令是否支持-T参数"
|
||||
pftp -h 2>&1 | grep -q "\-T"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-T参数"
|
||||
# 清理环境
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "清理环境: 卸载软件包 ${PKG_NAME}"
|
||||
dnf remove -y ${PKG_NAME} &>/dev/null
|
||||
fi
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 步骤6: 测试pftp命令的-T参数设置超时时间
|
||||
LOG_INFO "步骤6: 测试pftp命令的-T参数设置超时时间"
|
||||
# 使用-T参数设置超时时间为10秒,尝试连接到一个不存在的服务器
|
||||
# 预期行为:命令应在超时后返回非零退出码
|
||||
pftp -T 10 invalid.server.example.com 2>&1
|
||||
# 由于连接失败是预期行为,我们检查命令是否执行(即是否尝试了连接)
|
||||
# 这里我们检查命令是否返回了超时相关的错误或非零退出码
|
||||
# 注意:具体错误可能因系统而异,这里我们主要验证-T参数被接受
|
||||
if [ $? -eq 0 ]; then
|
||||
# 如果意外连接成功(极不可能),则记录错误
|
||||
LOG_ERROR "pftp命令意外成功连接,可能-T参数未生效"
|
||||
CHECK_RESULT 1 0 0 "pftp命令-T参数测试失败"
|
||||
else
|
||||
LOG_INFO "pftp命令-T参数测试通过,命令按预期失败(超时或连接失败)"
|
||||
CHECK_RESULT $? 1 0 "pftp命令-T参数测试失败"
|
||||
fi
|
||||
|
||||
# 步骤7: 清理环境
|
||||
LOG_INFO "步骤7: 清理环境"
|
||||
if [ "${INSTALLED_BEFORE}" = "false" ]; then
|
||||
LOG_INFO "卸载软件包 ${PKG_NAME}"
|
||||
dnf remove -y ${PKG_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 ${PKG_NAME} 失败"
|
||||
else
|
||||
LOG_INFO "软件包 ${PKG_NAME} 在脚本执行前已安装,保持安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试脚本执行完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,72 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-U参数,用于设置用户
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
set -e
|
||||
|
||||
LOG_INFO "开始测试pftp命令的-U参数"
|
||||
|
||||
LOG_INFO "检查是否已安装ftp客户端软件包"
|
||||
if rpm -q ftp >/dev/null 2>&1; then
|
||||
LOG_INFO "ftp客户端已安装"
|
||||
already_installed=true
|
||||
else
|
||||
LOG_INFO "ftp客户端未安装"
|
||||
already_installed=false
|
||||
fi
|
||||
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp >/dev/null 2>&1; then
|
||||
LOG_ERROR "yum源中没有ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "安装ftp客户端"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp客户端失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试pftp命令-U参数的基本功能"
|
||||
LOG_INFO "尝试使用-U参数连接FTP服务器"
|
||||
pftp -U testuser localhost << EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令-U参数测试失败"
|
||||
|
||||
LOG_INFO "测试不支持的参数"
|
||||
LOG_INFO "尝试使用不存在的参数"
|
||||
pftp --invalid-param 2>&1 | grep -q "unrecognized option"
|
||||
CHECK_RESULT $? 0 0 "pftp命令应检测到无效参数"
|
||||
|
||||
LOG_INFO "清理环境"
|
||||
if [ "$already_installed" = "false" ]; then
|
||||
LOG_INFO "卸载ftp客户端"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp客户端失败"
|
||||
else
|
||||
LOG_INFO "保持ftp客户端安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "pftp命令-U参数测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,74 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-V参数,用于显示版本信息
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义软件包名称
|
||||
PKG_NAME="lftp"
|
||||
|
||||
# 步骤1:检查yum源中是否存在指定软件包
|
||||
LOG_INFO "1. 检查yum源中是否存在${PKG_NAME}软件包"
|
||||
dnf list available ${PKG_NAME} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在${PKG_NAME}软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "2. 检查系统是否已安装${PKG_NAME}软件包"
|
||||
rpm -q ${PKG_NAME} &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_INFO "${PKG_NAME}已安装,标记为无需清理"
|
||||
NEED_CLEANUP=0
|
||||
else
|
||||
LOG_INFO "${PKG_NAME}未安装,标记为需要清理"
|
||||
NEED_CLEANUP=1
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "3. 安装${PKG_NAME}软件包"
|
||||
dnf install -y ${PKG_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装${PKG_NAME}失败"
|
||||
fi
|
||||
|
||||
# 步骤4:测试pftp命令的-V参数
|
||||
LOG_INFO "4. 测试pftp命令的-V参数显示版本信息"
|
||||
pftp -V 2>&1 | grep -i "version" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不支持-V参数"
|
||||
|
||||
# 步骤5:验证版本信息输出格式
|
||||
LOG_INFO "5. 验证版本信息输出格式"
|
||||
pftp -V 2>&1 | head -1 | grep -E "[0-9]+\.[0-9]+" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "版本信息格式不符合预期"
|
||||
|
||||
# 步骤6:清理环境
|
||||
if [ ${NEED_CLEANUP} -eq 1 ]; then
|
||||
LOG_INFO "6. 清理测试环境,卸载${PKG_NAME}软件包"
|
||||
dnf remove -y ${PKG_NAME} &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载${PKG_NAME}失败"
|
||||
else
|
||||
LOG_INFO "6. 保持${PKG_NAME}安装状态,无需清理"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-W参数,用于设置密码
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 测试pftp命令的-W参数,用于设置密码
|
||||
LOG_INFO "开始测试pftp命令的-W参数功能"
|
||||
# 检查pftp命令是否已安装
|
||||
if command -v pftp >/dev/null 2>&1; then
|
||||
LOG_INFO "pftp命令已安装,将保持安装状态"
|
||||
INSTALLED="true"
|
||||
else
|
||||
LOG_INFO "pftp命令未安装,将进行安装"
|
||||
INSTALLED="false"
|
||||
# 检查yum源中是否有ftp软件包
|
||||
dnf list available ftp >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "yum源中没有ftp软件包"
|
||||
# 安装ftp软件包
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
# 检查pftp命令是否支持-W参数
|
||||
LOG_INFO "检查pftp命令是否支持-W参数"
|
||||
pftp --help 2>&1 | grep -q "\-W"
|
||||
CHECK_RESULT $? 0 0 "pftp命令不支持-W参数"
|
||||
# 测试pftp命令的-W参数
|
||||
LOG_INFO "测试pftp命令的-W参数设置密码功能"
|
||||
# 模拟使用-W参数连接FTP服务器(这里使用无效的服务器地址,仅测试参数解析)
|
||||
pftp -W testpassword ftp://nonexist.server >/dev/null 2>&1
|
||||
# 检查命令是否能够解析-W参数(预期连接失败,但参数解析成功)
|
||||
if [ $? -eq 255 ]; then
|
||||
LOG_INFO "pftp命令成功解析-W参数"
|
||||
else
|
||||
LOG_ERROR "pftp命令未能正确解析-W参数"
|
||||
exit 255
|
||||
fi
|
||||
# 环境恢复
|
||||
if [ "$INSTALLED" = "false" ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp >/dev/null 2>&1
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
LOG_INFO "测试完成,环境已恢复"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-X参数,用于指定代理用户
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-X参数,用于指定代理用户"
|
||||
|
||||
# 检查是否已安装ftp软件包
|
||||
LOG_INFO "检查是否已安装ftp软件包"
|
||||
if dnf list installed ftp &>/dev/null; then
|
||||
LOG_INFO "ftp软件包已安装,测试结束后保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "ftp软件包未安装,将在测试过程中安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 检查yum源中是否有ftp软件包
|
||||
LOG_INFO "检查yum源中是否有ftp软件包"
|
||||
if ! dnf list available ftp &>/dev/null; then
|
||||
LOG_ERROR "yum源中未找到ftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 如果未安装则安装ftp软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装ftp软件包"
|
||||
dnf install -y ftp
|
||||
CHECK_RESULT $? 0 0 "安装ftp软件包失败"
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否存在
|
||||
LOG_INFO "检查pftp命令是否存在"
|
||||
if ! command -v pftp &>/dev/null; then
|
||||
LOG_ERROR "pftp命令不存在"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查pftp命令是否支持-X参数
|
||||
LOG_INFO "检查pftp命令是否支持-X参数"
|
||||
pftp -h 2>&1 | grep -q -- "-X"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-X参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-X参数
|
||||
LOG_INFO "测试pftp命令的-X参数"
|
||||
pftp -X testuser localhost << EOF
|
||||
quit
|
||||
EOF
|
||||
CHECK_RESULT $? 0 0 "pftp命令的-X参数测试失败"
|
||||
|
||||
# 清理环境
|
||||
LOG_INFO "清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载ftp软件包"
|
||||
dnf remove -y ftp
|
||||
CHECK_RESULT $? 0 0 "卸载ftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-Y参数,用于指定代理密码
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
LOG_INFO "开始测试pftp命令的-Y参数,用于指定代理密码"
|
||||
|
||||
LOG_INFO "步骤1:检查pftp命令是否已安装"
|
||||
if command -v pftp &> /dev/null; then
|
||||
LOG_INFO "pftp命令已安装,将保持安装状态"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "pftp命令未安装,将进行安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤2:检查yum源中是否存在pftp软件包"
|
||||
if ! dnf list available pftp &> /dev/null; then
|
||||
LOG_ERROR "yum源中未找到pftp软件包"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "步骤3:安装pftp软件包"
|
||||
dnf install -y pftp
|
||||
CHECK_RESULT $? 0 0 "安装pftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤4:测试pftp命令的-Y参数"
|
||||
pftp -Y "test_password" 2>&1 | grep -q "Invalid option"
|
||||
if [ $? -eq 0 ]; then
|
||||
LOG_ERROR "pftp命令不支持-Y参数"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
LOG_INFO "步骤5:验证pftp命令-Y参数功能"
|
||||
pftp -Y "test_password" -h 2>&1 | grep -q "proxy password"
|
||||
CHECK_RESULT $? 0 0 "pftp命令-Y参数功能异常"
|
||||
|
||||
LOG_INFO "步骤6:清理环境"
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载pftp软件包"
|
||||
dnf remove -y pftp
|
||||
CHECK_RESULT $? 0 0 "卸载pftp软件包失败"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,132 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-Z参数,用于指定代理类型
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义颜色和日志函数(虽然题目说不需要定义,但实际脚本中需要)
|
||||
RED="\033[0;31m"
|
||||
GREEN="\033[0;32m"
|
||||
NC="\033[0m" # No Color
|
||||
|
||||
LOG_INFO() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
check_package_in_repo() {
|
||||
local pkg=$1
|
||||
LOG_INFO "检查yum源中是否存在软件包: $pkg"
|
||||
dnf list available "$pkg" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "yum源中不存在软件包: $pkg"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "yum源中存在软件包: $pkg"
|
||||
}
|
||||
|
||||
# 检查命令参数是否支持
|
||||
check_command_param() {
|
||||
local cmd=$1
|
||||
local param=$2
|
||||
LOG_INFO "检查命令 $cmd 是否支持参数 $param"
|
||||
$cmd --help 2>&1 | grep -q "\b$param\b"
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "命令 $cmd 不支持参数 $param"
|
||||
exit 255
|
||||
fi
|
||||
LOG_INFO "命令 $cmd 支持参数 $param"
|
||||
}
|
||||
|
||||
# 安装软件包
|
||||
install_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "安装软件包: $pkg"
|
||||
dnf install -y "$pkg" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $pkg 失败"
|
||||
LOG_INFO "软件包 $pkg 安装成功"
|
||||
}
|
||||
|
||||
# 卸载软件包
|
||||
uninstall_package() {
|
||||
local pkg=$1
|
||||
LOG_INFO "卸载软件包: $pkg"
|
||||
dnf remove -y "$pkg" &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $pkg 失败"
|
||||
LOG_INFO "软件包 $pkg 卸载成功"
|
||||
}
|
||||
|
||||
# 检查软件包是否已安装
|
||||
is_package_installed() {
|
||||
local pkg=$1
|
||||
rpm -q "$pkg" &>/dev/null
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主测试函数
|
||||
test_pftp_Z_param() {
|
||||
local pkg="lftp"
|
||||
local original_install_status=0
|
||||
|
||||
# 步骤1: 检查软件包是否已安装
|
||||
LOG_INFO "步骤1: 检查软件包 $pkg 是否已安装"
|
||||
if is_package_installed "$pkg"; then
|
||||
LOG_INFO "软件包 $pkg 已安装"
|
||||
original_install_status=1
|
||||
else
|
||||
LOG_INFO "软件包 $pkg 未安装"
|
||||
original_install_status=0
|
||||
fi
|
||||
|
||||
# 步骤2: 检查yum源中是否存在软件包
|
||||
check_package_in_repo "$pkg"
|
||||
|
||||
# 步骤3: 如果未安装,则安装软件包
|
||||
if [ $original_install_status -eq 0 ]; then
|
||||
install_package "$pkg"
|
||||
fi
|
||||
|
||||
# 步骤4: 检查pftp命令是否支持-Z参数
|
||||
check_command_param "pftp" "-Z"
|
||||
|
||||
# 步骤5: 测试pftp命令的-Z参数
|
||||
LOG_INFO "步骤5: 测试pftp命令的-Z参数"
|
||||
pftp -Z http 2>&1 | grep -q "usage\|Usage\|选项"
|
||||
CHECK_RESULT $? 0 0 "pftp命令的-Z参数测试失败"
|
||||
|
||||
# 步骤6: 清理环境
|
||||
LOG_INFO "步骤6: 清理环境"
|
||||
if [ $original_install_status -eq 0 ]; then
|
||||
uninstall_package "$pkg"
|
||||
else
|
||||
LOG_INFO "保持软件包 $pkg 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
# 执行测试
|
||||
test_pftp_Z_param
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Copyright (c) 2024 ISCAS .ALL rights reserved.
|
||||
# This program is licensed under Mulan PSL v2.
|
||||
# You can use it according to the terms and conditions of the Mulan PSL v2.
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
|
||||
# #############################################
|
||||
# @Author : honghua
|
||||
# @Contact : honghua@iscas.ac.cn
|
||||
# @Date : 2026-04-03
|
||||
# @License : Mulan PSL v2
|
||||
# @Desc : 测试pftp命令的-v参数,用于显示详细输出
|
||||
# ############################################
|
||||
|
||||
source "$OET_PATH/libs/locallibs/common_lib.sh"
|
||||
|
||||
function run_test() {
|
||||
# 定义日志函数
|
||||
LOG_INFO() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
LOG_ERROR() {
|
||||
echo "[ERROR] $*"
|
||||
}
|
||||
|
||||
# 定义检查结果函数
|
||||
CHECK_RESULT() {
|
||||
local actual=$1
|
||||
local expect=$2
|
||||
local mode=$3
|
||||
local message=$4
|
||||
if [ $mode -eq 0 ]; then
|
||||
if [ $actual -eq $expect ]; then
|
||||
LOG_INFO "检查通过: $message"
|
||||
else
|
||||
LOG_ERROR "检查失败: $message"
|
||||
exit $actual
|
||||
fi
|
||||
else
|
||||
if [ $actual -ne $expect ]; then
|
||||
LOG_INFO "检查通过: $message"
|
||||
else
|
||||
LOG_ERROR "检查失败: $message"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 定义SSH命令函数
|
||||
SSH_CMD() {
|
||||
local cmd=$1
|
||||
local ip=$2
|
||||
local password=$3
|
||||
local user=$4
|
||||
sshpass -p $password ssh -o StrictHostKeyChecking=no $user@$ip "$cmd"
|
||||
}
|
||||
|
||||
# 定义软件包名称
|
||||
PACKAGE_NAME="lftp"
|
||||
|
||||
# 检查软件包是否在yum源中
|
||||
LOG_INFO "检查软件包 $PACKAGE_NAME 是否在yum源中"
|
||||
dnf list available $PACKAGE_NAME &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
LOG_ERROR "软件包 $PACKAGE_NAME 不在yum源中"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# 检查是否已安装软件包
|
||||
LOG_INFO "检查是否已安装软件包 $PACKAGE_NAME"
|
||||
if rpm -q $PACKAGE_NAME &>/dev/null; then
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 已安装"
|
||||
INSTALLED=true
|
||||
else
|
||||
LOG_INFO "软件包 $PACKAGE_NAME 未安装"
|
||||
INSTALLED=false
|
||||
fi
|
||||
|
||||
# 如果未安装,则安装软件包
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "安装软件包 $PACKAGE_NAME"
|
||||
dnf install -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "安装软件包 $PACKAGE_NAME 失败"
|
||||
fi
|
||||
|
||||
# 测试pftp命令的-v参数
|
||||
LOG_INFO "测试pftp命令的-v参数,用于显示详细输出"
|
||||
pftp -v &>/dev/null
|
||||
CHECK_RESULT $? 0 0 "pftp命令不支持-v参数"
|
||||
|
||||
# 检查pftp命令-v参数是否显示详细输出
|
||||
LOG_INFO "检查pftp命令-v参数是否显示详细输出"
|
||||
output=$(pftp -v 2>&1)
|
||||
if echo "$output" | grep -q "lftp"; then
|
||||
LOG_INFO "pftp命令-v参数显示详细输出成功"
|
||||
else
|
||||
LOG_ERROR "pftp命令-v参数未显示详细输出"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 环境恢复
|
||||
if [ "$INSTALLED" = false ]; then
|
||||
LOG_INFO "卸载软件包 $PACKAGE_NAME"
|
||||
dnf remove -y $PACKAGE_NAME
|
||||
CHECK_RESULT $? 0 0 "卸载软件包 $PACKAGE_NAME 失败"
|
||||
else
|
||||
LOG_INFO "保持软件包 $PACKAGE_NAME 的安装状态"
|
||||
fi
|
||||
|
||||
LOG_INFO "测试完成"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user