inode

Flume-Taildir Source 监控目录下多个文件的追加

谁说我不能喝 提交于 2020-01-14 16:54:51
Exec source 适用于监控一个实时追加的文件,但不能保证数据不丢失;Spooldir Source 能够保证数据不丢失,且能够实现断点续传,但延迟较高,不能实时监控;而 Taildir Source 既能够实现断点续传,又可以保证数据不丢失,还能够进行实时监控。 1 创建配置文件 flume-taildir-hdfs.conf 监控 /tmp/upload/ 目录下以 COMPLETED 结尾的文件 a3.sources = r3 a3.sinks = k3 a3.channels = c3 # Describe/configure the source a3.sources.r3.type = TAILDIR a3.sources.r3.filegroups = f1 # 需要监控的目录 a3.sources.r3.filegroups.f1 = /tmp/upload/.*COMPLETED # 读取到哪里做标记的文件,断点续传使用 a3.sources.r3.positionFile = /opt/apache-flume-1.9.0-bin/tail_dir.json # Describe the sink a3.sinks.k3.type = hdfs a3.sinks.k3.hdfs.path = hdfs://h136:9000/flume/tailDir/

linux的文件属性与文件权限

こ雲淡風輕ζ 提交于 2020-01-14 03:49:58
linux文件属性 396746 - rw-r--r-- . 1 root root 29 Dec 31 16:35 oldboy.txt inodek号 文件类型 文件权限 selinux 文件的硬链接数 所有者 组 大小 时间 文件名称 inode:用来存放内存属性的空间(除文件名外) 特点: inode存放文件属性 存放block的位置(block的指针) 创建一个文件要占一个inode inode节点号相同的文件,互为硬链接文件 inode号在一个分区内是唯一的 inode的默认大小为256k ls -i:查看inode df -i:查看剩余多少inode号 block:实际存放数据的位置 特点: block实际存放数据的位置 block的默认大小为4K(在centos6.x) 创建大文件用占用多个block,如果文件小于1k,剩余空间会被浪费 创建一个非空文件要占用一个inode和至少一个block 每读取一个block就会消耗一个I/0(磁盘读写) df -h:磁盘block用情况 文件类型 文件类型主要有三类:目录/普通文件/软链接 1.目录:d(directory) 2.软链接:l(softlink) 3.普通文件:(file) 其中普通文件分为三种: 3.1:文本文件(txt) 3.2:数据文件(data) 3.3:二进制文件(executable) 扩展文件类型

Linux文件和目录的属性及权限

老子叫甜甜 提交于 2020-01-14 03:48:56
Linux 文件和目录的属性及权限讲解 文字解释: 第一列:inode 索引节点 第二列:文件类型及权限 第三列:硬链接个数 第四列:文件或目录所属的用户(属主) 第五列:文件或目录所属的用户所归属的组(用户组) 第六列:文件或目录的大小 第七、八、九列:文件或目录的最近修改时间 第十列:实际的文件名或目录名 (文件名称存放在上级目录的 block 中) ls -l 显示的时间是修改时间。 [root@oldboy ~]# ls -l --time-style=long-iso total 9104 -rw-------. 1 root root 1056 2016-07-05 21:13 anaconda-ks.cfg drwxr-xr-x. 8 root root 4096 2016-07-18 17:57 data -rw-r--r--. 1 root root 9264484 2015-04-15 01:40 etc.tar.gz -rw-r--r--. 1 root root 21682 2016-07-05 21:13 install.log -rw-r--r--. 1 root root 5890 2016-07-05 21:12 install.log.syslog 文件的时间 说明 : Access: 2016-07-21 15:33:01.698142377

41-18 Linux目录与inode 深入理解

戏子无情 提交于 2020-01-13 07:56:47
1、关于Linux目录,文件,数据块 对于使用计算机的人而言,经常有一种 错误的认知:目录(或者说,文件夹)里面存放着文件。实际上,目录里面并不存放文件,以及文件数据。 实际上,目录是一个特殊的文件,针对这个特殊的文件也存在一些特殊的规则,比如利用命令cp /dev/null 并不能够销毁这个特殊的文件,因为目录的一些特殊的比特位保证了这一安全性,降低了人工操作带来的风险。在一些老版本的Unix系统里面,用户可以利用cat命令打开目录,查看里面的信息,在一些衍生于Debian系统的发行版Linux里面,也可以利用vi工具打开目录,查看一些信息。 在Linux里面,一个文件的信息被存放于两个位置: 1. 数据块(data block)当中 2. inode当中 硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取磁盘的时候,不会一个个扇区“挨个读取”,而是一次读取多个扇区,即一次读取一个“块”(block),这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。data block当中存放了文件的真实内容,而文件的元数据信息,被存放到了inode当中。data block和inode被文件系统有效地组织到了一起。 当文件系统被创建之后

Linux 文件系统 -- inode 笔记

