Skip to content

Commit 0e62974

Browse files
committed
增加<系统信息>查询小工具,增加<服务管理、终端美化>脚本。
1 parent 4d783e1 commit 0e62974

File tree

9 files changed

+460
-2829
lines changed

9 files changed

+460
-2829
lines changed

modules.d/010-system_info.toml

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,23 @@ docker = "bash <(curl -sL 'https://get.docker.com')"
1010

1111
test = "echo '这是一个测试项'"
1212

13+
dir_size_stat = "read -p \"请输入要统计的目录(回车为当前目录):\" path; [ -z \"$path\" ] && path=\".\"; du -BG --max-depth=1 \"$path\" | awk '$1+0>=1 {print}' | sort -hr"
14+
tcp_conn_total = "tcp_conn_num=$(ss -ant | grep ESTAB | wc -l); echo \"当前TCP已建立连接数:$tcp_conn_num\""
15+
tcp_http_total = "tcp_80443_num=$(ss -ant '( sport = :80 or sport = :443 )' | grep ESTAB | wc -l); echo \"80/443端口TCP已建立连接数:$tcp_80443_num\""
16+
top_10_cpu = "top10cpu=$(ps -eo pid,comm,%cpu --sort=-%cpu | head -n 11); echo -e \"Top10耗CPU进程:\n$top10cpu\""
17+
18+
1319
[[menus]]
1420
id = "system_info"
1521
title = "系统信息"
1622
sub_menus = [
1723
"cpu",
1824
"memory",
1925
"disk",
26+
"dir_size_stat",
27+
"tcp_conn_total",
28+
"tcp_http_total",
29+
"top_10_cpu",
2030
"current-user",
2131
]
2232

@@ -36,11 +46,27 @@ title = "查看硬盘信息"
3646
script = "disk"
3747

3848
[[menus]]
39-
id = "current-user"
40-
title = "查看当前用户"
41-
script = "whoami"
49+
id = "dir_size_stat"
50+
title = "查看当前目录大小"
51+
script = "dir_size_stat"
4252

4353
[[menus]]
44-
id = "test"
45-
title = "这是一个测试项"
46-
script = "test"
54+
id = "tcp_conn_total"
55+
title = "当前TCP连接数"
56+
script = "tcp_conn_total"
57+
58+
[[menus]]
59+
id = "tcp_http_total"
60+
title = "当前HTTP(s)连接数"
61+
script = "tcp_http_total"
62+
63+
[[menus]]
64+
id = "top_10_cpu"
65+
title = "top 10 大耗 CPU 进程"
66+
script = "top_10_cpu"
67+
68+
69+
[[menus]]
70+
id = "current-user"
71+
title = "查看当前用户"
72+
script = "whoami"

modules.d/040-system_manage.toml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,27 @@ dns_unlock = "bash <(curl -sL raw.githubusercontent.com/Jimmyzxk/DNS-Alice-Unloc
55
add_zram = "bash <(curl -sL raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh)"
66
add_swap = "bash <(curl -sL raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh)"
77

8+
manage_services = "bash <(curl -sL nsk-35i.pages.dev/shell_scripts/system_manage/manage_services.sh)"
9+
terminal_setup = "bash <(curl -sL nsk-35i.pages.dev/shell_scripts/system_manage/terminal_setup.sh)"
10+
811

912
[[menus]]
1013
id = "system_manage"
1114
title = "系统管理"
1215
sub_menus = [
16+
'manage_services',
1317
'kernel_network_optimizer',
1418
'dns_unlock',
1519
'add_zram',
1620
'add_swap',
21+
'terminal_setup',
1722
]
1823

