云效写脚本删除 避免磁盘爆满 有什么推荐的吗?[阿里云]

云效写脚本删除 避免磁盘爆满 有什么推荐的吗?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 为了避免云效磁盘爆满,您可以采取一些措施来定期清理不再需要的文件和数据。首先,您需要明确云效通常没有内置的定期清理功能,因此,我们需要自己编写脚本或任务来实现这一目标。

    具体来说,您可以利用脚本来定期删除那些过期的构建产物、日志文件或其他临时文件。此外,如果您在云效流水线中使用了缓存来提高构建和部署的效率,那么您也需要定期清理不必要的缓存数据,因为如果构建节点上的缓存已经占满了磁盘空间,可能会导致构建失败或缓慢。

  2. 在云效中编写脚本删除文件或目录可以避免磁盘爆满问题,以下是一些删除文件和目录的常用脚本:

    1. 删除单个文件:

      # 删除指定路径下的单个文件rm /path/to/file
    2. 删除目录及其内容:

      # 删除指定路径下的整个目录及其内容rm -rf /path/to/directory

      需要注意的是,使用 rm -rf 命令删除文件或目录时,请务必确认您要删除的是正确的文件或目录,以免误删重要数据。

    为了避免误删和意外删除,建议在编写脚本时添加一些安全措施,例如:

    1. 添加条件判断:在执行删除操作前,检查文件或目录是否存在。

      # 判断文件是否存在,如果存在则删除if [ -e /path/to/file ]; then    rm /path/to/filefi# 判断目录是否存在,如果存在则删除if [ -d /path/to/directory ]; then    rm -rf /path/to/directoryfi
    2. 添加日志记录:在执行删除操作时,记录相关日志,以便追溯操作记录。

      # 记录删除文件的操作日志echo "Deleting file /path/to/file at $(date)" >> /path/to/logfile# 记录删除目录的操作日志echo "Deleting directory /path/to/directory at $(date)" >> /path/to/logfile
    3. 添加确认提示:在执行删除操作前,提示用户进行确认,以避免误删。

      # 删除文件前提示确认read -p "Are you sure to delete /path/to/file? (y/n) " confirmif [ "$confirm" == "y" ]; then    rm /path/to/filefi# 删除目录前提示确认read -p "Are you sure to delete /path/to/directory? (y/n) " confirmif [ "$confirm" == "y" ]; then    rm -rf /path/to/directoryfi

    在使用上述脚本进行删除操作时,请务必小心谨慎,避免误删重要数据。同时,建议在测试环境中进行验证后再在生产环境中执行删除操作。

  3. 如果您正在考虑编写一个脚本来清除云效上的临时文件或无用数据以释放磁盘空间的话,建议您遵循以下原则:

    1. 明确需要清理的内容

    首先,明确哪些内容可以被视为临时文件或无用数据。例如,日志文件、缓存文件、编译后的二进制文件等等。确定这些内容后,可以在脚本中指定相应的目录或文件。

    1. 脚本设计

    设计一个简单易用的脚本,在脚本中添加适当的安全措施,例如备份文件或确认提示等。您也可以考虑使用循环和条件判断语句,以便更高效地执行清理任务。

    1. 调度执行

    最后,在云效上安排定期执行清理脚本的任务,以便及时发现和清理不需要的数据。您可以使用 cron 或者其他的调度程序来进行此操作。

  4. 有个 只清理缓存的脚本:
    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
    此回答整理自钉群“云效答疑服务群”

  5. 删除文件https://help.aliyun.com/document_detail/215654.html?spm=a2c4g.322409.0.i6

    该接口用于删除文件内容

    请求方式:DELETE/api/v3/projects/[ProjectId]/repository/files

    请求Action:DeleteFile

    请求参数: