
linux
文章平均质量分 60
lucas1018
路漫漫其修远兮,吾将上下而求索
展开
-
linux配置虚拟ip
项目开发中有时会出现测试环境不够用的情况,这时就可以考虑配置虚拟 ip 在自己家目录下搭建新的测试环境了。配置虚拟 ip 命令一般如下:ifconfig eth0:1 10.35.128.11 netmask 255.255.255.0 up 配置后,在当前机器可以尝试 ping,应该是可以的。[root@localhost lucas]# ping 10.35.128.11PING 10.35.128.11 (10.35.128.11) 56(84) byt...原创 2021-04-29 19:54:27 · 1932 阅读 · 0 评论 -
redis模式匹配批量删除key
生产环境下 keys 命令是禁止运行的,所以只能通过 scan 来进行模式匹配。如匹配 lcs*:localhost:6379> scan 0 match lcs* count 100001) "8741248"2) 1) "lcs_xx_dynamic" 2) "lcs_xx_sz000667" 3) "lcs_xx_stock_name_/../../../../winnt/win.ini\x00." 4) "lcs_xx_stock_name_file...原创 2021-03-10 23:20:14 · 668 阅读 · 1 评论 -
聊聊 linux 虚拟内存
虚拟内存,是相对于物理内存而言的。虽然也冠以"内存",但它并不是一段存储空间,仅仅是对物理内存的一个抽象,是为了更加有效地管理物理内存而发明出来的一个玩意。 那么,如果没有虚拟内存,会有哪些问题呢?在讨论问题之前要清楚两点:物理内存基于成本的考虑,一般不会太大系统可同时运行多个进程 基于以上两点,如果没有虚拟内存,对物理内存直接操作,易产生以下问题:由于程序是运行在内存中的,当运行的进程过多,会导致一些程序无法正常运行;由于直接操作物理内存...原创 2021-02-14 22:56:12 · 373 阅读 · 0 评论 -
php加载脚本参数和环境变量
通过上篇文章聊聊php脚本执行流程我们知道 php 脚本执行流程大致分为以下几步:加载命令行参数和环境变量信号处理模块初始化请求初始化执行请求 今个就来看看是如何加载命令行参数和环境变量的,这块是在save_ps_args() 方法中处理的。extern char** environ;// save the original argv[] location herestatic int save_argc;static char** save...原创 2021-02-07 18:14:21 · 292 阅读 · 2 评论 -
redis之事件驱动
redis服务器是一个事件驱动程序,服务器主要处理以下两类事件:文件事件:redis服务器通过套接字与客户端进行连接,通信时会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。简言之文件事件就是服务器对套接字操作的抽象; 时间事件:redis服务器中的一些操作需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。 本文只借文件事件来研究redis中事件,时间事件以后再介绍。这里还是从initServer()方法中的部分代码看起:...原创 2020-07-05 00:22:17 · 567 阅读 · 0 评论 -
redis之unix域套接字应用
在redis源码的server.c文件中的initServer()方法中有这样一段代码:/* Open the listening Unix domain socket. */if (server.unixsocket != NULL) { unlink(server.unixsocket); /* don't care if this fails */ server.sofd = anetUnixServer(server.neterr,server.unixsoc...原创 2020-07-04 17:42:23 · 2290 阅读 · 0 评论 -
IPC之unix域套接字
前阵子看nginx配置文件,发现有段location模块是如下所写:location ~ [^/]\.php(/|$) { try_files $uri = 404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf;} 当时就觉得很奇怪,因为在这之前看到的都是下面这样的:location ~ .*\.php {...原创 2020-06-19 22:01:33 · 361 阅读 · 0 评论 -
open /dev/null: too many open files问题解决
昨晚收到服务器报警邮件,提示如下:open /dev/null:too many open files显然是服务器中打开的文件数太多,准确地说是某个进程打开的文件数太多。那么,我们先看下进程能够占用的最大文件描述符数是多少。[root@i data0]# ulimit -acore file size (blocks, -c) 0data seg size ...原创 2020-04-30 00:11:05 · 1690 阅读 · 0 评论 -
shell脚本获取日期
最近碰到两类需求,一类是某备份文件每天更新,导致磁盘空间不够,最终决定写个定期删除脚本,删除三天前备份文件;二是某类文件每天更新,需每天拉取一次,二该文件夹是以当天日期命名,如20200427,也是通过shell脚本解决。shell脚本中如果想获取当天日期,可以这么获取:today=`date +%Y%m%d`如果是想获取前一天日期,可以这么获取:last_day=$(date...原创 2020-04-27 23:21:33 · 3056 阅读 · 0 评论 -
linux用户和用户组相关操作
最近一直整rac集群这块,总是涉及到将用户添加到某用户组,或者从某用户组中移除某用户等操作,特在此记录下。将某用户添加到某用户组usermod -a -G groupName userName假设这里是grid用户,一开始只属于用户组grid,现将它添加到oinstall用户组2.将某用户从用户组中移除gpasswd -d userName groupName假设这里...原创 2020-02-25 00:20:45 · 213 阅读 · 0 评论 -
linux之文件描述符
文件描述符是一个非负整数。 按照惯例,Unix系统shell把文件描述符0与进程的标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误关联。 当应用程序打开一个现有文件或者创建一个新文件时,内核会向进程返回一个文件描述符。对于内核而言,所有打开的文件都通过文件描述符引用。 上图基本描绘出了文件描述符和文件的关系。...原创 2020-02-22 23:17:31 · 244 阅读 · 0 评论 -
I/O多路复用之select、poll和epoll
I/O多路复用是这样一种机制:通过一个进程去监视多个文件描述符,一旦其中某个描述符就绪(通常是读就绪或者写就绪),就去通知程序进行相应的读或写操作,如果始终没有描述符就绪,则一直阻塞直到超时。 目前支持I/O多路复用的常见系统调用有select、poll和epoll。注意,这三者本质上还是属于同步I/O。一、select select函数监视...原创 2020-02-20 19:32:41 · 444 阅读 · 0 评论 -
I/O模型
在讨论I/O模型之前,先看下标准输入。标准输入一般分为分为两个不同的阶段:等待数据准备好,也就是到达内核的某个缓冲区 将数据从内核缓冲区复制到应用进程缓冲区不同的I/O模型就是对上述两个阶段作不同的处理,以及两个阶段之间的衔接也不同。I/O模型一般有如下5种:阻塞式I/O 非阻塞式I/O I/O复用 信号驱动式I/O 异步I/O一、阻塞式I/O 阻塞式I/O...原创 2020-02-10 19:10:49 · 352 阅读 · 0 评论 -
服务器编程框架
目前常用的服务器又tomcat、Apache和nginx等,服务器种类繁多,但其框架基本都是一样的,不同之处在于它的逻辑处理。本文旨在谈论其基本框架。如图所示: 该图既能用来描述一台服务器,也可以用来描述一个服务器集群。描述对象不同,各个模块对应的实体也就有所不同。 I/O处理单元主要是负责服务器管理客户连接的模块。一般会有以下工作:等待并接...原创 2020-02-10 16:07:47 · 509 阅读 · 0 评论 -
配置ssh用户等效性
最近搭建rac集群需要配置ssh用户等效性,不过好像其他地方也有需要配置ssh用户等效性的,特在此记录下。先说原理,就是需要将访问其它节点的公钥写入authorized_keys文件中,该文件一般在家目录下的.ssh目录下。[oracle@rac1 .ssh]$ pwd/usr/home/oracle/.ssh[oracle@rac1 .ssh]$ lltotal 24-rw-r...原创 2020-01-26 23:06:35 · 635 阅读 · 0 评论 -
升级linux内核
前阵子在centos上安装一个包,提示kernel版本不够,需要升级。先通过uname -r查看当前内核版本:[root@localhost etc]# uname -r3.10.0-514.6.2.el7.toa.2.x86_64首先启用ELRepo仓库:rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org...原创 2020-01-26 21:21:02 · 374 阅读 · 0 评论 -
ssh访问远程服务器
通过ssh或者rsync访问远程服务器时,有时会遇到如下问题:ssh_exchange_identification: Connection closed by remote host最近半年我大概就遇到三次。出现这种情况,可以先登录需要访问的那台服务器,通过netstat -an | grep ssh命令查看,一般就是ipv4和ipv6同时监听导致的。这时需要查看/etc/ssh/...原创 2020-01-26 20:45:40 · 464 阅读 · 0 评论 -
curl多参数请求
最近在服务器上测试接口调用是否成功,之前也调用了一些,但都是一个参数的,都没问题。昨个要调用一个两个参数的方法,但服务器却只能接收到一个参数,到“&”就直接把后面抛弃了。开始是以为在接受请求处理的过程中,某个程序识别到“&”就直接抛弃了后面部分,就一直调试,一直到net/bufio包的readSlice()方法,到这里接受的就不包括&了。后来想着在浏览器中试一试,没...原创 2019-08-12 22:12:52 · 5568 阅读 · 0 评论 -
linux下安装php扩展
之前写的读取excel数据的脚本最近换到另一台服务器上了,在之前那台服务器跑得好好的,到这边就不行了,看错误日志原来是这台服务器没安装zip.so。可以通过php -m命令查看已经安装的扩展,此时确实没有zip。那就安装吧!先切换到源码目录下cd /usr/local/php-5.4.26/ext/zip然后在该目录下执行phpize命令,phpize是在安装目录下/...原创 2019-07-24 22:30:43 · 365 阅读 · 0 评论 -
ftp连接失败问题的解决
最近一直都是在phpstorm开发,其中配置了ftp。这样当写好一部分代码只需要保存一下,代码就直接上传到服务器上测试环境了,开发及其方便。然后从昨个下午开始,文件修改后上传不上去了,而ftp连接又是成功的,这就奇了怪了。一开始还以为是服务器不支持ftp就改成sftp了,也是连接成功但上传失败。后来想到可能是服务器上磁盘空间慢了,于是,查了一下:果然,代码所在的/dev/sda1...原创 2019-07-18 23:56:34 · 14270 阅读 · 0 评论