实战|Linux大文件切割】的更多相关文章

一个执着于技术的公众号 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件内容需要加载到内存中,涉及大量的磁盘读: 耗费资源过多,一个4G空间的日志文件需要至少4G的内存,更大的呢? 内容难以复用,分析过滤文件时会用管道对输出文件进行处理,大文件下难以复用: 文件传输困难,大文件需要传输给其他人进行分析,文件太大,全量传输带宽耗费大. 1 查阅大文件之痛 大数据离线处理框…
/********************************************************************** * Linux大文件分割splite * 说明: * 编译RK3288 Android源代码的时候发现,Android源代码是tar包被分割成四份, * 查了一下资料才知道用了splite进行分割: * * 2018-5-7 深圳 宝安西乡 曾剑锋 *****************************************************…
技术体系:html5(formdata) + java + servlet3.0+maven + tomcat7 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>大文件切割上传</title> <style> #wrap{width:600px; height:400px; border:1px solid #ccc; margin…
split提供两种方式对文件进行切割: 根据行数切割,通过-l参数指定需要切割的行数 根据大小切割,通过-b参数指定需要切割的大小 1.1 根据行数切割 如下以一个3.4G大小的日志文件做切割演示,每一个文件按照50000行做切割,指定文件名为split-line,-d参数以数字的方式显示 #源文件大小 [root@VM_3_50_centos -www.happylauliu.cn.gz -h -rw-r--r-- root root .4G 1月 : -www.happylauliu.cn.…
一.环境说明 某次项目需求中,在Linux上有批文本文件,文件文件都有几个G大,几千万行的数据.无论在Linux和Windows打开这么大的文件,基本上打开要卡半天,更别说编辑. 因此想到使用split命令对大文件进行切割,再分隔取其中的字段,最后导出文件(保留有用的字段). 二.split常用命令参数 -a. --后缀长度=N生成长度为N的后缀(默认值2) --附加后缀=后缀向文件名附加附加后缀 -b. --bytes=大小每个输出文件放置大小字节 -C. --line bytes=每个输出文…
本文主要介绍linux下两个命令:split和cat.其中,相信大家都熟悉cat命令,一般用来查看一个文件的内容,但是它还其它的功能,比如这里要介绍的文件合并功能,它可把多个文件内容合并到一个文件中.从split词义不拿理解,其为分割之意,常用于分割大文件.下面详细介绍. split命令 — 分割文件 语法:split [–help][–version][-][-l][-b][-C][-d][-a][要切割的文件][输出文件名] –version 显示版本信息 – 或者-l,指定每多少行切割一次…
背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现意外的情况. 但是在有些业务场景中,大文件上传又是必须的,比如邮箱附件,或者内部OA等等. 问题 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 upload_max_filesize = 2M //PHP最大能接受的文件大小 post_max_size = 8M //PHP能收到的最大PO…
在我的生活当中遇到磁盘快满了,这时候准备去删除一些大文件 于是我使用ncdu 查看了一下当前系统占用资源比较多的是那些文件,结果一看是elasticsearch的日志文件,好吧,竟然找到源头了,那就把它给删除了吧, 来到相应的路径下之后,然后粗暴一点,执行  rm   -rf   * 很高兴,终于把这些占用系统资源的坏东西给杀死了.满心欢喜的去查看磁盘情况. 给我当头一棒,磁盘并没有多大的变化,之后释放了100多M,但是我明明删除了30G的文件啊,这是怎么回事. 有问题不可怕,干净找baidu/…
文件上传服务器的大小是一定的,所以大文件可以切割成小文件,依次 传输,然后再拼接切割文件上传,用同步方式传输,为了防止异步传输 中多个块同时传输,文件拼接错误,导致文件损坏 前端页面 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax上传文件进度条显示</title> <script type…
在生产环境中有时候可能会遇到大文件的读取问题,但是大文件读取如果按照一般的手法.如cat这种都是对io的一个挑战,如果io扛得住还好,如果扛不住 造成的后果,如服务器内存奔溃,日志损坏 方法一: sed 例子: 按照你自己的日志格式 sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p' access.log >/home/test/test.log 新生成的test.log就是那个时间段的 方法二: 类似python的第三方工具 word='abc' w…
转载:https://www.jb51.net/article/101931.htm 背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示“该文件过大”.因为一般情况下,我们都需要对上传的文件大小做限制,防止出现意外的情况. 但是在有些业务场景中,大文件上传又是必须的,比如邮箱附件,或者内部OA等等. 问题 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 upload_max_filesize = 2M //PHP最大能接受…
Mysql复制,初始化服务器,备份/还原等大文件复制是很常见的任务,他们完成的实际任务可以概括为: 1,(可选)压缩文件 2,发送文件 3,解压文件 4,验证文件一致性 下面介绍几种方法: 1,最简单的: 先进行压缩,再用scp发送到服务器 gzip -c /folder/bigfiles/ > bigfiles.gz scp bigfiles.gz root@test.host:/folder/bigfiles/ 然后在服务器的解压: gunzip /folder/bigfiles/bigfi…
文件大小分割文件时,需要以-C参数指定分割后的文件大小: $ split -C 100M large_file.txt stxt   如上所示,我们将大文件large_file.txt按100M大小进行分割,并指定了分割后文件前缀stxt:当不指定前缀时,split会自动对分割文件进行命名,一般会以x开头. cat命令合并分割文件: $ cat stxt* > new_file.txt…
1. http://files.cnblogs.com/files/blackice/UploadDemo.rar 此demo是使用的 swfupload 2.http://download.csdn.net/detail/rememberme001/9873136 支持大文件传输,先把大文件分割成每个2M的小文件分批上传,再组合成一个大文件. 支持断点续传,MD5校验实现妙传功能,支持IE低版本.…
背景 工作中使用MapReduce任务导出一批含有路径的文件,共计行数300W+,需要检测文件是否在对应的服务器中存在,而文件所在的服务器并非hadoop集群的服务器,因此打算采用bash脚本进行.具体的方法如下(可直接看方法2,方法1效率较低): 2. 采用的方法 a. 方法1 原本打算使用如下脚本,进行简单验证: #!/bin/bash count= cat oriTest.txt | while read data do count=$(( $count+ )) echo $count d…
本文部分内容转自:https://blog.csdn.net/nightcurtis/article/details/51384126 1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类.即可以读取文件内容,也可以向文件中写入内容.但是和其他输入/输入流不同的是,程序可以直接跳到文件的任意位置来读写数据. 因为RandomAccessFile可以自由访问文件的任意位置,所以如果我们希望只访问文件的部分内容,那就可以使用Ran…
话不多说,直接上代码 import java.io.*; /*** * 分割大文件 * ( * SQL 文件太大(insert),第三方工具无法一次性读取,进行分割 * 生成 一个一个文件 * ) */ public class SplitFileUtil { // 使用示例 public static void main(String[] args) { // 目标文件 String targetFile = "F:\\logs\\insert11.sql"; // 存放的目录 St…
1.生成指定大小的文件 在当前目录下生成一个50M的文件: dd if=/dev/zero of=50M.file bs=1M count=50  truncate -s 2G ~/big.log.txt truncate -s 将文件缩减或扩展至指定大小 如果指定文件不存在则创建 如果指定文件超出指定大小则超出的数据将丢失 如果指定文件小于指定大小则用0 补足 ubuser@ubuser-OptiPlex-7010:~$ echo '123456'>a.txt ubuser@ubuser-Op…
使用tar命令进行压缩,使用split进行切割 压缩并分割: tar -zcvf - admin- |split -b 100m -d admin-.tar.gz 解压: 先合并成tar包在解压 cat admin-.tar.gza* > admin.tar.gz tar xvf admin.tar.gz…
现在很多公司都会把项目放在云服务器上,当我想把云服务器里面的代码和生成的文件 “sz 文件名称” down下来的时候,发现太大.云服务器不支持下载很大的文件.那么这种情况就需要使用split命令切割文件,然后down下来,在本地合并或传到需要的服务器上再合并. split命令语法如下:   split  [- -help][- -version][-a ][-b][-C ][-l ]  [要切割的文件]  [输出文件名前缀]       -a, --suffix-length=N : 使用的后缀…
inux split 命令 功能说明:切割文件. 语 法:split [--help][--version][-][-b ][-C ][-l ][要切割的文件][输出文件名] 补充说明:split可将文件切成较小的文件,预设每1000行会切成一个小文件. 参 数: -或-l 指定每多少行就要切成一个小文件. -b 指定每多少字就要切成一个小文件.支持单位:m,k -C 与-b参数类似,但切割时尽量维持每行的完整性. --help 显示帮助. --version 显示版本信息. [输出文件名] 设…
2点多接了个电话导致失眠,没办法,跑起来接着板砖了...... 废话不多说,直接走码... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #jdt{ width:300px; height:25px; } progress{ display:…
我们经常需要在机器之间传输文件.比如备份,复制数据等等.这个是很常见,也是很简单的.用scp或者rsync就能很好的完成任务.但是如果文件很大,需要占用一些传输时间的时候,怎样又快又好地完成任务就很重要了.在我的测试用例中,一个最佳的方案比最差的方案,性能提高了10倍. 复制文件 如果我们是复制一个未压缩的文件.这里走如下步骤: 压缩数据 发送到另外一台机器上 数据解压缩 校验正确性 这样做会很有效率,数据压缩后可以更有效的利用带宽 使用ZIP+SCP 我们可以通过ZIP+SCP的组合实现这个功…
今天在一台Linux系统里,使用df命令查看磁盘使用情况,发现/根分区使用了100% 然后删除一大文件/var/lib/pgsql/9.1/pgstartup.log,再使用df查看使用情况,显示内容不变.如下图所示: 在网上查了下,好像说是inode的原因,还没真正删除,也没怎么说清楚,于是笔者使用如下命令进行查看: [root@ ~]# lsof |grep deleted //lsof命令可显示系统打开的文件 经过命令我们可以看出虽然/var/lib/pgsql/9.1/pgstartup…
修改bin目录下catalina.sh if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out fi 修改为: if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina/"$(date +%Y-%m-%d)"…
分块传输的原理就是利用HTML5新增的文件slice截取函数. 代码如下: html: <input id="f" type="file" name="part" onchange="writeFile()"> JS: 核心部分已经加粗显示了,其他部分不用看,因为实现的方式有很多种,不一定要按照我的方式去写,但是核心是不会变的. var writeFile = function(){ var temp = null…
压缩命令主要用到tar打包和split分割,命令如下: tar czf - aaa | split -b 1024m - bbb.tar.gz_ aaa可以是文件也可以是目录, 大小可以是b.k.m这3个单位. 解压是: cat xxx.tar.gz_* | tar zvxf - 也可以先把包合起来再解压: cat xxx.tar.gz_* >xxx.tar.gz tar zvxf xxx.tar.gz 以上,如果有不同格式,请适当调整参数 转:http://blog.csdn.net/a5na…
1.分割 -- split命令 可以指定按行数分割和按字节大小分割两种模式. (1) 按行数分割 $ large_file.txt new_file_prefix 加上-d,使用数字后缀:加上--verbose,显示分割进度: $ split -l50000 -d large_file.txt part_ --verbose (2) 按字节大小分割 $ split -b 10m large_file.log new_file_prefix 2.合并 -- cat命令 $ cat part_* >…
马上要过年了,哎,回家的心情也特别的激烈.有钱没钱,回家过年,家永远是舔舐伤口最好的地方.新的一年继续加油努力. 上次做了前端的ajax的上传文件技术,支持单文件,多文件上传,并对文件的格式和大小进行检查和限制.但是上次还有个心结一直没解开,就是本来前端浏览器的文件切割已经好了,但是后台文件重组一直没搞明白和处理好,所以就搁置了.主要也是对自己的代码负责,因为自己本身都没把这个技术搞透彻,外加各种测试都没通过,不想这样打脸.所以这个心结一直憋了好久,做梦都在想.终于功夫不负有心人,这周终于将这个…
马上要过年了,哎,回家的心情也特别的激烈.有钱没钱,回家过年,家永远是舔舐伤口最好的地方.新的一年继续加油努力. 上次做了前端的ajax的上传文件技术,支持单文件,多文件上传,并对文件的格式和大小进行检查和限制.但是上次还有个心结一直没解开,就是本来前端浏览器的文件切割已经好了,但是后台文件重组一直没搞明白和处理好,所以就搁置了.主要也是对自己的代码负责,因为自己本身都没把这个技术搞透彻,外加各种测试都没通过,不想这样打脸.所以这个心结一直憋了好久,做梦都在想.终于功夫不负有心人,这周终于将这个…