Skip to content

Instantly share code, notes, and snippets.

@awaken233
Created December 4, 2025 08:55
Show Gist options
  • Select an option

  • Save awaken233/4ac9a28b9fc0cf43fefafcc65919a7e4 to your computer and use it in GitHub Desktop.

Select an option

Save awaken233/4ac9a28b9fc0cf43fefafcc65919a7e4 to your computer and use it in GitHub Desktop.
Clash 规则集更新脚本
#!/bin/bash
# 设置工作目录
CLASH_DIR="$HOME/.config/clash"
RULESET_DIR="$CLASH_DIR/ruleset"
# 创建目录
mkdir -p "$RULESET_DIR"
cd "$RULESET_DIR"
echo "$(date): 开始更新 Clash 规则文件..." >>/tmp/clash_update.log
# 定义下载函数
download_rule() {
local filename="$1"
local url="$2"
echo "$(date): 下载 $filename..." >>/tmp/clash_update.log
if curl -L -o "$filename" "$url" \
--connect-timeout 30 --max-time 60 \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" \
--silent --show-error; then
echo "$(date): ✅ $filename 下载成功" >>/tmp/clash_update.log
return 0
else
echo "$(date): ❌ $filename 下载失败" >>/tmp/clash_update.log
return 1
fi
}
# 初始化计数器
success_count=0
total_count=13
# 下载所有规则文件
download_rule "reject.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt" && ((success_count++))
download_rule "icloud.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt" && ((success_count++))
download_rule "apple.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt" && ((success_count++))
download_rule "google.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt" && ((success_count++))
download_rule "proxy.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt" && ((success_count++))
download_rule "direct.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt" && ((success_count++))
download_rule "private.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt" && ((success_count++))
download_rule "gfw.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt" && ((success_count++))
download_rule "tld-not-cn.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt" && ((success_count++))
download_rule "telegramcidr.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt" && ((success_count++))
download_rule "cncidr.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt" && ((success_count++))
download_rule "lancidr.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt" && ((success_count++))
download_rule "applications.yaml" "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt" && ((success_count++))
echo "$(date): 更新完成! 成功: $success_count/$total_count" >>/tmp/clash_update.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment