【问题标题】:disk space limitation when creating war file创建war文件时的磁盘空间限制
【发布时间】:2015-07-08 11:55:00
【问题描述】:

我有 1 GB 的磁盘空间限制来托管我的应用程序,我已经使用了 700 MB。

但是我想使用这个命令从一个很大(大约 600MB)的目录中创建一个 war 文件:

jar -cvf ROOT.war folderPath

这就是我遇到配额限制而无法执行以下操作的原因。

我正在寻找一种在应用存档以节省磁盘空间时删除文件夹内容的方法

请注意,我无法在我的 ssh shell 中安装 zip 工具 ~

【问题讨论】:

  • 为什么不在本地机器上下载文件夹并创建war文件?
  • 因为上传是一场噩梦
  • @davidgiga1993 这是最糟糕的解决方案~
  • 暂时向您的提供商索要另一个 GB。
  • @DanFromGermany 这不是一个解决方案,就像我正在消除这个问题

标签: linux shell war


【解决方案1】:

代码在测试目录上工作,但无论如何都要先测试它,因为它会删除文件。效率不高。

假设:300MB 可用空间,用于破坏性压缩 600MB folderpath 目录。没有一个文件太大——如果 folderpath 中的任何文件是 300MB 或更大,这将失败。

注意:如果 '$out' 文件存在,什么也不做。首先find 将文件列表传递给while,如果循环中不存在“$out”,则创建它,不要更新它——如果它确实 存在,只需更新它。每次传递都会添加一个文件,然后将其删除,除非该文件是目录。循环完成后也删除空目录。

unset U ; in=folderpath ; out=ROOT.war ; \
[ -f $out ] || ( find $in | \
while read a ; do \
    [ -f $out ] && U=u ; \
    jar -cvf$U $out "$a" || { echo "Fail, stopping..." ; exit 1 ; } \
    rm -d "$a" 2> /dev/null ; \
done ; rm -rd $in ; )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2022-08-06
    • 2017-03-07
    • 2020-07-12
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多