落花浮王杯 提交于 2020-01-06 21:36:22
什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据 文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k 一个稍微大一点的文件则会存储在多个块中,那么如何快速访问到这些数据呢?答案就是 inode 在文件系统中,每个文件对象都对应着一个 inode,其中存储着常用的一些信息(所有者、创建时间、修改时间、文件权限、对应文件对象在系统中存储块的位置等等) 操作系统访问一个文件时分为三个步骤: 通过文件名找到对应的 inode 编号 通过 inode 编号访问对应文件对象的元信息 根据元信息找到文件对应的 block,读取数据 从上面的描述可以看出,inode 实际上就是文件系统中的一种索引,便于管理文件以及快速访问数据 关于 inode 的一些细节 inode 的内容 POSIX 标准定义了 inode 所包含的信息: 以字节为单位表示的文件大小 设备ID,标识容纳该文件的设备 文件所有者的 User ID 文件的 Group ID 文件的模式(mode),确定了文件的类型,以及它的所有者、它的 group、其它用户访问此文件的权限 额外的系统与用户标志(flag),用来保护该文件 3 个时间戳,记录了 inode 自身被修改(ctime, inode change time)、文件内容被修改(mtime,

Printing info of a file/director (inode)

佐手、 提交于 2020-01-06 03:33:07
问题 I want to print some information of a directory. My code is: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> #include <time.h> #include <string.h> int main (int argc, char *argv[]) { struct stat fileStat; int fd=0; if ( ( fd = open (argv[1] , O_RDONLY) ) == -1){ perror ( "open " ); exit (1) ; } if(fstat(fd, &fileStat)<0) return 1; printf("Information for %s\n",argv[1]); printf("---------------------

Linux 文件系统 -- inode 笔记

心不动则不痛 提交于 2020-01-04 22:39:37
什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据 文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k 一个稍微大一点的文件则会存储在多个块中,那么如何快速访问到这些数据呢?答案就是 inode 在文件系统中,每个文件对象都对应着一个 inode,其中存储着常用的一些信息(所有者、创建时间、修改时间、文件权限、对应文件对象在系统中存储块的位置等等) 操作系统访问一个文件时分为三个步骤: 通过文件名找到对应的 inode 编号 通过 inode 编号访问对应文件对象的元信息 根据元信息找到文件对应的 block,读取数据 从上面的描述可以看出,inode 实际上就是文件系统中的一种索引,便于管理文件以及快速访问数据 关于 inode 的一些细节 inode 的内容 POSIX 标准定义了 inode 所包含的信息: 以字节为单位表示的文件大小 设备ID,标识容纳该文件的设备 文件所有者的 User ID 文件的 Group ID 文件的模式(mode),确定了文件的类型,以及它的所有者、它的 group、其它用户访问此文件的权限 额外的系统与用户标志(flag),用来保护该文件 3 个时间戳,记录了 inode 自身被修改(ctime, inode change time)、文件内容被修改(mtime,

python-文件及文件夹操作

泄露秘密 提交于 2020-01-04 04:37:27
需要 import os . 表示当前目录 ..当前目录的父目录 s=os.getcwd() #得到当前工作目录 ,即当前python脚本工作的目录路径 D:\ss\py os.chdir(r'D:\ss') #改变工作目录 os.curdir #表示 当前目录( '.') s=os.pardir #表示 当前目录的父目录 ('..') os.chdir(os.pardir) 把工作目录改变为父目录 os.makedirs('dirname1/dirname2') #可生成多层递归目录 os.removedirs('dirname1/dirname2') #若dirname2目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 如果最里一层dirname2的目录不为空会抛出异常 os.mkdir('dirname') #生成单级目录 目录已经存在抛出异常 os.rmdir('dirname') #删除单级空目录,若目录不为空则无法删除,报错 a=os.listdir('.') # 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 不包含子目录下的文件和目录 os.remove() #删除一个文件 文件要是不存在,会报错 os.rename("oldname","newname") 重命名文件或目录 os.rename('test.txt','a.txt

Is it possible to recreate a file from an opened file descriptor?

瘦欲@ 提交于 2020-01-01 04:59:06
问题 Now, this question may seem weird, and it probably is, but to give some context, I've been reading this to learn about i-nodes in which the author gives an interesting example: { FILE *fp; fp = fopen("some.hidden.file","w"); unlink("some.hidden.file"); /* deletes the filename part */ /* some.hidden.file no longer has a filename and is truly hidden */ fprintf(fp,"This data won't be found\n"); /* access the data part */ /*etc*/ fclose(fp); /* finally release the data part */ } This allows to

linux 基础 文件系统 用户权限

耗尽温柔 提交于 2019-12-31 22:55:10
描述Linux系统的启动过程? 1.开机自检 BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6.从/etc/inittab读取运行级别 7.根据/etc/rc.sysinit 初始化系统(设置主机名 设置ip) 8.根据运行级别启动对应的软件(开机自启动软件) 9.运行mingetty显示登录界面 Linux系统的启动过程 临时修改 [root@template ~]# alias rm='echo command not found' [root@template ~]# rm command not found [root@template ~]# alias rm alias rm='echo command not found' ​ 永久设置 [root@template ~]# vim /etc/profile 按o 输入 alias rm='echo command not found' [root@template ~]#source /etc/profile ​​ 编辑 /root/.bashrc 把 alias rm='rm -i'这一行前面加上一个注释# 修改alis 查看 echo $LANG $PS1 [root@lewen-lnb ~]# echo $PATH /usr/local/sbin:/usr/local/bin: