50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# vsftpd 离线安装脚本
|
|
# 使用方法:./vsftpd-offline-install.sh
|
|
|
|
set -e
|
|
|
|
echo "开始 vsftpd 离线安装..."
|
|
|
|
# 检查是否为 root 用户
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "请使用 root 权限运行此脚本"
|
|
exit 1
|
|
fi
|
|
|
|
# 定义离线包目录
|
|
OFFLINE_DIR="./vsftpd-offline"
|
|
DEB_DIR="$OFFLINE_DIR/debs"
|
|
|
|
# 检查离线包是否存在
|
|
if [ ! -d "$OFFLINE_DIR" ]; then
|
|
echo "错误:找不到离线包目录 $OFFLINE_DIR"
|
|
echo "请先准备离线包,方法:"
|
|
echo "1. 在有网络的机器上运行:"
|
|
echo " mkdir -p $DEB_DIR"
|
|
echo " cd $DEB_DIR"
|
|
echo " apt download vsftpd"
|
|
echo " apt download \$(apt-cache depends vsftpd | grep Depends | cut -d: -f2 | tr -d ' ')"
|
|
echo "2. 将整个 $OFFLINE_DIR 目录拷贝到目标机器"
|
|
exit 1
|
|
fi
|
|
|
|
# 安装 deb 包
|
|
echo "安装 vsftpd 及依赖包..."
|
|
cd "$DEB_DIR"
|
|
dpkg -i *.deb || apt-get install -f -y
|
|
|
|
# 检查安装状态
|
|
if systemctl is-active --quiet vsftpd; then
|
|
echo "vsftpd 安装成功并已启动"
|
|
else
|
|
echo "启动 vsftpd 服务..."
|
|
systemctl start vsftpd
|
|
systemctl enable vsftpd
|
|
fi
|
|
|
|
echo "vsftpd 离线安装完成!"
|
|
echo "配置文件位置: /etc/vsftpd.conf"
|
|
echo "服务状态: $(systemctl is-active vsftpd)"
|