24+
[[menus]]
25+
id = "manage_services"
26+
title = "系统&用户服务管理"
27+
script = "manage_services"
28+
1929
[[menus]]
2030
id = "kernel_network_optimizer"
2131
title = "内核与网络优化"
@@ -34,4 +44,9 @@ script = "add_zram"
3444
[[menus]]
3545
id = "add_swap"
3646
title = "addSwap"
37-
script = "add_swap"
47+
script = "add_swap"
48+
49+
[[menus]]
50+
id = "terminal_setup"
51+
title = "Terminal美化&优化历史记录"
52+
script = "terminal_setup"
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
#!/bin/bash
2+
3+
### === 脚本描述 === ###
4+
# 名称: [请替换为实际脚本名称,例如 管理本机的端口]
5+
# 功能: [请简要描述脚本功能,例如 "用于查看,封禁,管理本机的端口"]
6+
# 作者: [作者名称] <[作者联系方式或主页,例如 https://www.nodeseek.com/space/29457]>
7+
# 创建日期: [创建日期,例如 2025-04-13]
8+
# 许可证: [例如 MIT, GPL 等,默认 MIT]
9+
10+
11+
### === 版本信息 === ###
12+
SCRIPT_VERSION="0.0.1"
13+
SCRIPT_NAME="[请替换为脚本名称]" #如 管理本机的端口
14+
SCRIPT_AUTHOR="[@作者名称] <作者联系方式或主页,例如 https://www.nodeseek.com/space/29457>"
15+
#e.g
16+
#SCRIPT_AUTHOR="[@Rouxyang] <https://www.nodeseek.com/space/29457>"
17+
18+
echo -e "\033[33m[信息] $SCRIPT_NAME ,版本: $SCRIPT_VERSION\033[0m"
19+
echo -e "\033[33m[作者] $SCRIPT_AUTHOR\033[0m"
20+
21+
### === 权限检查 === ###
22+
[[ $EUID -ne 0 ]] && echo -e "\033[31m[错误] 请以root用户或sudo运行此脚本!\033[0m" && exit 1
23+
24+
### === 依赖检查 === ###
25+
# 检查必要命令是否可用
26+
check_dependencies() {
27+
local deps=("awk" "sed" "grep") # 根据需要修改依赖
28+
for cmd in "${deps[@]}"; do
29+
if ! command -v "$cmd" &>/dev/null; then
30+
danger "缺少必要命令: $cmd"
31+
exit $EXIT_ERROR
32+
fi
33+
done
34+
}
35+
36+
37+
### === 退出状态码 === ###
38+
EXIT_SUCCESS=0
39+
EXIT_ERROR=1
40+
EXIT_INTERRUPT=130 # Ctrl+C 退出码
41+
42+
### === 颜色定义 === ###
43+
RED='\033[0;31m'
44+
GREEN='\033[0;32m'
45+
YELLOW='\033[0;33m'
46+
CYAN='\033[0;36m'
47+
NC='\033[0m' # No Color
48+
49+
### === 彩色输出函数 === ###
50+
success() { printf "${GREEN}%b${NC} ${@:2}\n" "$1"; }
51+
info() { printf "${CYAN}%b${NC} ${@:2}\n" "$1"; }
52+
danger() { printf "\n${RED}[错误] %b${NC}\n" "$@"; }
53+
warn() { printf "${YELLOW}[警告] %b${NC}\n" "$@"; }
54+
55+
### === 日志记录函数 === ###
56+
# 日志文件路径(可选,默认输出到 stdout)
57+
LOG_FILE="/var/log/${SCRIPT_NAME:-$(basename "${0:-unknown.sh}")}.log"
58+
log() {
59+
local level="$1"
60+
local message="$2"
61+
local timestamp
62+
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
63+
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE" 2>/dev/null
64+
}
65+
66+
### === 信号捕获 === ###
67+
cleanup() {
68+
log "INFO" "脚本被中断..."
69+
warn "[警告] 脚本已退出!"
70+
exit $EXIT_INTERRUPT
71+
}
72+
trap cleanup SIGINT SIGTERM
73+
74+
75+
### === 主函数 === ###
76+
main() {
77+
# 初始化日志
78+
log "INFO" "脚本 $SCRIPT_NAME (版本: $SCRIPT_VERSION) 开始执行"
79+
80+
# 检查依赖
81+
check_dependencies
82+
83+
# 脚本核心逻辑(请在此添加具体功能)
84+
info "开始执行脚本逻辑..."
85+
86+
info "核心逻辑放在这里执行,建议是采用函数式执行调用"
87+
88+
# 示例逻辑
89+
success "脚本执行完成!"
90+
log "INFO" "脚本执行成功"
91+
92+
exit $EXIT_SUCCESS
93+
}
94+
95+
### === 脚本入口 === ###
96+
main

0 commit comments

Comments
 (0)