文件描述符

linux加大服务器文件描述符

允我心安 提交于 2019-11-26 13:29:46
最简单的说,在 unix/liux 里面,你的服务只要开启一个进程,就要占用文件描述符的。liunx 默认 是 1024,如果描述符少了,你的访问量多了,你的服务器支撑不了,所以要把描述符加大。 #echo '* - nofile 65535 ' >>/etc/security/limits.conf #ulimit -n //查看当前文件描述符数量 有的时候,你的服务器硬盘/内存没那么大,如果文件描述符过大,访问量过来,有可能把服务器搞垮。但是网友们通常都改成 65535 来源: https://www.cnblogs.com/fanweisheng/p/11322243.html

Python os模块方法

℡╲_俬逩灬. 提交于 2019-11-26 12:14:04
os 模块提供了大量有用的方法来处理文件和目录。本章节中的代码实例是在 Ubuntu Linux系统上运行来演示。 大多数有用的方法都列在这里 - 编号 方法 描述/说明 1 os.access(path, mode) 使用真正的 uid/gid 来测试访问指定的路径。 2 os.chdir(path) 将当前工作目录更改为指定路径。 3 os.chflags(path, flags) 将指定的路径的标志设置为数字标志。 4 os.chmod(path, mode) 将路径模式更改为数字模式。 5 os.chown(path, uid, gid) 将指定的路径的所有者和组ID更改为数字uid和gid。 6 os.chroot(path) 将当前进程的根目录更改为指定的路径。 7 os.close(fd) 关闭文件描述符 fd 。 8 os.closerange(fd_low, fd_high) 将所有从 fd_low (包括)到 fd_high (不包括)的文件描述符关闭,并忽略错误。 9 os.dup(fd) 返回文件描述符 fd 的副本。 10 os.dup2(fd, fd2) 重复从 fd 到 fd2 的文件描述符,如果需要,首先关闭 fd2 。 11 os.fchdir(fd) 将当前工作目录更改为由文件描述符 fd 表示的目录。 12 os.fchmod(fd, mode

Linux命令基础5-文件重定向

本小妞迷上赌 提交于 2019-11-26 10:30:35
文件描述符是和文件的输入、输出相关联的 非负整数 ,Linux内核(kernel)利用文件描述符( file descriptor)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。常见的文件描述符是 stdin 、 stdout 和 stderr 。 系统预留文件描述符 0 —— stdin(标准输入) 1 —— stdout(标准输出) 2 —— stderr(标准错误) 重定向将输入文本 通过截取模式 保存到文件: echo "this is a text line one" > test.txt 写入到文件之前,文件内容首先会被清空。 重定向将输入文本 通过追加模式 保存到文件: echo "this is a text line one" >> test.txt 写入到文件之后,会追加到文件结尾。 标准错误输出: [root@localhost text]# cat linuxde.net cat: linuxde.net: No such file or directory 标准错误输出的重定向方法: 方法一: [root@localhost text]# cat linuxde.net 2> out.txt //没有任何错误提示,正常运行。 方法二: [root@localhost text]# cat

epoll 基本知识与使用

走远了吗. 提交于 2019-11-26 09:59:37
https://blog.csdn.net/qq_35721743/article/details/86742508 epoll 最大的好处在于它不会随着监听 fd 数目的增长而降低效率。 epoll 的接口,一共有三个函数, 都在头文件 #include <sys/epoll.h> 里。 1. 创建 epoll 句柄 int epfd = epoll_create(intsize); 创建一个 epoll 句柄,size 用来告诉内核这个监听的数目一共有多大。当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看 /proc/进程id/fd/, 是能够看到这个fd的,所以在使用完epoll后,必须调用 close() 关闭。 否则可能导致 fd 被耗尽。 函数声明: int epoll_create(int size) 该函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd 上是否发生以及发生了什么事件。size就是你在这个epoll fd上能关注的最大socket fd 数, 由用户确定, 只要内存空间够用。 2. 将被监听的描述符添加到epoll句柄或从epoll句柄中删除或者对监听事件进行修改 函数声明:int epoll_ctl( int epfd, int op, int fd, struct

Linux之恢复误删除文件

百般思念 提交于 2019-11-25 21:55:46
前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有 bug。 那么如果真的删除了不该删除的文件,比如数据库、日志或执行文件,该如何恢复? 模拟场景 1.删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: > rm -f /root/selenium/Spider/MySql.Data.dll > ll /root/selenium/Spider/MySql.Data.dll ls: cannot access /root/selenium/Spider/MySql.Data.dll: No such file or directory 2.恢复 (1)使用 lsof 命令查看当前是否有进程打开 /root/selenium/Spider/MySql.Data.dll文件: > lsof | grep /root/selenium/Spider/MySql.Data.dll 从上面可以看出,当前文件状态为已删除(deleted)。 (2)查看是否存在恢复数据: /proc/13067/fd:进程操作的文件描述符目录。 86:文件描述符。 > cat /proc/13067/fd/86 (3)使用I/O重定向恢复文件 > cat /proc

【IO多路复用】 -- 2019-08-07 10:55:51

天涯浪子 提交于 2019-11-25 20:15:21
原创: http://106.13.73.98/__/8/ 目录 一、IO模型介绍 二、阻塞IO(blocking IO) 三、非阻塞IO(non-blocking IO) 四、多路复用IO(IO multiplexing) 五、异步IO(Asynchronous I/O) 六、模型比较分析 七、关于select、poll、epoll 一、IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下: 同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。本文最重要的参考文献是Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“I/O Models ”