├── README.md ├── cs.zip └── speedtest.sh /README.md: -------------------------------------------------------------------------------- 1 | # sh 2 | Linux常用脚本大全 3 | 4 | VPS测速: bash <(curl -Lso- https://git.io/Jlkmw) 5 | 6 | Speedtest-X: 下载cs.zip解压到网站根目录 7 | 8 | -------------------------------------------------------------------------------- /cs.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coolaj/sh/c20cd8f8e675ed14f6d83ad7b5febd92b7a74625/cs.zip -------------------------------------------------------------------------------- /speedtest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Colors 4 | RED='\033[0;31m' 5 | GREEN='\033[0;32m' 6 | YELLOW='\033[0;33m' 7 | BLUE='\033[0;34m' 8 | PURPLE="\033[0;35m" 9 | CYAN='\033[0;36m' 10 | PLAIN='\033[0m' 11 | 12 | checkroot(){ 13 | [[ $EUID -ne 0 ]] && echo -e "${RED}请使用 root 用户运行本脚本!${PLAIN}" && exit 1 14 | } 15 | 16 | checksystem() { 17 | if [ -f /etc/redhat-release ]; then 18 | release="centos" 19 | elif cat /etc/issue | grep -Eqi "debian"; then 20 | release="debian" 21 | elif cat /etc/issue | grep -Eqi "ubuntu"; then 22 | release="ubuntu" 23 | elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then 24 | release="centos" 25 | elif cat /proc/version | grep -Eqi "debian"; then 26 | release="debian" 27 | elif cat /proc/version | grep -Eqi "ubuntu"; then 28 | release="ubuntu" 29 | elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then 30 | release="centos" 31 | fi 32 | } 33 | 34 | checkpython() { 35 | if [ ! -e '/usr/bin/python' ]; then 36 | echo "正在安装 Python" 37 | if [ "${release}" == "centos" ]; then 38 | yum update > /dev/null 2>&1 39 | yum -y install python > /dev/null 2>&1 40 | yum -y install python39 > /dev/null 2>&1 41 | if [ ! -e '/usr/bin/python' ]; then 42 | ln -s /usr/bin/python3 /usr/bin/python 43 | fi 44 | else 45 | apt-get update > /dev/null 2>&1 46 | apt-get -y install python > /dev/null 2>&1 47 | fi 48 | 49 | fi 50 | } 51 | 52 | checkcurl() { 53 | if [ ! -e '/usr/bin/curl' ]; then 54 | echo "正在安装 Curl" 55 | if [ "${release}" == "centos" ]; then 56 | yum update > /dev/null 2>&1 57 | yum -y install curl > /dev/null 2>&1 58 | else 59 | apt-get update > /dev/null 2>&1 60 | apt-get -y install curl > /dev/null 2>&1 61 | fi 62 | fi 63 | } 64 | 65 | checkwget() { 66 | if [ ! -e '/usr/bin/wget' ]; then 67 | echo "正在安装 Wget" 68 | if [ "${release}" == "centos" ]; then 69 | yum update > /dev/null 2>&1 70 | yum -y install wget > /dev/null 2>&1 71 | else 72 | apt-get update > /dev/null 2>&1 73 | apt-get -y install wget > /dev/null 2>&1 74 | fi 75 | fi 76 | } 77 | 78 | 79 | checkspeedtest() { 80 | if [ ! -e './speedtest-cli/speedtest' ]; then 81 | echo "正在安装 Speedtest-cli" 82 | wget --no-check-certificate -qO speedtest.tgz https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-$(uname -m)-linux.tgz 83 | #wget --no-check-certificate -qO speedtest.tgz https://bintray.com/ookla/download/download_file?file_path=ookla-speedtest-1.0.0-$(uname -m)-linux.tgz 84 | fi 85 | mkdir -p speedtest-cli && tar zxvf speedtest.tgz -C ./speedtest-cli/ > /dev/null 2>&1 && chmod a+rx ./speedtest-cli/speedtest 86 | } 87 | 88 | speed_test(){ 89 | speedLog="./speedtest.log" 90 | true > $speedLog 91 | speedtest-cli/speedtest -p no -s $1 --accept-license > $speedLog 2>&1 92 | is_upload=$(cat $speedLog | grep 'Upload') 93 | if [[ ${is_upload} ]]; then 94 | local REDownload=$(cat $speedLog | awk -F ' ' '/Download/{print $3}') 95 | local reupload=$(cat $speedLog | awk -F ' ' '/Upload/{print $3}') 96 | local relatency=$(cat $speedLog | awk -F ' ' '/Latency/{print $2}') 97 | 98 | local nodeID=$1 99 | local nodeLocation=$2 100 | local nodeISP=$3 101 | 102 | strnodeLocation="${nodeLocation}      " 103 | LANG=C 104 | #echo $LANG 105 | 106 | temp=$(echo "${REDownload}" | awk -F ' ' '{print $1}') 107 | if [[ $(awk -v num1=${temp} -v num2=0 'BEGIN{print(num1>num2)?"1":"0"}') -eq 1 ]]; then 108 | printf "${RED}%-6s${YELLOW}%s%s${GREEN}%-24s${CYAN}%s%-10s${BLUE}%s%-10s${PURPLE}%-8s${PLAIN}\n" "${nodeID}" "${nodeISP}" "|" "${strnodeLocation:0:24}" "↑ " "${reupload}" "↓ " "${REDownload}" "${relatency}" | tee -a $log 109 | fi 110 | else 111 | local cerror="ERROR" 112 | fi 113 | } 114 | 115 | preinfo() { 116 | echo "———————————————————SuperSpeed 全面测速版——————————————————" 117 | echo " bash <(curl -Lso- https://git.io/Jlkmw)" 118 | echo " 全部节点列表: https://git.io/superspeedList" 119 | echo " 节点更新: 2020/04/09 | 脚本更新: 2021/07/22" 120 | echo "——————————————————————————————————————————————————————————" 121 | } 122 | 123 | selecttest() { 124 | echo -e " 测速类型: ${GREEN}1.${PLAIN} 三网测速 ${GREEN}2.${PLAIN} 取消测速" 125 | echo -ne " ${GREEN}3.${PLAIN} 电信节点 ${GREEN}4.${PLAIN} 联通节点 ${GREEN}5.${PLAIN} 移动节点" 126 | while :; do echo 127 | read -p " 请输入数字选择测速类型: " selection 128 | if [[ ! $selection =~ ^[1-5]$ ]]; then 129 | echo -ne " ${RED}输入错误${PLAIN}, 请输入正确的数字!" 130 | else 131 | break 132 | fi 133 | done 134 | } 135 | 136 | runtest() { 137 | [[ ${selection} == 2 ]] && exit 1 138 | 139 | if [[ ${selection} == 1 ]]; then 140 | echo "——————————————————————————————————————————————————————————" 141 | echo "ID 测速服务器信息 上传/Mbps 下载/Mbps 延迟/ms" 142 | start=$(date +%s) 143 | 144 | speed_test '3633' '上海' '电信' 145 | speed_test '24012' '内蒙古呼和浩特' '电信' 146 | speed_test '27377' '北京5G' '电信' 147 | speed_test '29026' '四川成都' '电信' 148 | # speed_test '29071' '四川成都' '电信' 149 | speed_test '17145' '安徽合肥5G' '电信' 150 | speed_test '27594' '广东广州5G' '电信' 151 | # speed_test '27810' '广西南宁' '电信' 152 | speed_test '27575' '新疆乌鲁木齐' '电信' 153 | # speed_test '26352' '江苏南京5G' '电信' 154 | speed_test '5396' '江苏苏州5G' '电信' 155 | # speed_test '5317' '江苏连云港5G' '电信' 156 | # speed_test '7509' '浙江杭州' '电信' 157 | speed_test '23844' '湖北武汉' '电信' 158 | speed_test '29353' '湖北武汉5G' '电信' 159 | speed_test '28225' '湖南长沙5G' '电信' 160 | speed_test '3973' '甘肃兰州' '电信' 161 | # speed_test '19076' '重庆' '电信' 162 | #*** 163 | # speed_test '21005' '上海' '联通' 164 | speed_test '24447' '上海5G' '联通' 165 | # speed_test '5103' '云南昆明' '联通' 166 | speed_test '5145' '北京' '联通' 167 | # speed_test '5505' '北京' '联通' 168 | # speed_test '9484' '吉林长春' '联通' 169 | speed_test '2461' '四川成都' '联通' 170 | speed_test '27154' '天津5G' '联通' 171 | # speed_test '5509' '宁夏银川' '联通' 172 | # speed_test '5724' '安徽合肥' '联通' 173 | # speed_test '5039' '山东济南' '联通' 174 | speed_test '26180' '山东济南5G' '联通' 175 | speed_test '26678' '广东广州5G' '联通' 176 | # speed_test '16192' '广东深圳' '联通' 177 | # speed_test '6144' '新疆乌鲁木齐' '联通' 178 | speed_test '13704' '江苏南京' '联通' 179 | speed_test '5485' '湖北武汉' '联通' 180 | # speed_test '26677' '湖南株洲' '联通' 181 | speed_test '4870' '湖南长沙' '联通' 182 | # speed_test '4690' '甘肃兰州' '联通' 183 | # speed_test '4884' '福建福州' '联通' 184 | # speed_test '31985' '重庆' '联通' 185 | speed_test '4863' '陕西西安' '联通' 186 | #*** 187 | # speed_test '30154' '上海' '移动' 188 | # speed_test '25637' '上海5G' '移动' 189 | # speed_test '26728' '云南昆明' '移动' 190 | # speed_test '27019' '内蒙古呼和浩特' '移动' 191 | speed_test '30232' '内蒙呼和浩特5G' '移动' 192 | # speed_test '30293' '内蒙古通辽5G' '移动' 193 | speed_test '25858' '北京' '移动' 194 | speed_test '16375' '吉林长春' '移动' 195 | # speed_test '24337' '四川成都' '移动' 196 | speed_test '17184' '天津5G' '移动' 197 | # speed_test '26940' '宁夏银川' '移动' 198 | # speed_test '31815' '宁夏银川' '移动' 199 | # speed_test '26404' '安徽合肥5G' '移动' 200 | speed_test '27151' '山东临沂5G' '移动' 201 | # speed_test '25881' '山东济南5G' '移动' 202 | # speed_test '27100' '山东青岛5G' '移动' 203 | # speed_test '26501' '山西太原5G' '移动' 204 | speed_test '31520' '广东中山' '移动' 205 | # speed_test '6611' '广东广州' '移动' 206 | # speed_test '4515' '广东深圳' '移动' 207 | # speed_test '15863' '广西南宁' '移动' 208 | # speed_test '16858' '新疆乌鲁木齐' '移动' 209 | speed_test '26938' '新疆乌鲁木齐5G' '移动' 210 | # speed_test '17227' '新疆和田' '移动' 211 | # speed_test '17245' '新疆喀什' '移动' 212 | # speed_test '17222' '新疆阿勒泰' '移动' 213 | # speed_test '27249' '江苏南京5G' '移动' 214 | # speed_test '21845' '江苏常州5G' '移动' 215 | # speed_test '26850' '江苏无锡5G' '移动' 216 | # speed_test '17320' '江苏镇江5G' '移动' 217 | speed_test '25883' '江西南昌5G' '移动' 218 | # speed_test '17223' '河北石家庄' '移动' 219 | # speed_test '26331' '河南郑州5G' '移动' 220 | # speed_test '6715' '浙江宁波5G' '移动' 221 | # speed_test '4647' '浙江杭州' '移动' 222 | # speed_test '16503' '海南海口' '移动' 223 | # speed_test '28491' '湖南长沙5G' '移动' 224 | # speed_test '16145' '甘肃兰州' '移动' 225 | speed_test '16171' '福建福州' '移动' 226 | # speed_test '18444' '西藏拉萨' '移动' 227 | speed_test '16398' '贵州贵阳' '移动' 228 | speed_test '25728' '辽宁大连' '移动' 229 | # speed_test '16167' '辽宁沈阳' '移动' 230 | # speed_test '17584' '重庆' '移动' 231 | # speed_test '26380' '陕西西安' '移动' 232 | # speed_test '29105' '陕西西安5G' '移动' 233 | # speed_test '29083' '青海西宁5G' '移动' 234 | # speed_test '26656' '黑龙江哈尔滨' '移动' 235 | 236 | end=$(date +%s) 237 | ##rm -rf speedtest* 238 | echo "——————————————————————————————————————————————————————————" 239 | time=$(( $end - $start )) 240 | if [[ $time -gt 60 ]]; then 241 | min=$(expr $time / 60) 242 | sec=$(expr $time % 60) 243 | echo -ne " 测试完成, 本次测速耗时: ${min} 分 ${sec} 秒" 244 | else 245 | echo -ne " 测试完成, 本次测速耗时: ${time} 秒" 246 | fi 247 | echo -ne "\n 当前时间: " 248 | echo $(date +%Y-%m-%d" "%H:%M:%S) 249 | echo -e " ${GREEN}# 三网测速中为避免节点数不均及测试过久,每部分未使用所${PLAIN}" 250 | echo -e " ${GREEN}# 有节点,如果需要使用全部节点,可分别选择三网节点检测${PLAIN}" 251 | fi 252 | 253 | if [[ ${selection} == 3 ]]; then 254 | echo "——————————————————————————————————————————————————————————" 255 | echo "ID 测速服务器信息 上传/Mbps 下载/Mbps 延迟/ms" 256 | start=$(date +%s) 257 | 258 | speed_test '3633' '上海' '电信' 259 | speed_test '24012' '内蒙古呼和浩特' '电信' 260 | speed_test '27377' '北京5G' '电信' 261 | speed_test '29026' '四川成都' '电信' 262 | speed_test '29071' '四川成都' '电信' 263 | speed_test '17145' '安徽合肥5G' '电信' 264 | speed_test '27594' '广东广州5G' '电信' 265 | speed_test '27810' '广西南宁' '电信' 266 | speed_test '27575' '新疆乌鲁木齐' '电信' 267 | speed_test '26352' '江苏南京5G' '电信' 268 | speed_test '5396' '江苏苏州5G' '电信' 269 | speed_test '5317' '江苏连云港5G' '电信' 270 | speed_test '7509' '浙江杭州' '电信' 271 | speed_test '23844' '湖北武汉' '电信' 272 | speed_test '29353' '湖北武汉5G' '电信' 273 | speed_test '28225' '湖南长沙5G' '电信' 274 | speed_test '3973' '甘肃兰州' '电信' 275 | speed_test '19076' '重庆' '电信' 276 | 277 | end=$(date +%s) 278 | ##rm -rf speedtest* 279 | echo "——————————————————————————————————————————————————————————" 280 | time=$(( $end - $start )) 281 | if [[ $time -gt 60 ]]; then 282 | min=$(expr $time / 60) 283 | sec=$(expr $time % 60) 284 | echo -ne " 测试完成, 本次测速耗时: ${min} 分 ${sec} 秒" 285 | else 286 | echo -ne " 测试完成, 本次测速耗时: ${time} 秒" 287 | fi 288 | echo -ne "\n 当前时间: " 289 | echo $(date +%Y-%m-%d" "%H:%M:%S) 290 | fi 291 | 292 | if [[ ${selection} == 4 ]]; then 293 | echo "——————————————————————————————————————————————————————————" 294 | echo "ID 测速服务器信息 上传/Mbps 下载/Mbps 延迟/ms" 295 | start=$(date +%s) 296 | 297 | speed_test '21005' '上海' '联通' 298 | speed_test '24447' '上海5G' '联通' 299 | speed_test '5103' '云南昆明' '联通' 300 | speed_test '5145' '北京' '联通' 301 | speed_test '5505' '北京' '联通' 302 | speed_test '9484' '吉林长春' '联通' 303 | speed_test '2461' '四川成都' '联通' 304 | speed_test '27154' '天津5G' '联通' 305 | speed_test '5509' '宁夏银川' '联通' 306 | speed_test '5724' '安徽合肥' '联通' 307 | speed_test '5039' '山东济南' '联通' 308 | speed_test '26180' '山东济南5G' '联通' 309 | speed_test '26678' '广东广州5G' '联通' 310 | speed_test '16192' '广东深圳' '联通' 311 | speed_test '6144' '新疆乌鲁木齐' '联通' 312 | speed_test '13704' '江苏南京' '联通' 313 | speed_test '5485' '湖北武汉' '联通' 314 | speed_test '26677' '湖南株洲' '联通' 315 | speed_test '4870' '湖南长沙' '联通' 316 | speed_test '4690' '甘肃兰州' '联通' 317 | speed_test '4884' '福建福州' '联通' 318 | speed_test '31985' '重庆' '联通' 319 | speed_test '4863' '陕西西安' '联通' 320 | 321 | end=$(date +%s) 322 | ###rm -rf speedtest* 323 | echo "——————————————————————————————————————————————————————————" 324 | time=$(( $end - $start )) 325 | if [[ $time -gt 60 ]]; then 326 | min=$(expr $time / 60) 327 | sec=$(expr $time % 60) 328 | echo -ne " 测试完成, 本次测速耗时: ${min} 分 ${sec} 秒" 329 | else 330 | echo -ne " 测试完成, 本次测速耗时: ${time} 秒" 331 | fi 332 | echo -ne "\n 当前时间: " 333 | echo $(date +%Y-%m-%d" "%H:%M:%S) 334 | fi 335 | 336 | if [[ ${selection} == 5 ]]; then 337 | echo "——————————————————————————————————————————————————————————" 338 | echo "ID 测速服务器信息 上传/Mbps 下载/Mbps 延迟/ms" 339 | start=$(date +%s) 340 | 341 | speed_test '30154' '上海' '移动' 342 | speed_test '25637' '上海5G' '移动' 343 | speed_test '26728' '云南昆明' '移动' 344 | speed_test '27019' '内蒙古呼和浩特' '移动' 345 | speed_test '30232' '内蒙呼和浩特5G' '移动' 346 | speed_test '30293' '内蒙古通辽5G' '移动' 347 | speed_test '25858' '北京' '移动' 348 | speed_test '16375' '吉林长春' '移动' 349 | speed_test '24337' '四川成都' '移动' 350 | speed_test '17184' '天津5G' '移动' 351 | speed_test '26940' '宁夏银川' '移动' 352 | speed_test '31815' '宁夏银川' '移动' 353 | speed_test '26404' '安徽合肥5G' '移动' 354 | speed_test '27151' '山东临沂5G' '移动' 355 | speed_test '25881' '山东济南5G' '移动' 356 | speed_test '27100' '山东青岛5G' '移动' 357 | speed_test '26501' '山西太原5G' '移动' 358 | speed_test '31520' '广东中山' '移动' 359 | speed_test '6611' '广东广州' '移动' 360 | speed_test '4515' '广东深圳' '移动' 361 | speed_test '15863' '广西南宁' '移动' 362 | speed_test '16858' '新疆乌鲁木齐' '移动' 363 | speed_test '26938' '新疆乌鲁木齐5G' '移动' 364 | speed_test '17227' '新疆和田' '移动' 365 | speed_test '17245' '新疆喀什' '移动' 366 | speed_test '17222' '新疆阿勒泰' '移动' 367 | speed_test '27249' '江苏南京5G' '移动' 368 | speed_test '21845' '江苏常州5G' '移动' 369 | speed_test '26850' '江苏无锡5G' '移动' 370 | speed_test '17320' '江苏镇江5G' '移动' 371 | speed_test '25883' '江西南昌5G' '移动' 372 | speed_test '17223' '河北石家庄' '移动' 373 | speed_test '26331' '河南郑州5G' '移动' 374 | speed_test '6715' '浙江宁波5G' '移动' 375 | speed_test '4647' '浙江杭州' '移动' 376 | speed_test '16503' '海南海口' '移动' 377 | speed_test '28491' '湖南长沙5G' '移动' 378 | speed_test '16145' '甘肃兰州' '移动' 379 | speed_test '16171' '福建福州' '移动' 380 | speed_test '18444' '西藏拉萨' '移动' 381 | speed_test '16398' '贵州贵阳' '移动' 382 | speed_test '25728' '辽宁大连' '移动' 383 | speed_test '16167' '辽宁沈阳' '移动' 384 | speed_test '17584' '重庆' '移动' 385 | speed_test '26380' '陕西西安' '移动' 386 | speed_test '29105' '陕西西安5G' '移动' 387 | speed_test '29083' '青海西宁5G' '移动' 388 | speed_test '26656' '黑龙江哈尔滨' '移动' 389 | 390 | end=$(date +%s) 391 | ####rm -rf speedtest* 392 | echo "——————————————————————————————————————————————————————————" 393 | time=$(( $end - $start )) 394 | if [[ $time -gt 60 ]]; then 395 | min=$(expr $time / 60) 396 | sec=$(expr $time % 60) 397 | echo -ne " 测试完成, 本次测速耗时: ${min} 分 ${sec} 秒" 398 | else 399 | echo -ne " 测试完成, 本次测速耗时: ${time} 秒" 400 | fi 401 | echo -ne "\n 当前时间: " 402 | echo $(date +%Y-%m-%d" "%H:%M:%S) 403 | fi 404 | } 405 | 406 | runall() { 407 | checkroot; 408 | checksystem; 409 | checkpython; 410 | checkcurl; 411 | checkwget; 412 | checkspeedtest; 413 | clear 414 | speed_test; 415 | preinfo; 416 | selecttest; 417 | runtest; 418 | } 419 | 420 | runall 421 | --------------------------------------------------------------------------------