bench.sh:一行命令测试Linux服务器基准测试

简介

bench.sh 是一个 Linux 系统性能基准测试工具。它的测试结果如下图:给出服务器的整体配置信息,IO 性能,网络性能。很多人使用它测试 vps 性能。

Clip_2024-09-26_22-23-15

一键运行

服务器在国外可以使用以下命令运行测试

wget -qO- bench.sh | bash

复制脚本到本地运行

服务器在国内只能从 github 复制脚本到本地运行。脚本内容已经贴到下面:复制代码块,保存到 bench.sh 文件中,chmod +x 赋权, ./bench.sh 运行。

#!/usr/bin/env bash
#
# Description: A Bench Script by Teddysun
#
# Copyright (C) 2015 - 2023 Teddysun <i@teddysun.com>
# Thanks: LookBack <admin@dwhd.org>
# URL: https://teddysun.com/444.html
# https://github.com/teddysun/across/blob/master/bench.sh
#
trap _exit INT QUIT TERM_red() {printf '\033[0;31;31m%b\033[0m' "$1"
}_green() {printf '\033[0;31;32m%b\033[0m' "$1"
}_yellow() {printf '\033[0;31;33m%b\033[0m' "$1"
}_blue() {printf '\033[0;31;36m%b\033[0m' "$1"
}_exists() {local cmd="$1"if eval type type >/dev/null 2>&1; theneval type "$cmd" >/dev/null 2>&1elif command >/dev/null 2>&1; thencommand -v "$cmd" >/dev/null 2>&1elsewhich "$cmd" >/dev/null 2>&1filocal rt=$?return ${rt}
}_exit() {_red "\nThe script has been terminated. Cleaning up files...\n"# clean uprm -fr speedtest.tgz speedtest-cli benchtest_*exit 1
}get_opsy() {[ -f /etc/redhat-release ] && awk '{print $0}' /etc/redhat-release && return[ -f /etc/os-release ] && awk -F'[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release && return[ -f /etc/lsb-release ] && awk -F'[="]+' '/DESCRIPTION/{print $2}' /etc/lsb-release && return
}next() {printf "%-70s\n" "-" | sed 's/\s/-/g'
}speed_test() {local nodeName="$2"if [ -z "$1" ];then./speedtest-cli/speedtest --progress=no --accept-license --accept-gdpr >./speedtest-cli/speedtest.log 2>&1else./speedtest-cli/speedtest --progress=no --server-id="$1" --accept-license --accept-gdpr >./speedtest-cli/speedtest.log 2>&1fiif [ $? -eq 0 ]; thenlocal dl_speed up_speed latencydl_speed=$(awk '/Download/{print $3" "$4}' ./speedtest-cli/speedtest.log)up_speed=$(awk '/Upload/{print $3" "$4}' ./speedtest-cli/speedtest.log)latency=$(awk '/Latency/{print $3" "$4}' ./speedtest-cli/speedtest.log)if [[ -n "${dl_speed}" && -n "${up_speed}" && -n "${latency}" ]]; thenprintf "\033[0;33m%-18s\033[0;32m%-18s\033[0;31m%-20s\033[0;36m%-12s\033[0m\n" " ${nodeName}" "${up_speed}" "${dl_speed}" "${latency}"fifi
}speed() {speed_test '' 'Speedtest.net'speed_test '21541' 'Los Angeles, US'speed_test '43860' 'Dallas, US'speed_test '40879' 'Montreal, CA'speed_test '24215' 'Paris, FR'speed_test '28922' 'Amsterdam, NL'speed_test '24447' 'Shanghai, CN'speed_test '5530' 'Chongqing, CN'speed_test '60572' 'Guangzhou, CN'speed_test '32155' 'Hongkong, CN'speed_test '23647' 'Mumbai, IN'speed_test '13623' 'Singapore, SG'speed_test '21569' 'Tokyo, JP'
}io_test() {(LANG=C dd if=/dev/zero of=benchtest_$$ bs=512k count="$1" conv=fdatasync && rm -f benchtest_$$) 2>&1 | awk -F '[,,]' '{io=$NF} END { print io}' | sed 's/^[ \t]*//;s/[ \t]*$//'
}calc_size() {local raw=$1local total_size=0local num=1local unit="KB"if ! [[ ${raw} =~ ^[0-9]+$ ]]; thenecho ""returnfiif [ "${raw}" -ge 1073741824 ]; thennum=1073741824unit="TB"elif [ "${raw}" -ge 1048576 ]; thennum=1048576unit="GB"elif [ "${raw}" -ge 1024 ]; thennum=1024unit="MB"elif [ "${raw}" -eq 0 ]; thenecho "${total_size}"returnfitotal_size=$(awk 'BEGIN{printf "%.1f", '"$raw"' / '$num'}')echo "${total_size} ${unit}"
}# since calc_size converts kilobyte to MB, GB and TB
# to_kibyte converts zfs size from bytes to kilobyte
to_kibyte() {local raw=$1awk 'BEGIN{printf "%.0f", '"$raw"' / 1024}'
}calc_sum() {local arr=("$@")local ss=0for i in "${arr[@]}"; dos=$((s + i))doneecho ${s}
}check_virt() {_exists "dmesg" && virtualx="$(dmesg 2>/dev/null)"if _exists "dmidecode"; thensys_manu="$(dmidecode -s system-manufacturer 2>/dev/null)"sys_product="$(dmidecode -s system-product-name 2>/dev/null)"sys_ver="$(dmidecode -s system-version 2>/dev/null)"elsesys_manu=""sys_product=""sys_ver=""fiif grep -qa docker /proc/1/cgroup; thenvirt="Docker"elif grep -qa lxc /proc/1/cgroup; thenvirt="LXC"elif grep -qa container=lxc /proc/1/environ; thenvirt="LXC"elif [[ -f /proc/user_beancounters ]]; thenvirt="OpenVZ"elif [[ "${virtualx}" == *kvm-clock* ]]; thenvirt="KVM"elif [[ "${sys_product}" == *KVM* ]]; thenvirt="KVM"elif [[ "${sys_manu}" == *QEMU* ]]; thenvirt="KVM"elif [[ "${cname}" == *KVM* ]]; thenvirt="KVM"elif [[ "${cname}" == *QEMU* ]]; thenvirt="KVM"elif [[ "${virtualx}" == *"VMware Virtual Platform"* ]]; thenvirt="VMware"elif [[ "${sys_product}" == *"VMware Virtual Platform"* ]]; thenvirt="VMware"elif [[ "${virtualx}" == *"Parallels Software International"* ]]; thenvirt="Parallels"elif [[ "${virtualx}" == *VirtualBox* ]]; thenvirt="VirtualBox"elif [[ -e /proc/xen ]]; thenif grep -q "control_d" "/proc/xen/capabilities" 2>/dev/null; thenvirt="Xen-Dom0"elsevirt="Xen-DomU"fielif [ -f "/sys/hypervisor/type" ] && grep -q "xen" "/sys/hypervisor/type"; thenvirt="Xen"elif [[ "${sys_manu}" == *"Microsoft Corporation"* ]]; thenif [[ "${sys_product}" == *"Virtual Machine"* ]]; thenif [[ "${sys_ver}" == *"7.0"* || "${sys_ver}" == *"Hyper-V" ]]; thenvirt="Hyper-V"elsevirt="Microsoft Virtual Machine"fifielsevirt="Dedicated"fi
}ipv4_info() {local org city country regionorg="$(wget -q -T10 -O- ipinfo.io/org)"city="$(wget -q -T10 -O- ipinfo.io/city)"country="$(wget -q -T10 -O- ipinfo.io/country)"region="$(wget -q -T10 -O- ipinfo.io/region)"if [[ -n "${org}" ]]; thenecho " Organization       : $(_blue "${org}")"fiif [[ -n "${city}" && -n "${country}" ]]; thenecho " Location           : $(_blue "${city} / ${country}")"fiif [[ -n "${region}" ]]; thenecho " Region             : $(_yellow "${region}")"fiif [[ -z "${org}" ]]; thenecho " Region             : $(_red "No ISP detected")"fi
}install_speedtest() {if [ ! -e "./speedtest-cli/speedtest" ]; thensys_bit=""local sysarchsysarch="$(uname -m)"if [ "${sysarch}" = "unknown" ] || [ "${sysarch}" = "" ]; thensysarch="$(arch)"fiif [ "${sysarch}" = "x86_64" ]; thensys_bit="x86_64"fiif [ "${sysarch}" = "i386" ] || [ "${sysarch}" = "i686" ]; thensys_bit="i386"fiif [ "${sysarch}" = "armv8" ] || [ "${sysarch}" = "armv8l" ] || [ "${sysarch}" = "aarch64" ] || [ "${sysarch}" = "arm64" ]; thensys_bit="aarch64"fiif [ "${sysarch}" = "armv7" ] || [ "${sysarch}" = "armv7l" ]; thensys_bit="armhf"fiif [ "${sysarch}" = "armv6" ]; thensys_bit="armel"fi[ -z "${sys_bit}" ] && _red "Error: Unsupported system architecture (${sysarch}).\n" && exit 1url1="https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-${sys_bit}.tgz"url2="https://dl.lamp.sh/files/ookla-speedtest-1.2.0-linux-${sys_bit}.tgz"if ! wget --no-check-certificate -q -T10 -O speedtest.tgz ${url1}; thenif ! wget --no-check-certificate -q -T10 -O speedtest.tgz ${url2}; then_red "Error: Failed to download speedtest-cli.\n" && exit 1fifimkdir -p speedtest-cli && tar zxf speedtest.tgz -C ./speedtest-cli && chmod +x ./speedtest-cli/speedtestrm -f speedtest.tgzfiprintf "%-18s%-18s%-20s%-12s\n" " Node Name" "Upload Speed" "Download Speed" "Latency"
}print_intro() {echo "-------------------- A Bench.sh Script By Teddysun -------------------"echo " Version            : $(_green v2023-10-15)"echo " Usage              : $(_red "wget -qO- bench.sh | bash")"
}# Get System information
get_system_info() {cname=$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')cores=$(awk -F: '/^processor/ {core++} END {print core}' /proc/cpuinfo)freq=$(awk -F'[ :]' '/cpu MHz/ {print $4;exit}' /proc/cpuinfo)ccache=$(awk -F: '/cache size/ {cache=$2} END {print cache}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')cpu_aes=$(grep -i 'aes' /proc/cpuinfo)cpu_virt=$(grep -Ei 'vmx|svm' /proc/cpuinfo)tram=$(LANG=Cfree | awk '/Mem/ {print $2}')tram=$(calc_size "$tram")uram=$(LANG=Cfree | awk '/Mem/ {print $3}')uram=$(calc_size "$uram")swap=$(LANG=Cfree | awk '/Swap/ {print $2}')swap=$(calc_size "$swap")uswap=$(LANG=Cfree | awk '/Swap/ {print $3}')uswap=$(calc_size "$uswap")up=$(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60} {printf("%d days, %d hour %d min\n",a,b,c)}' /proc/uptime)if _exists "w"; thenload=$(LANG=Cw | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//')elif _exists "uptime"; thenload=$(LANG=Cuptime | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//')fiopsy=$(get_opsy)arch=$(uname -m)if _exists "getconf"; thenlbit=$(getconf LONG_BIT)elseecho "${arch}" | grep -q "64" && lbit="64" || lbit="32"fikern=$(uname -r)in_kernel_no_swap_total_size=$(LANG=Cdf -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs --total 2>/dev/null | grep total | awk '{ print $2 }')swap_total_size=$(free -k | grep Swap | awk '{print $2}')zfs_total_size=$(to_kibyte "$(calc_sum "$(zpool list -o size -Hp 2> /dev/null)")")disk_total_size=$(calc_size $((swap_total_size + in_kernel_no_swap_total_size + zfs_total_size)))in_kernel_no_swap_used_size=$(LANG=Cdf -t simfs -t ext2 -t ext3 -t ext4 -t btrfs -t xfs -t vfat -t ntfs --total 2>/dev/null | grep total | awk '{ print $3 }')swap_used_size=$(free -k | grep Swap | awk '{print $3}')zfs_used_size=$(to_kibyte "$(calc_sum "$(zpool list -o allocated -Hp 2> /dev/null)")")disk_used_size=$(calc_size $((swap_used_size + in_kernel_no_swap_used_size + zfs_used_size)))tcpctrl=$(sysctl net.ipv4.tcp_congestion_control | awk -F ' ' '{print $3}')
}
# Print System information
print_system_info() {if [ -n "$cname" ]; thenecho " CPU Model          : $(_blue "$cname")"elseecho " CPU Model          : $(_blue "CPU model not detected")"fiif [ -n "$freq" ]; thenecho " CPU Cores          : $(_blue "$cores @ $freq MHz")"elseecho " CPU Cores          : $(_blue "$cores")"fiif [ -n "$ccache" ]; thenecho " CPU Cache          : $(_blue "$ccache")"fiif [ -n "$cpu_aes" ]; thenecho " AES-NI             : $(_green "\xe2\x9c\x93 Enabled")"elseecho " AES-NI             : $(_red "\xe2\x9c\x97 Disabled")"fiif [ -n "$cpu_virt" ]; thenecho " VM-x/AMD-V         : $(_green "\xe2\x9c\x93 Enabled")"elseecho " VM-x/AMD-V         : $(_red "\xe2\x9c\x97 Disabled")"fiecho " Total Disk         : $(_yellow "$disk_total_size") $(_blue "($disk_used_size Used)")"echo " Total Mem          : $(_yellow "$tram") $(_blue "($uram Used)")"if [ "$swap" != "0" ]; thenecho " Total Swap         : $(_blue "$swap ($uswap Used)")"fiecho " System uptime      : $(_blue "$up")"echo " Load average       : $(_blue "$load")"echo " OS                 : $(_blue "$opsy")"echo " Arch               : $(_blue "$arch ($lbit Bit)")"echo " Kernel             : $(_blue "$kern")"echo " TCP CC             : $(_yellow "$tcpctrl")"echo " Virtualization     : $(_blue "$virt")"echo " IPv4/IPv6          : $online"
}print_io_test() {freespace=$(df -m . | awk 'NR==2 {print $4}')if [ -z "${freespace}" ]; thenfreespace=$(df -m . | awk 'NR==3 {print $3}')fiif [ "${freespace}" -gt 1024 ]; thenwritemb=2048io1=$(io_test ${writemb})echo " I/O Speed(1st run) : $(_yellow "$io1")"io2=$(io_test ${writemb})echo " I/O Speed(2nd run) : $(_yellow "$io2")"io3=$(io_test ${writemb})echo " I/O Speed(3rd run) : $(_yellow "$io3")"ioraw1=$(echo "$io1" | awk 'NR==1 {print $1}')[[ "$(echo "$io1" | awk 'NR==1 {print $2}')" == "GB/s" ]] && ioraw1=$(awk 'BEGIN{print '"$ioraw1"' * 1024}')ioraw2=$(echo "$io2" | awk 'NR==1 {print $1}')[[ "$(echo "$io2" | awk 'NR==1 {print $2}')" == "GB/s" ]] && ioraw2=$(awk 'BEGIN{print '"$ioraw2"' * 1024}')ioraw3=$(echo "$io3" | awk 'NR==1 {print $1}')[[ "$(echo "$io3" | awk 'NR==1 {print $2}')" == "GB/s" ]] && ioraw3=$(awk 'BEGIN{print '"$ioraw3"' * 1024}')ioall=$(awk 'BEGIN{print '"$ioraw1"' + '"$ioraw2"' + '"$ioraw3"'}')ioavg=$(awk 'BEGIN{printf "%.1f", '"$ioall"' / 3}')echo " I/O Speed(average) : $(_yellow "$ioavg MB/s")"elseecho " $(_red "Not enough space for I/O Speed test!")"fi
}print_end_time() {end_time=$(date +%s)time=$((end_time - start_time))if [ ${time} -gt 60 ]; thenmin=$((time / 60))sec=$((time % 60))echo " Finished in        : ${min} min ${sec} sec"elseecho " Finished in        : ${time} sec"fidate_time=$(date '+%Y-%m-%d %H:%M:%S %Z')echo " Timestamp          : $date_time"
}! _exists "wget" && _red "Error: wget command not found.\n" && exit 1
! _exists "free" && _red "Error: free command not found.\n" && exit 1
# check for curl/wget
_exists "curl" && local_curl=true
# test if the host has IPv4/IPv6 connectivity
[[ -n ${local_curl} ]] && ip_check_cmd="curl -s -m 4" || ip_check_cmd="wget -qO- -T 4"
ipv4_check=$( (ping -4 -c 1 -W 4 ipv4.google.com >/dev/null 2>&1 && echo true) || ${ip_check_cmd} -4 icanhazip.com 2> /dev/null)
ipv6_check=$( (ping -6 -c 1 -W 4 ipv6.google.com >/dev/null 2>&1 && echo true) || ${ip_check_cmd} -6 icanhazip.com 2> /dev/null)
if [[ -z "$ipv4_check" && -z "$ipv6_check" ]]; then_yellow "Warning: Both IPv4 and IPv6 connectivity were not detected.\n"
fi
[[ -z "$ipv4_check" ]] && online="$(_red "\xe2\x9c\x97 Offline")" || online="$(_green "\xe2\x9c\x93 Online")"
[[ -z "$ipv6_check" ]] && online+=" / $(_red "\xe2\x9c\x97 Offline")" || online+=" / $(_green "\xe2\x9c\x93 Online")"
start_time=$(date +%s)
get_system_info
check_virt
clear
print_intro
next
print_system_info
ipv4_info
next
print_io_test
next
install_speedtest && speed && rm -fr speedtest-cli
next
print_end_time
next

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序配置prettier+eslint

虽然微信开发者工具是基于vscode魔改的.但是由于版本过低,导致很多插件也用不上新版本.所以在微信开发者工具限制的版本下使用的prettier,eslint也是有版本要求. 本文主要就是记录一下需要的版本号 1.微信开发者工具安装插件 2.package.json中添加以下依赖及安装依赖 "de…

JVM(HotSpot):方法区(Method Area)

文章目录 一、内存结构图二、方法区定义三、内存溢出问题四、常量池与运行时常量池 一、内存结构图 1.6 方法区详细结构图 1.8方法区详细结构图 1.8后&#xff0c;方法区是JVM内存的一个逻辑结构&#xff0c;真实内存用的本地物理内存。 且字符串常量池从常量池中移入堆中。 …

云服务器连接不上是什么原因引起的?

云服务器连接不上是什么原因引起的&#xff1f;云服务器连接不上是一个常见的问题&#xff0c;常见的原因有网络连接、账户权限、安全组设置、服务器状态、端口占用、远程登录未开启、云服务器已关闭或到期、防护软件限制、DNS劫持、资源负载过高。以下是一些主要原因及解决方法…

微信小程序 - 最新详细安装使用 Vant weapp UI 框架环境搭建详细教程

前言 自从 2024 年开始,小程序做了很多改变和升级, 导致网上很多搭建教程文章的教程失效了,本文来做最新的教程。 第一步 为了更贴合新手,我这里创建了一个纯净无任何业务代码的小程序项目。

SpringBoot-全局处理异常,时间格式,跨域,拦截器,监听器

1.全局异常处理 使用ControllerAdvice与ExceptionHandler注解 /*** 全局异常处理程序** author * date */ ControllerAdvice ResponseBody public class GlobalExceptionHandler {ExceptionHandler(Exception.class)public JsonResult handleException(Exception e) {e.print…

Wireshark学习使用记录

wireshark 是一个非常好用的抓包工具&#xff0c;使用 wireshark 工具抓包分析&#xff0c;是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境&#xff0c;另外一种就是应用比较多的互联网环境&#xff0c;也就是连接…

Windows下安装Neo4j流程

Neo4j简介 Neo4j 是一个基于图形结构的 NoSQL 数据库&#xff0c;专门用于存储和管理图数据。与传统的关系型数据库不同&#xff0c;Neo4j 使用 图&#xff08;graph&#xff09;的形式来表示数据&#xff0c;其中数据点&#xff08;称为 节点&#xff09;通过 边&#xff08;…

分拆逆势上会,兴福电子部分专利来自母公司,独立性被拷问

作者&#xff1a;Cindy 来源&#xff1a;IPO魔女 公司拟募集资金12.10亿元&#xff0c;保荐机构为天风证券。兴福电子2023年5月就提交了上市申请&#xff0c;期间经历了2轮问询&#xff0c;一年多时间就开启上会。 然而值得注意的是&#xff0c;兴福电子属于分拆上市&#xff…

亚马逊IP关联揭秘:发生ip关联如何处理

在亚马逊这一全球领先的电商平台上&#xff0c;IP关联是一个不可忽视的问题&#xff0c;尤其是对于多账号运营的卖家而言。本文将深入解析亚马逊IP关联的含义、影响以及应对策略&#xff0c;帮助卖家更好地理解和应对这一问题。 什么是亚马逊IP关联&#xff1f; 亚马逊IP关联…

【最新华为OD机试E卷-支持在线评测】字符串变换最小字符串(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

MySQL练手题--日期连续类型(困难)

一、准备工作 Create table If Not Exists Failed (fail_date date); Create table If Not Exists Succeeded (success_date date); Truncate table Failed; insert into Failed (fail_date) values (2018-12-28); insert into Failed (fail_date) values (2018-12-29); inser…

MySQL---创建数据库(基于SQLyog)

目录 0.前言 1.基本认识 1.1编码集 1.2检验规则 2.库的创建和销毁 2.1指令介绍 2.2你可能会出现的问题 3.查看数据库属性 4.创建指定数据库 5.创建表操作 0.前言 之前写过一篇这个关于表的创建和销毁的操作&#xff0c;但是当时是第一次学习&#xff0c;肯定有些地方…

初识 C 语言(一)

目录 一、 第一个 C 程序1. printf() 函数和 stdio.h 头文件2. main() 函数和 return 语句 二、类型和变量1. C 语言中的基本类型2. 变量的创建和命名规则3. 类型和变量的大小 三、printf() 函数和 scanf() 函数1. printf() 函数的使用2. 各种类型的输出格式3. scanf() 函数的使…

2. 网络模型、协议

网络模型、协议 一、OSI七层模型1、OSI七层作用2、数据封装、解封装 二、典型的协议1、应用层2、传输层2.1 TCP建立连接&#xff0c; 三次握手2.2 断开连接&#xff0c;四次挥手 3、网络层 一、OSI七层模型 Open System Interconnect 开放式系统互连模型 降低数据在网络中传输…

web基础—dvwa靶场(十一)CSP Bypass

CSP Bypass(CSP 绕过) 内容安全策略&#xff08;CSP&#xff09;用于定义脚本和其他资源可以从何处加载或执行&#xff0c;本模块将指导您根据开发人员犯下的常见错误来绕过该策略。 这些漏洞都不是 CSP 中的实际漏洞&#xff0c;它们都是实现 CSP 的方式中的漏洞。 绕过内容安…

智慧城市主要运营模式分析

(一)运营模式演变 作为新一代信息化技术落地应用的新事物,智慧城市在建设模式方面借鉴了大量工程建设的经验,如平行发包(DBB,Design-Bid-Build)、EPC工程总承包、PPP等模式等,这些模式在不同的发展阶段和条件下发挥了重要作用。 在智慧城市发展模式从政府主导、以建为主、…

计算机毕业设计 基于Flask+Vue的博客系统 Python毕业设计 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Linux嵌入式驱动开发指南(速记版)---Linux基础篇

第一章 Ubuntu系统入门 uname -a #查看内核版本 cat etc/issue #查看系统版本 1.1 Linux磁盘管理 1.1.1 Linux磁盘管理基本概念 关键词&#xff1a; Linux 磁盘管理 挂载点 /etc/fstab文件 分区 ls /dev/sd* 联系描述&#xff1a; Linux 磁盘管理体系通过“挂载点”概念替代…

[数据集][目标检测]手机识别检测数据集VOC+YOLO格式9997张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;9997 标注数量(xml文件个数)&#xff1a;9997 标注数量(txt文件个数)&#xff1a;9997 标注…

linux之mysql安装

1:mysql安装包下载 下载地址 可私信我直接获取安装包 2:linux下wget命令下载 下载地址 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz3:手动安装 将自己的安装包上传到对应的位置 解压 压缩包 使用命令 tar -zxvf mysql-5.7…