云效写脚本删除 避免磁盘爆满 有什么推荐的吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
为了避免云效磁盘爆满,您可以采取一些措施来定期清理不再需要的文件和数据。首先,您需要明确云效通常没有内置的定期清理功能,因此,我们需要自己编写脚本或任务来实现这一目标。
具体来说,您可以利用脚本来定期删除那些过期的构建产物、日志文件或其他临时文件。此外,如果您在云效流水线中使用了缓存来提高构建和部署的效率,那么您也需要定期清理不必要的缓存数据,因为如果构建节点上的缓存已经占满了磁盘空间,可能会导致构建失败或缓慢。
在云效中编写脚本删除文件或目录可以避免磁盘爆满问题,以下是一些删除文件和目录的常用脚本:
删除单个文件:
# 删除指定路径下的单个文件
rm /path/to/file
删除目录及其内容:
# 删除指定路径下的整个目录及其内容
rm -rf /path/to/directory
需要注意的是,使用 rm -rf
命令删除文件或目录时,请务必确认您要删除的是正确的文件或目录,以免误删重要数据。
为了避免误删和意外删除,建议在编写脚本时添加一些安全措施,例如:
添加条件判断:在执行删除操作前,检查文件或目录是否存在。
# 判断文件是否存在,如果存在则删除
if [ -e /path/to/file ]; then
rm /path/to/file
fi
# 判断目录是否存在,如果存在则删除
if [ -d /path/to/directory ]; then
rm -rf /path/to/directory
fi
添加日志记录:在执行删除操作时,记录相关日志,以便追溯操作记录。
# 记录删除文件的操作日志
echo "Deleting file /path/to/file at $(date)" >> /path/to/logfile
# 记录删除目录的操作日志
echo "Deleting directory /path/to/directory at $(date)" >> /path/to/logfile
添加确认提示:在执行删除操作前,提示用户进行确认,以避免误删。
# 删除文件前提示确认
read -p "Are you sure to delete /path/to/file? (y/n) " confirm
if [ "$confirm" == "y" ]; then
rm /path/to/file
fi
# 删除目录前提示确认
read -p "Are you sure to delete /path/to/directory? (y/n) " confirm
if [ "$confirm" == "y" ]; then
rm -rf /path/to/directory
fi
在使用上述脚本进行删除操作时,请务必小心谨慎,避免误删重要数据。同时,建议在测试环境中进行验证后再在生产环境中执行删除操作。
如果您正在考虑编写一个脚本来清除云效上的临时文件或无用数据以释放磁盘空间的话,建议您遵循以下原则:
首先,明确哪些内容可以被视为临时文件或无用数据。例如,日志文件、缓存文件、编译后的二进制文件等等。确定这些内容后,可以在脚本中指定相应的目录或文件。
设计一个简单易用的脚本,在脚本中添加适当的安全措施,例如备份文件或确认提示等。您也可以考虑使用循环和条件判断语句,以便更高效地执行清理任务。
最后,在云效上安排定期执行清理脚本的任务,以便及时发现和清理不需要的数据。您可以使用 cron 或者其他的调度程序来进行此操作。
有个 只清理缓存的脚本:
runnerRunDir="/root/yunxiao//runner"
if ls $runnerRunDir >/dev/null 2>&1; then
echo [INFO] Clean up the build step log 3 days ago
find $runnerRunDir//ctl/ -name ".log" -mtime +3 -exec rm -rf {} +
find $runnerRunDir/__flow_logs/builds// -name ".log" -mtime +3 -exec rm -rf {} +
echo [INFO] Clean up workspace cache that has not changed for 15 days
find $runnerRunDir -maxdepth 2 -type d -name "cache" -mtime +15 -exec rm -rf {} +
find $runnerRunDir/flow_work/flow_builds// -type d -name "cache" -mtime +15 -exec rm -rf {} +
else
echo [INFO] $runnerRunDir not exist, skip clean it.
fi
此回答整理自钉群“云效答疑服务群”
删除文件https://help.aliyun.com/document_detail/215654.html?spm=a2c4g.322409.0.i6
该接口用于删除文件内容
请求方式:DELETE/api/v3/projects/[ProjectId]/repository/files
请求Action:DeleteFile
请求参数:
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。