GitHub自托管Runner旧版本文件残留问题求助
GitHub自托管Runner旧版本残留文件清理方案
官方配置说明
目前GitHub官方并没有内置的配置选项能自动清理Runner更新后留下的旧版本文件(就是你提到的bin.2.320.0、externals.2.321.0这类带版本号的文件夹),官方文档里确实没提这块的自动处理机制。
可行的清理方案
既然官方没提供,那就自己写个脚本定期清理就行,核心是先搞清楚当前Runner在用哪个版本,再删掉其他版本的文件夹:
1. 确认当前活跃版本
Runner安装目录里的bin和externals一般是软链接(Linux/macOS),指向当前正在使用的版本文件夹。你可以用命令直接提取版本号:
# 提取当前bin对应的版本号 CURRENT_BIN_VER=$(readlink bin | awk -F. '{print $2"."$3"."$4}') # 提取当前externals对应的版本号 CURRENT_EXTERNALS_VER=$(readlink externals | awk -F. '{print $2"."$3"."$4}')
Windows环境下可以查看快捷方式的目标路径,或者从Runner的日志里找当前版本信息。
2. 清理旧版本文件夹
写个循环遍历目录,把不是当前版本的bin.*和externals.*删掉:
# 清理旧bin文件夹 for dir in bin.*; do if [[ "$dir" != "bin.$CURRENT_BIN_VER" ]]; then rm -rf "$dir" echo "Deleted old version: $dir" fi done # 清理旧externals文件夹 for dir in externals.*; do if [[ "$dir" != "externals.$CURRENT_EXTERNALS_VER" ]]; then rm -rf "$dir" echo "Deleted old version: $dir" fi done
3. 定期自动执行
- Linux/macOS:把脚本加到
cron里,比如每周日凌晨2点跑一次,避免影响Runner任务。 - Windows:用任务计划程序创建定时任务,运行对应的批处理脚本。
注意点
- 跑脚本前先手动确认一下当前版本的文件夹,别误删正在用的
bin/externals指向的目录。 - 先在测试Runner上试一遍脚本,没问题再推到生产环境。
内容的提问来源于stack exchange,提问作者mlcscoder
相关产品推荐
相关产品推荐

