
Linux
Blue summer
这个作者很懒,什么都没留下…
展开
-
Linux下查看网络设备类型
注:本文基于CentOS 7.4编写1、网络设备类型linux网络设备的抽象类型有:Bridge、VLAN、VETH、TAP等,我们可以通过ip命令查看系统支持的类型,[root@master ~]# ip link help...TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap | bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |原创 2021-09-27 21:43:07 · 4336 阅读 · 0 评论 -
CentOS 8重启网络服务
注:本文基于CentOS 8.4编写CentOS 7中支持network.service和NetworkManager.service 2种方式配置网络,而在CentOS 8中已经废弃network.service,需要通过NetworkManager.service配置网络。因此通过systemctl restart network已经无法使用了。[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 8.4.2105[ro原创 2021-07-07 22:38:46 · 14425 阅读 · 1 评论 -
CentOS 8.2 source package repo
CentOS 8.2 source package repoCentOS 8系列发行包centos-release里没有带source package的repo,需要自己添加,如下[root@localhost yum.repos.d]# cat CentOS-Sources.repo[base-source]name=CentOS-8.2.2004 - Base Sourcesbaseurl=http://vault.centos.org/8.2.2004/BaseOS/Source/gpgc原创 2020-09-16 21:48:54 · 698 阅读 · 0 评论 -
CentOS 7.X升级至CentOS 8.2
1、安装dnfCentOS 8开始使用dnf作为包管理器替代yum,参数和yum命令几乎一样,同时安装wget,后面需要单独下载一些 rpm包[root@localhost yum.repos.d]# yum install -y dnf wget...Installed: dnf.noarch 0:4.0.9.2-1.el7_6 Dependency Installe原创 2020-09-15 22:46:33 · 1972 阅读 · 0 评论 -
网卡中断数量差值
cat /proc/interrupts |grep eth > file1;sleep 60;cat /proc/interrupts |grep eth > file2;awk 'NR==FNR{for(i=1;i++<(NF-1);)a[FNR,i]=$i;next}{for(i=1;i++<(NF-1);)$i=$i-a[FNR,i]}1' file1 file2...原创 2020-08-18 22:44:31 · 495 阅读 · 0 评论 -
rsync同步文件简单使用
注:本文基于rsync-3.1.2-6.el7_6.1编写1、环境准备机器用途192.168.0.100rsync服务端192.168.0.120rsync客户端2、服务端配置安装rsync由于使用CentOS 7系统,因此,rsync已经安装好,如果没安装直接使用yum安装即可,yum install -y rsync配置rsyncd.co...原创 2020-01-15 17:47:54 · 686 阅读 · 0 评论 -
关于swap分区使用
#!/bin/bashfunction getswap {SUM=0OVERALL=0for DIR in find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]" ; doPID=echo $DIR | cut -d / -f 3PROGNAME=ps -p $PID -o comm --no-headersfor SWAP i...原创 2020-01-15 16:45:35 · 549 阅读 · 0 评论 -
IPMI配置及常用命令
1、关于ipmiIPMI,即智能平台管理接口(Intelligent Platform Management Interface),IPMI的核心是一个专用芯片/控制器(BMC),独立于操作系统、BIOS和处理器,因此属于带外管理设备。正是因为如此,我们可以通过BMC来控制或者获取系统的各种信息,而不需要关注系统是否正常。比如,系统卡住了,可以通过ipmi reset系统,而不需要跑到机房断电。...原创 2019-12-27 14:32:32 · 17714 阅读 · 2 评论 -
多队列网卡及RPS/RFS/XPS设置
1、关于多队列网卡通过lspci方式查看网卡信息,如果有MSI-X, Enable+ 并且Count > 1,则该网卡是多队列网卡。[root@localhost ~]# lspci -vvv | grep -A50 "Ethernet controller" | grep -E "Capabilities|Ethernet controller"01:00.0 Ethernet co...原创 2019-11-07 13:35:32 · 13538 阅读 · 0 评论 -
grep命令Binary file standard input matches
1、背景使用grep查找文件时蹦出这个错误,[root@localhost ~]# lspci -vvv | grep -A50 "Ethernet controller" | grep -E "Capabilities|Ethernet controller"Binary file (standard input) matches这我表示一脸懵逼了,我明明grep的都是文本,怎么就出...原创 2019-10-29 12:40:37 · 974 阅读 · 0 评论 -
查看pagesize和blocksize以及inodesize
1、查看pagesize[root@CentOS-7-2 ~]# getconf PAGE_SIZE40962、查看blocksize[root@CentOS-7-2 ~]# tune2fs -l /dev/sda1 | grep -i "block size"Block size: 4096原创 2019-10-29 12:39:16 · 2272 阅读 · 0 评论 -
网卡中断均衡设置
1、查询例如查询eth0的网卡中断号,在这里插入代码片原创 2019-10-26 15:44:55 · 3534 阅读 · 1 评论 -
使用yum命令创建缓存时报错:Peer cert cannot be verified or peer cert invalid
背景使用yum创建cache时,总是一直报错,排查根据报错提示,说的是证书的问题,于是一直在纠结证书。因为有使用到代理,还以为是代理哪里又出了问题。使用其他客户端执行该命令,确实成功的,这就说明代理服务器是OK的。那肯定是那台客户端机器出了问题。注意到错误提示中还涉及了有可能是系统时钟的问题,于是查看客户端的系统时间,果然有问题。时间设置成了2014年。。。把时间调校到当前时间,清除...原创 2018-09-26 15:44:22 · 3682 阅读 · 0 评论 -
gcc编译报错: /usr/bin/ld: cannot find -lc
背景在64位机器上编译32位可执行程序,出现以下报错,[root@CentOS-7-4 /home/syscall]# gcc -g -static -m32 open.c -o open32/usr/bin/ld: cannot find -lccollect2: error: ld returned 1 exit status解决方案这其实是因为缺少32位相关编译环境,需要安装g...原创 2018-12-27 21:01:48 · 1852 阅读 · 0 评论 -
Linux X86架构参数传递规则
背景突然好奇x86架构下函数参数怎么传递的,之前只是听别人说过通过寄存器,但是怎么传,什么顺序都没有仔细研究过,也没有实际测试过,因此就想着用实践来检验一下咯。传参顺序在32位和64位机器上,寄存器名称不同,64位机器为rxx,32位机器为exx。传参顺序如下,64位系统有16个寄存器,32位系统只有8个。e开头的寄存器命名依然可以直接运用于相应寄存器的低32位。而剩下的寄存器名则是从r...原创 2018-12-27 16:18:01 · 9125 阅读 · 0 评论 -
fatal error: gnu/stubs-32.h: No such file or directory
背景在64位系统上编译32位可执行程序时出现报错,[root@CentOS-7-2 /home/register]# gcc -g -m32 test.c -o testIn file included from /usr/include/features.h:399:0, from /usr/include/stdio.h:27, ...原创 2018-12-27 15:53:27 · 8927 阅读 · 2 评论 -
Linux使用audit审计用户执行命令
注:本文基于CentOS 6.5编写原创 2018-12-19 17:45:08 · 10052 阅读 · 0 评论 -
abrt服务启动失败(got sig 17)
现象启动abrt服务报错,[root@localhost home]# service abrtd start Starting abrt daemon: abrtd: Failed to start: got sig 17 [FAILED]原因查看/var/log/m...原创 2018-11-16 10:45:23 · 2667 阅读 · 0 评论 -
Linux使用PROMPT_COMMAND环境变量记录用户操作日志
注:本文基于CentOS 6.5 编写1、关于PROMPT_COMMAND环境变量Bash在显示PS1之前先执行PROMPT_COMMAND定义的内容,而PS1也就是linux的命令提示符,关于PS1详细设置可参考:Linux 提示符后面显示全路径。我们可以先感受一下PROMPT_COMMAND的功能效果,如果要显示命令执行的时间,可以如下操作。[root@CentOS-6-5 /]# e...原创 2018-12-18 16:14:45 · 12799 阅读 · 0 评论 -
Linux系统调用流程——open函数从用户态接口到内核
注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4,glibc版本为glibc-2.17-196.el7_4.21、关于系统调用linux内核其实可以看做是一个大型应用,其提供的接口就称之为系统调用。而我们平时经常用的open、close、read、write等函数,其实并不是linux提供的系统调用,而是glibc提供的接口,它封装了linux的相关系统调用,以一个...原创 2018-12-29 10:37:48 · 4282 阅读 · 1 评论 -
Linux使用snoopy记录命令执行日志
注:本文基于CentOS 6.5编写1、关于snoopysnoopy是一个开源的轻量级lib库, 可以记录系统中所有执行过的命令和参数。它是以预加载(preload)的方式实现历史命令的记录。 通过封装execv()和execve()系统调用,在发生这两个系统调用的时候记录下所需要的信息。2、安装在CentOS 6.5系统上可以直接通过yum方式安装,如果没有对应的rpm包也可以直接用源码...原创 2018-12-18 18:05:22 · 3134 阅读 · 1 评论 -
Linux由默认语言导致的uniq命令重复计数错误
背景今天遇到一件比较奇怪的事,同一个文件在统计重复行时出现了不同的结果,手动执行时去重后有2.5w+,放到crontab中执行,去重后居然有2.9w+。分析查看文件内容,发现文件中有一些特殊字符,猜想和系统设置的语言相关,于是测试了一下,[root@localhost ~]# export LC_ALL=""[root@localhost ~]# cat /tmp/myfile | so...原创 2018-12-29 16:50:52 · 649 阅读 · 0 评论 -
Linux shell脚本中发起tcp、udp连接
发个好玩的东东。通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。先看下bash man里面的介绍,/dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number ...原创 2019-01-10 21:18:15 · 14928 阅读 · 1 评论 -
rsyslog搭建远程日志服务器
背景在两台机器上,通过rsyslog提供的日志转发功能,将其中一台机器的日志转发到另一台,也就是需要一个日志服务器。机器环境服务端:CentOS 7.2系统客户端:CentOS 6.5系统服务搭建1、服务端服务端主要做的是配置监听端口,决定采用TCP还是UDP方式。本例子使用UDP方式,服务端配置/etc/rsyslog.conf如下,[root@CentOS-7-2 /var/l...原创 2019-01-29 14:46:32 · 3193 阅读 · 0 评论 -
CentOS通过raw表实现iptables日志输出和调试
背景当系统上iptables规则过多时,如果有出现丢包或者网络不通需要查看原因时,调试iptables规则就成了一个绕不过的问题。关于raw表下面我们分别在CentOS 6和CentOS 7系列上配置iptables的调试日志,这主要都是通过raw表实现的。因为raw表在所有iptables规则中优先级是最高的,raw表有两条链,prerouting和output,分别作为输入和输出的第一必...原创 2019-05-19 20:29:39 · 3870 阅读 · 0 评论 -
linux 小知识点大杂烩
1、指定cron任务的两种方式,一个是直接编辑/etc/crontab文件,然后保存,另一种方式是通过crontab -e 命令编辑。这种方式会在/var/spool/cron目录下生成一个和当前用户名一致的文件,文件内容就是我们刚才编辑的定时任务。因此两种方式都能做到重启不丢失。2、shell整数运算#自加 自减((a++))((a--))#两个变量相加 相除$((a+b)...原创 2018-03-30 10:42:15 · 190 阅读 · 0 评论 -
使用yum下载rpm源码包
背景在定位问题时,经常需要下载源码包,总是在网上各处找,很不方便。今天才知道可以直接使用yum命令下载,因此记录一下。准备环境需要安装yum-utils组件。操作yum-utils组件里提供了yumdownloader 命令,主要有以下几个选项, yumdownloader options: --destdir=DESTDIR destination directory ...原创 2018-09-20 16:25:27 · 6887 阅读 · 0 评论 -
解压和重新打包initrd
解压:[root@CentOS-6-5 /boot]# mkdir test[root@CentOS-6-5 /boot]# cd test/[root@CentOS-6-5 /boot/test]# zcat ../initramfs-2.6.32-431.el6.x86_64.img | cpio -idm97565 blocks[root@CentOS-6-5 /boot/t...原创 2018-09-12 10:23:02 · 1232 阅读 · 0 评论 -
while read line只能读一行内容
今天写了个脚本,主要功能是要远程登录一批机器执行命令。自然而然想到的是把机器ip列表放到文件中,然后使用while read line,在循环里用ssh远程登录并执行命令。脚本大概如下:#!/bin/bashfile=$1...原创 2018-05-28 14:51:30 · 8348 阅读 · 1 评论 -
libpopt的使用(转载)
更新日志: 2012.02.27 更新(校正并基本完成选项表部分内容的翻译) 2012.02.28 更新(完成popt基本使用的第1部分以及第2部分的内容翻译) 2012.03.01 更新(完成popt基本使用的全部翻译——剩下的3、4、5部分,增加示例部分)软件安装:ubuntu (deb)$ apt-cache search popt|headlibpopt-dev -...转载 2018-05-25 22:16:36 · 884 阅读 · 0 评论 -
gcc 常用编译选项
gcc编译选项: -I:指定头文件路径;如 gcc -I./include -D:定义一个宏;如 gcc -DHAVE_CONFIG_H,定义宏HAVE_CONFIG_H -Wall:开启所有错误提示,可理解为warinig all -g:编译过程中保留调试信息,以便gdb能够调试 -O2:指定编译优化等级为2,optimization -pipe:...原创 2018-05-25 18:14:49 · 3567 阅读 · 0 评论 -
Kickstart详解(转载)
一、kickstart是什么 许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案. Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文...转载 2018-04-18 11:09:37 · 6528 阅读 · 0 评论 -
简单内核模块---通过网卡名称获取网卡对象
借用helloworld ko模板,通过网卡名称,如eth0,lo等,获取该网卡设备,并打印索引号ifindex。 hello.c如下:/* hello.c */#include <linux/module.h>#include <linux/kernel.h>#include <linux/sched.h>#include <asm/cur...原创 2018-04-12 11:39:21 · 1505 阅读 · 0 评论 -
CentOS 7.2设置runlevel--运行模式
今天装了一下CentOS 7.2的系统,装起来发现默认是进入图像界面,即X Window。这不要紧,关键是很慢,用惯文本模式的我表示不习惯。所以我就要改回来。如何修改一般设置runlevel是在/etc/inittab文件中,但是CentOS 7系列使用systemd,弃用了inittab。首先查询一下当前的runlevel,systemctl get-default显示的是graphical.ta原创 2018-02-28 14:22:25 · 3602 阅读 · 0 评论 -
基于TCP通信的简单服务端和客户端程序
背景因为最近在研究网络相关的东西,因此经常要写程序做实验来验证。主要是TCP通信,因此就写了个简单的基于TCP通信的小程序,方便以后要使用的时候能直接复用,省的还要各种谷歌、百度。功能介绍写的很简单,实现的就是客户端读取键盘输入,发送给服务端,服务端打印出该输入。 因为只研究TCP通信原理,就没有再做其他的多线程并发之类的功能。代码1、先看服务端代码/*服务端原创 2018-01-29 20:38:07 · 9164 阅读 · 0 评论 -
linux 命令使用整理---不定期更新
经常有时候要用到某个命令的特殊功能,一时想不起来又要百度,所以就干脆专门整个博客来记录一下。 1、替换某行的某个字符串sed -i '2 s/A/B/' file该命令将file文件的第二行的A字符串替换为B字符串。2、grep某个字符串并高亮显示grep -r "string" --color file该命令查找file文件或目录下包含string字符串的那行,同时...原创 2018-02-05 16:20:38 · 228 阅读 · 0 评论 -
CentOS 7.4系统修改网卡名称
背景最近在使用CentOS 7.4系统,然后就要做一些小实验,发现当前系统网卡名,变成什么ens33。看着不习惯,于是就想改成ethX的格式,原谅我的强迫症。尝试因为之前一直玩的是SUSE系统,所有理所应当的是想通过udev规则来实现,然后就到/etc/udev/rules.d/目录,一脸懵逼的发现该目录下什么都没有。正常是只要修改该目录下的70-persistent-net.rule原创 2018-02-05 15:49:20 · 7037 阅读 · 0 评论 -
hping3的编译和安装
注:本次安装基于SUSE11SP3系统1、获取hping3源码包:http://www.hping.org/download.html ,我下载的是hping3-20051105.tar.gz这个版本。2、将压缩包放到系统上使用tar命令解压。tar -xf hping3-20051105.tar.gz3、进入解压后的目录,执行./configure && make执行后有以下报错:main.c:2原创 2017-10-28 22:47:19 · 6307 阅读 · 0 评论 -
Linux 提示符后面显示全路径
CentOS系列的系统默认提示符都不显示全路径,有时候需要使用当前目录的绝对路径还要敲个pwd,不喜欢。之前使用SUSE系统默认是显示全路径的,所以还是改成全路径吧。其实这个命令提示符格式是由PS1这个环境变量控制的,所以我们可以通过修改这个变量来达到我们的目的。修改如下:[root@localhost sh]# echo $PS1[\u@\h \W]\$[root@localho...原创 2018-05-31 13:50:07 · 14125 阅读 · 0 评论 -
Linux 登录时bash配置加载
1、起因通过ssh远程执行alias命令时,返回的结果和我预期的不一样,在CentOS系列上是正常的,但是在SUSE系统上就是空的。但是登录到SUSE系统上执行,返回结果却不为空。直觉告诉我这肯定是哪里的配置文件没有加载,肯定和/etc/profile、~/.bashrc之类的文件有关。2、bash的四种模式上面说到的那几个配置文件都涉及到bash的登录,login还是非log...原创 2018-06-22 15:27:09 · 2570 阅读 · 0 评论