当前位置: 首页 > news >正文

南昌专业的企业网站建设公司百度收录提交入口地址

南昌专业的企业网站建设公司,百度收录提交入口地址,网络服务抽成,采购网上商城在日常工作中#xff0c;为了验证某些场景下的功能#xff0c;经常需要人为构造一些大文件进行测试#xff0c;有时需要用大文件来测试下载速度#xff0c;有时需要用大文件来覆盖磁盘空间#xff1b;偶尔会看到一些网络博文会教大家如何构造大文件#xff1b;但是当需要…在日常工作中为了验证某些场景下的功能经常需要人为构造一些大文件进行测试有时需要用大文件来测试下载速度有时需要用大文件来覆盖磁盘空间偶尔会看到一些网络博文会教大家如何构造大文件但是当需要用到的时候却发现找不到文章了因此决定总结一下Linux下生成以及处理大文件的方法。 虽然 Linux 中有一些命令如vi、touch 等可以创建文件但是如果需要一个10G或者100G 的大文件这些命令就完全用不上了。这时就需要能快速生成大文件的命令下面将介绍几个命令以及他们的用法、差异。 一、生成大文件命令 1、dd dd (device driver) 命令表示用指定大小的块拷贝一个文件并在拷贝的同时进行指定的转换。 语法如下 dd if[source] of[destination] bs[block-size] count[counter]  从 source 读取并拷贝内容到 destination source 和 destination 都是文件前者是读取的文件后者是写入的文件。 bs: 表示块的大小单位是字节后缀中带了字母B的换算单位都是1000, 比如:1KB 1000 Bytes、1MB 1000 * 1000 Bytes、1GB 1000 * 1000 * 1000 Bytes, 后缀省略了字母 B的换算单位是 1024, 比如1K 1024 Bytes、 1M 1024 * 1024 Bytes、1G 1024 * 1024 * 1024 Bytes count: 表示块的数量表示 dd 命令需要执行多少次读取及写入的操作 bs 乘以 count 就表示目标文件的大小也即需要创建的文件的大小 比如下面的命令可以创建一个 10G 大小的文件 [rootlocalhost tmp]# dd if/dev/zero oftestfile bs1G count10 100 records in 100 records out 10737418240 bytes (11 GB, 10 GiB) copied, 5.11256 s, 2.1 GB/s [rootlocalhost tmp]# du -h testfile 10G     testfile上面的命令表示从 /dev/zero文件每次读取 1G大小的数据并写入当前目录中的 testfile 文件 bs1G表示块大小是1G, count10表示共有10个块 所以目标文件最终的大小是: 1G * 10 10G。 /dev/zero 是一个特殊的字符设备文件当读取它的时候它会返回空数据俗称为0源所以这里if/dev/zero表示从 /dev/zero读取空的数据写入 testfile 中。 使用命令 du -h testfile 可以看出 testfile 大小是的确是 10G。 从上述结果可以得知用 dd 命令创建一个 10G 大小的文件仅仅花费了约 5.1 秒速度是比较快的。 扩展/dev/urandom、/dev/random、/dev/zero、/dev/null解析 /dev/urandom和/dev/random都可以产生随机的ASCII码字符流其中/dev/random依赖系统中断当系统中断不足时/dev/random设备会“挂起”。/dev/urandom不依赖系统中断所以在生成特定大小文件时一般使用/dev/urandom不使用/dev/urandom。 /dev/zero “零”设备可以无限的提供空字符产生二进制的零流 /dev/null “空”设备像”黑洞“一样所有写入它的内容都会永远丢失也不会读取到任何内容。常用于禁止标准输出和标准错误的输出比如抓包命令tcpdump -i eth1 -w /tmp/packet.pcap /dev/null 2、yes dd 命令创建的是空字符的文件如果想创建包含自定义的字符的文件则可通过 yes 命令它的作用是循环输出一行指定的字符串直到进程结束为了控制文件的大小并打破循环我们借助 head 命令来实现。 使用 yes 命令创建包含指定内容文件的语法如下 yes [string] | head -c [size of file]  [name of file]string 是写入文件每一行的字符串 head -c [size of file] 是接收指定大小的字符串单位是字节后面也可以接 K、KB、M、MB、G、GB等单位 如下示例是向文件 yesfile 写入每行的内容是: This is my test file , 一直到文件大小达到 10G。 [rootlocalhost 73]# yes This is my test file | head -c 10G  yesfile [rootlocalhost 73]# du -h yesfile 10G     yesfile[rootlocalhost 73]# time yes This is my test file | head -c 10G  yesfilereal    0m6.635s user    0m0.882s sys     0m9.645s为了查看使用yes创建大文件的速度我们这里通过time命令量测yes指令执行时所需消耗的时间及系统资源从结果可以看出yes命令创建一个10G 的文件花费了 9.6 秒比dd命令慢一些。 3、fallocate fallocate 命令表示为文件预先分配或取消分配空间。 语法如下 fallocate -l [size of file] [name of file] -l 选项表示文件大小单位是字节后面可以接 K、KB、M、MB、G、GB等单位 如下示例是使用fallocate命令是创建一个 10G 大小的文件 [rootlocalhost 73]# time fallocate -l 10G falfilereal    0m0.027s user    0m0.000s sys     0m0.001s [rootlocalhost 73]# du -h falfile 10G     falfile这里通过time命令量测fallocate指令执行时所需消耗的时间及系统资源从结果可以看出:fallocate命令创建一个 10G 大小的文件竟然只花费了 0.001 秒速度可谓是极快的。 4、truncate truncate 命令表示将文件的大小缩小或扩展到指定的大小。 语法如下 truncate -s [file-size] [name of the file]-s 选项表示文件大小单位是字节跟 fallocate 命令一样后面可以接 K、KB、M、MB、G、GB等单位 如下示例为使用 truncate 命令创建一个 10G 大小的文件。 [rootlocalhost 73]# time truncate -s 10G trunfilereal    0m0.025s user    0m0.000s sys     0m0.001s #查看文件实际占用磁盘空间大小 [rootlocalhost 73]# du -h trunfile 0       trunfile #查看文件显示大小(逻辑大小) [rootlocalhost 73]# ll -h trunfile -rw-r--r-- 1 root root 10G Jul  3 04:41 trunfile这里通过time命令量测fallocate指令执行时所需消耗的时间及系统资源从结果可以看出truncate命令创建一个10G的文件也只花费了 0.001 秒和 fallocate 基本一样。但是, du -h trunfile 命令的结果显示 trunfile 大小为 0。 原因是 truncate 命令 创建的是一个稀疏文件(空洞文件)而不是实际的文件 稀疏文件不会占用实际的磁盘空间文件只是看上去逻辑大小比较大但实际占用空间却是0。 提示 ls显示文件的“逻辑上”的size 这不是文件真正占用磁盘空间大小这部分空间也会被其他进程使用 du显示文件“物理上”的size即du显示的size是文件在硬盘上占据了多少个block计算出来的 注意fallocate 命令只支持 btrfs、ext4、 ocfs2、xfs 这几种文件系统而 truncate 命令支持所有的现代文件系统。 二、优劣分析 对比上述不同命令创建 10G的文件的差异尤其是生成速度方面比较如下 dd                  5.1秒 yes                9.6秒 fallocate    0.001秒 truncate      0.001秒 根据上述结果可知不同命令创建文件的速度方面相差了几千倍为什么会有如此大的差距呢我想可能在于以下区别 dd   需要进行写文件操作进行大量的IO yes 需要进行写文件操作进行大量的IO fallocate 将空间分配给文件但不会写入任何数据到文件中 truncate 创建的是稀疏文件不会写入任何数据到文件中 dd和yes都有写文件操作而这需要大量的 IO 时间所以同样创建10G的文件它们比fallocate和truncate要慢很多。如果对生成文件的速度没有很高的要求且对内容无要求的情况下首选dd如果希望自定义文件内容的话则使用yes。如果想快速地生成超大文件比如 1 秒内创建一个 100G 的文件选择fallocate和truncate 如果还需要确保文件是实际占用磁盘空间的话则只能选择fallocate 。 大部分情况下fallocate都能满足要求因此Linux中生成大文件时建议使用fallocate命令。 三、大文件处理 在Linux下vim、cat打开超大文件受到内存硬件原因往往会遇到打不开或者内存使用过高导致卡机问题。针对Linux大文件处理一般通过Linux提供的命令split切割成小文件再进行处理。 1、文件分割 针对大文件处理Linux系统提供了split 工具将大文件切分为多个小文件以方便通过vi,cat等命令进一步处理。既然要生成多个小文件必然要指定切分文件的单位支持按行切分以及按文件大小切分另外还需解决小文件命名的问题。例如文件名前缀、后缀。如果未明确指定前缀则默认的前缀为”x”。 语法如下 split [选项]... [待分割的文件 [小文件的前缀]]选项含义如下 -a: 指定输出文件名的后缀长度(默认为2个:aa,ab...) -b指定每一输出文件的大小单位为 byte -C每一输出文档中单行的最大 byte 数 -d使用数字作为后缀 -l行数分割模式(指定每多少行切成一个小文件;默认行数是1000行) 示例如下 #行切割文件且使用数字后缀 [rootlocalhost test]# split -l 50000000 -d -a 3 yesfile yesfile_ [rootlocalhost test]# ls -l total 20971536 -rw-r--r-- 1 root root 10737418240 Jun 30 09:28 yesfile -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_000 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_001 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_002 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_003 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_004 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_005 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_006 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_007 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_008 -rw-r--r-- 1 root root  1050000000 Jun 30 09:39 yesfile_009 -rw-r--r-- 1 root root   237418240 Jun 30 09:39 yesfile_010 [rootlocalhost test]# [rootlocalhost test]# du -h yesfile_000 1002M   yesfile_000 [rootlocalhost test]# tail -5 yesfile_000 this is my test file this is my test file this is my test file this is my test file this is my test file #按字节大小分割 [rootlocalhost test]# split -d -b 1G yesfile yes_ [rootlocalhost test]# ls yes_00  yes_01  yes_02  yes_03  yes_04  yes_05  yes_06  yes_07  yes_08  yes_09  yesfile [rootlocalhost test]# du -h yes_00 1.0G    yes_00 #指定输出文件后缀长度 [rootlocalhost test]# split -d -b 1G yesfile -a 3 yes_ [rootlocalhost test]# ls yes_000  yes_001  yes_002  yes_003  yes_004  yes_005  yes_006  yes_007  yes_008  yes_009  yesfile2、文件合并 在 Linux 系统下使用 cat 命令进行多个小文件的合并也很方便。cat命令用于连接文件并打印到标准输出设备上。 语法如下 cat [-AbeEnstTuv] [--help] [--version] fileName参数说明 -n 或 --number由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank和 -n 相似只不过对于空白行不编号。 -s 或 --squeeze-blank当遇到有连续两行以上的空白行就代换为一行的空白行。 -v 或 --show-nonprinting使用 ^ 和 M- 符号除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -A, --show-all等价于 -vET。 -e等价于-vE选项 -t等价于-vT选项 示例如下 #把testfile的文档内容加上行号后输入yesfile这个文档里 [rootlocalhost tmp]# cat -n testfile  yesfile #使用tail读取yesfile文件的末尾几行第一列为行号 [rootlocalhost tmp]# tail yesfile 4993211 this is my test file 4993212 this is my test file 4993213 this is my test file 4993214 this is my test file 4993215 this is my test file 4993216 this is my test file 4993217 this is my test file 4993218 this is my test file 4993219 this is my test file #将test目录下之前分割的小文件通过cat命令进行合并重新生成yesfile文件 [rootlocalhost test]# cat yes_*  yesfile #生成后的yesfile文件大小依然是10G [rootlocalhost test]# du -h yesfile 10G     yesfile四、总结 通过本文的介绍我们了解了如何在Linux系统下进行大文件生成以及分割并掌握了一些常见的技巧和注意事项。无论是处理大文件还是日志记录都可以采用上述方法来提高效率。
http://www.zqtcl.cn/news/196037/

