fix 3
This commit is contained in:
+12
-11
@@ -369,14 +369,13 @@ if [[ "$CHANGE_SSH_PORT" =~ ^[Yy]$ ]]; then
|
|||||||
log "${YELLOW}尝试使用备选方法添加端口设置${NC}"
|
log "${YELLOW}尝试使用备选方法添加端口设置${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 重启SSH服务
|
# 重启SSH服务(Debian的服务名为ssh,部分系统为sshd,依次尝试)
|
||||||
systemctl restart sshd
|
if systemctl restart sshd 2>/dev/null || systemctl restart ssh 2>/dev/null; then
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
log "${GREEN}SSH服务重启成功${NC}"
|
log "${GREEN}SSH服务重启成功${NC}"
|
||||||
else
|
else
|
||||||
log "${RED}SSH服务重启失败${NC}"
|
log "${RED}SSH服务重启失败${NC}"
|
||||||
# 尝试使用service命令
|
# 尝试使用service命令
|
||||||
service sshd restart || service ssh restart
|
service sshd restart || service ssh restart || log "${RED}无法重启SSH服务,请手动检查${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查SSH服务状态
|
# 检查SSH服务状态
|
||||||
@@ -501,12 +500,12 @@ if [ "$OS_TYPE" = "debian" ]; then
|
|||||||
# 检测活跃的网络连接和正在监听的端口
|
# 检测活跃的网络连接和正在监听的端口
|
||||||
log "${YELLOW}检测当前活跃的服务端口...${NC}"
|
log "${YELLOW}检测当前活跃的服务端口...${NC}"
|
||||||
|
|
||||||
# 使用netstat查找监听的TCP端口
|
# 使用netstat查找监听的TCP端口(排除仅绑定本地回环127.x/::1的端口,例如SSH的X11转发6010)
|
||||||
LISTENING_PORTS=$(netstat -tlnp 2>/dev/null | grep "LISTEN" | awk '{print $4}' | awk -F: '{print $NF}' | sort -n | uniq)
|
LISTENING_PORTS=$(netstat -tlnp 2>/dev/null | awk '/LISTEN/ {print $4}' | grep -vE '^(127\.|::1:)' | awk -F: '{print $NF}' | sort -n | uniq)
|
||||||
|
|
||||||
# 使用lsof作为备选方法
|
# 使用lsof作为备选方法(同样排除本地回环地址)
|
||||||
if [ -z "$LISTENING_PORTS" ] && command -v lsof &> /dev/null; then
|
if [ -z "$LISTENING_PORTS" ] && command -v lsof &> /dev/null; then
|
||||||
LISTENING_PORTS=$(lsof -i -P -n 2>/dev/null | grep LISTEN | awk '{print $9}' | awk -F: '{print $NF}' | sort -n | uniq)
|
LISTENING_PORTS=$(lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null | awk 'NR>1 {print $9}' | grep -vE '^(127\.|\[::1\])' | awk -F: '{print $NF}' | sort -n | uniq)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 如果仍然为空,提示手动检查
|
# 如果仍然为空,提示手动检查
|
||||||
@@ -579,11 +578,13 @@ fi
|
|||||||
log "${BLUE}[8/10] 内存优化开始...${NC}"
|
log "${BLUE}[8/10] 内存优化开始...${NC}"
|
||||||
|
|
||||||
# 获取当前所有交换空间信息
|
# 获取当前所有交换空间信息
|
||||||
CURRENT_SWAP_TOTAL=$(free -m | grep "Swap:" | awk '{print $2}')
|
CURRENT_SWAP_TOTAL=$(free -m | awk '/Swap:/ {print $2}')
|
||||||
|
CURRENT_SWAP_TOTAL=${CURRENT_SWAP_TOTAL:-0}
|
||||||
log "${YELLOW}当前系统交换空间总大小: ${CURRENT_SWAP_TOTAL}MB${NC}"
|
log "${YELLOW}当前系统交换空间总大小: ${CURRENT_SWAP_TOTAL}MB${NC}"
|
||||||
|
|
||||||
# 检查是否存在交换空间且大小与设定值相同
|
# 检查是否存在交换空间且大小与设定值接近(允许误差,mkswap头部会占用少量空间,free显示通常比设定值少几MB)
|
||||||
if [ "$CURRENT_SWAP_TOTAL" -eq "$SWAP_SIZE" ]; then
|
SWAP_DIFF=$(( CURRENT_SWAP_TOTAL - SWAP_SIZE ))
|
||||||
|
if [ "${SWAP_DIFF#-}" -le 5 ]; then
|
||||||
log "${GREEN}当前交换空间大小(${CURRENT_SWAP_TOTAL}MB)与设定值一致,无需修改${NC}"
|
log "${GREEN}当前交换空间大小(${CURRENT_SWAP_TOTAL}MB)与设定值一致,无需修改${NC}"
|
||||||
# 显示交换空间信息
|
# 显示交换空间信息
|
||||||
free -h | tee -a $LOG_FILE
|
free -h | tee -a $LOG_FILE
|
||||||
|
|||||||
Reference in New Issue
Block a user