代码之家  ›  专栏  ›  技术社区  ›  Melanchole

创建设置大小文件的Bash脚本

  •  0
  • Melanchole  · 技术社区  · 6 年前

    我正在尝试设置一个脚本,该脚本将创建空的。/tmp/目录中大小为24MB的txt文件。该脚本背后的思想是,监控服务Zabbix将注意到目录已满,并使用恢复表达式将其完全擦除。

    然而,我对Linux还不熟悉,似乎还停留在生成文件的脚本上。这是我目前写的。

    today="$( date +¨%Y%m%d" )"
    number=0
    
    while test -e ¨$today$suffix.txt¨; do
        (( ++number ))
        suffix=¨$( printf -- %02d ¨$number¨ )
    done
    
    fname=¨$today$suffix.txt¨
    
    printf ´Will use ¨%s¨ as filename\n´ ¨$fname¨
    printf -c  24m /tmp/testf > ¨$fname¨
    

    我在想我做错了什么与printf命令有关。但是,非常欢迎对脚本编写指南提供一些输入、建议和/或指导。

    非常感谢, 忧郁症

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ulrich Eckhardt    6 年前

    我想,文件中实际有多少字节并不重要,只要它填充了temp dir。因此,创建文件的正确工具是 dd ,它在每个Linux发行版中都可用,通常是默认安装的。

    检查手册页中的不同选项,但最重要的是

    • if :输入文件, /dev/zero 可能这只是一个无休止的字节流,值为零
    • of :输出文件,您可以保留必须生成的代码
    • count :要复制的块数,只需使用 24 在这里
    • bs :每个块的大小,使用 1MB 为此