相关文章:

  • 网站 微信网络营销方案设计心得
  • 淘宝客 wordpress网站wordpress类似的工具
  • 农村建设房子建设网站建设渭南房产网站制作
  • php网站开发用什么win2008 iis 新建网站
  • 中山营销网站建设杭州网站建设开发有限公司
  • 被他人备案后做违法网站抖音seo推广
  • 手机网站广告代码南靖县建设局网站
  • 郑州网站建设智巢高德地图有外资背景吗
  • 网站开发常遇到客户问题wordpress怎么升级
  • 网站的空间是网站 建设 维护 公司
  • 关于网站建设的书籍网站设计的趋势
  • 临漳+网站建设深圳国贸网站建设
  • 安全的南昌网站制作上海网站建设网
  • 360网站制作潍坊医疗网站建设方案
  • 深圳网站策划公司域名解析暂时失败
  • 怎么做安居客网站wordpress 函数文件
  • 微名片网站怎么做html代码表示
  • 两学一做纪实评价系统网站如何做好百度推广
  • 网站设置手机才能播放企业网站开发需求
  • 网站建设微信运营销售做网站用啥语言
  • dw建设网站步骤活动汪活动策划网站
  • 民和县公司网站建设网站开发的特点
  • 模板企业快速建站上传网站中ftp地址写什么
  • 云南本地企业做网站太原网站制作公司哪家好
  • 西部数码域名网站模板wordpress抓取股票行情
  • 丰台深圳网站建设公司关于服装店网站建设的策划方案
  • win7 iis网站无法显示随州网站建设哪家实惠
  • 利用网站新媒体宣传法治建设建站哪个平台好
  • 网站seo课设wordpress 500 根目录
  • 电子商务网站建设的阶段化分析如何利用视频网站做数字营销推广