标签归档:linux

linux配置ntp服务时报错/usr/sbin/ntpd: error while loading shared的解决办法

centos安装好ntp软件后,启动ntp服务报错,提示systemctl status ntpd.service查看具体详情,输入此命令发现/usr/sbin/ntpd: error while loading shared libraries: libopts.so.25,即缺失该文件。

使用ldd /usr/sbin/ntpd,也可以发现该文件缺失,显示libopts.so.25 => not found。

下载对应libopts文件并安装。

再次启动ntp服务,service ntpd start,显示启动正常,问题解决。

linux提示无法打开目录:输入/输出错误的解决办法

现有一台linux服务器,进入/date目录后使用ls命令,提示无法打开目录:输入/输出错误,这种情况可以尝试修复分区来解决该问题。

具体操作步骤如下:
1、尝试umount该分区,umount -f /date,可能会报繁忙,无法umount。
2、当出现umount报错时,使用lsof |grep /date,来查看占用该分区的进程。
3、使用kill -9 xxxxx关掉进程后,再umount -f /date,此时可以正常umount。
4、使用修复命令xfs_repair /dev/mapper/datexx,/dev/mapper/datexx为/date对应的文件系统名称,可通过df -h或者cat /etc/fstab查看。
5、如果xfs_repair /dev/mapper/datexx报错,则xfs_repair -L /dev/mapper/datexx清除文件系统的日志,再执行xfs_repair /dev/mapper/datexx修复。
6、修复完成后mount -a重新挂载分区,此时再进入/date目录执行ls恢复正常。

注意:此种方式存在损坏数据的风险,可能会造成数据丢失。

linux让CPU利用率占满的命令

linux操作系统中,让CPU利用率占满的命令:

for i in `seq 1 $(cat /proc/cpuinfo |grep “physical id” |wc -l)`; do dd if=/dev/zero of=/dev/null & done

cat /proc/cpuinfo |grep “physical id” | wc -l 可以获得CPU的个数, 我们将其表示为N。
seq 1 N 用来生成1到N之间的数字,
for i in seq 1 N; 就是循环执行命令,从1到N,
dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU,没有IO操作。
由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%,这时调度器会调度每个dd命令在不同的CPU上处理。最终就实现所有CPU占用率100%。

这条命令会再后台去执行,如果想中断这条命令,可以执行:

1. fg 后按 ctrl + c (因为该命令是放在后台执行)
2. pkill -9 dd

fg命令可将后台命令恢复到前台执行。

该命令在很多场景非常有用。

hdparm命令介绍

通常情况下可以使用fdisk、df等命令查看硬盘的分区情况以及当前已使用空间大小、剩余空间大小等信息。但是如果要查看硬盘的硬件信息如 硬盘型号、序列号、已运行时间等信息该用什么工具查看呢?

在Linux下可以使用hdparm工具查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。我主要常用这个工具来测试硬盘速度。

hdparm(hard disk parameters)
功能说明:显示与设定硬盘的参数。

该命令用来获取或设置SATA/IDE设备的参数。注意了,既可以获取也可以设置,所以使用这个命令的时候务必要小心。当然我们只是为了获取查看硬盘信息,故不会对硬盘及系统造成什么危害。通常会配合 -i 或 -I(大写的i) 选项来取得硬盘的硬件信息。用法如下:

2.常用指令
a.安全擦除
hdparm –user-master u –security-set-pass PASSWORD /dev/sda 设置密码
hdparm –user-master u –security-erase PASSWORD /dev/sda 安全擦除
类似安全擦除:
hdparm –yes-i-know-what-i-am-doing –sanitize-crypto-scramle /dev/sdx
hdparm –yes-i-know-what-i-am-doing –sanitize-status /dev/sdx
b.设置硬盘容量(硬盘必须直连服务器,通过raid卡无法执行此项指令)
yum install sg3_utils.x86_64
sg_readcap /dev/sdb
hdparm -N VP –yes-i-know-what-i-am-doing /dev/sdb (VP: certain LBA blocks)
c.解锁
hdparm –user-master u –security-set-pass PASSWORD /dev/sda
hdparm –user-master u –security-unlock PASSWORD /dev/sda
hdparm –user-master u –security-disable PASSWORD /dev/sda
d.升级固件版本
hdparm –fwdownload /root/Desktop/xxx.bin –yes-i-know-what-i-am-doing –please-destroy-my-drive /dev/sdc
————————————————

hdparm -I /dev/sda

语法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p ][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]

参数说明:

-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 平谷硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。

hdparm常用参数使用举例:

1、显示硬盘的相关设置:
[root@oracle ~]# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

2、显示硬盘的柱面、磁头、扇区数:
[root@oracle ~]# hdparm -g /dev/sda
/dev/sda:
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

3、测试硬盘的读取速度:

[root@oracle ~]# hdparm -t /dev/xvda

/dev/xvda:
Timing buffered disk reads: 422 MB in 3.01 seconds = 140.20 MB/sec
[root@oracle ~]# hdparm -t /dev/xvda

/dev/xvda:
Timing buffered disk reads: 408 MB in 3.01 seconds = 135.59 MB/sec
[root@oracle ~]# hdparm -t /dev/xvda

/dev/xvda:
Timing buffered disk reads: 416 MB in 3.01 seconds = 138.24 MB/sec

4、测试硬盘缓存的读取速度:

[root@oracle ~]# hdparm -T /dev/xvda

/dev/xvda:
Timing cached reads: 11154 MB in 1.98 seconds = 5633.44 MB/sec
[root@oracle ~]# hdparm -T /dev/xvda

/dev/xvda:
Timing cached reads: 10064 MB in 1.98 seconds = 5077.92 MB/sec
[root@oracle ~]# hdparm -T /dev/xvda

/dev/xvda:
Timing cached reads: 10600 MB in 1.98 seconds = 5351.73 MB/sec


5、检测硬盘的电源管理模式:
[root@oracle ~]# hdparm -C /dev/sda
/dev/sda:
drive state is: standby [省电模式]

6、查询并设置硬盘多重扇区存取的扇区数,以增进硬盘的存取效率:
[root@oracle ~]# hdparm -m /dev/sda
[root@oracle ~]# hdparm -m 参数值为整数值如8 /dev/sda 附:硬盘坏道修复方法
检查:smartctl -l selftest /dev/sda
卸载:umount /dev/sda*
修复:badblocks /dev/sda

iostat命令介绍

引言:

一、概述

二、iostat用法

(1).用法:iostat [选项] [<时间间隔>] [<次数>]

(2). 命令参数:

(3).示例:

1.显示所有设备的负载情况

2.iostat -m  以M为单位显示所有信息

3.iostat -d sda     显示指定硬盘信息

4.iostat -t   报告每秒向终端读取和写入的字符数

5.iostat -d -k 1 1    查看TPS和吞吐量信息

6.iostat -d -x -k 1 1      查看设备使用率(%util)、响应时间(await)

7.iostat -c 1 2   查看cpu状态    间隔1秒显示一次,总共显示2次

三、总结

引言:

iostat主要用于监控系统设备的IO负载情况,根据这个可以看出当前系统的写入量和读取量,CPU负载和磁盘负载。

一、概述

iostat 主要用于输出磁盘IO 和 CPU的统计信息。

iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

二、iostat用法

(1).用法:iostat [选项] [<时间间隔>] [<次数>]

(2). 命令参数:

-c: 显示CPU使用情况

-d: 显示磁盘使用情况

-N: 显示磁盘阵列(LVM) 信息

-n: 显示NFS 使用情况

-k: 以 KB 为单位显示

-m: 以 M 为单位显示

-t: 报告每秒向终端读取和写入的字符数和CPU的信息

-V: 显示版本信息

-x: 显示详细信息

-p: [磁盘] 显示磁盘和分区的情况

(3).示例:

1.显示所有设备的负载情况

cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

备注:

如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

disk属性值说明:

磁盘名称

device:磁盘名称

tps:每秒钟发送到的I/O请求数.

Blk_read/s:每秒读取的block数.

Blk_wrtn/s:每秒写入的block数.

Blk_read:读入的block总数.

Blk_wrtn:写入的block总数.

2.iostat -m  以M为单位显示所有信息

3.iostat -d sda     显示指定硬盘信息

4.iostat -t   报告每秒向终端读取和写入的字符数

5.iostat -d -k 1 1    查看TPS和吞吐量信息

6.iostat -d -x -k 1 1      查看设备使用率(%util)、响应时间(await)

说明:

tps:每秒钟发送到的I/O请求数。

Blk_read/s:每秒读取的block数。

Blk_wrtn/s:每秒写入的block数。

Blk_read:读入的block总数。

Blk_wrtn:写入的block总数。

rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s

r/s: 每秒完成的读 I/O 设备次数。即 rio/s

w/s: 每秒完成的写 I/O 设备次数。即 wio/s

rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

wkB/s: 每秒写K字节数。是 wsect/s 的一半。

avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。

avgqu-sz: 平均I/O队列长度。

rsec/s: 每秒读扇区数。即 rsect/s

wsec/s: 每秒写扇区数。即 wsect/s

r_await:每个读操作平均所需的时间

不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。

w_await:每个写操作平均所需的时间

不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。

await: 平均每次设备I/O操作的等待时间 (毫秒)。

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

备注:

如果 %util 接近 100%,说明产生的I/O请求太多,

I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm

比较接近 await,说明 I/O 几乎没有等待时间;如果 await

远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。

如果avgqu-sz比较大,也表示有当量io在等待。

7.iostat -c 1 2   查看cpu状态    间隔1秒显示一次,总共显示2次

iostat 1 5

间隔1秒,总共显示5次

iostat -d 2

每隔2秒,显示一次设备统计信息.

iostat -d 2 3

每隔2秒,显示一次设备统计信息.总共输出3次.

iostat -x sda sdb 2 3

每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次.

iostat -p sda 2 3

每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次.

 三、总结

iostat是Linux中被用来监控系统的I/O设备活动情况的工具,是input/output statistics的缩写。它可以生成三种类型的报告:

CPU利用率报告

设备利用率报告

网络文件系统报告

iostat通过生成的报告来帮助管理员更好的调整系统设置来平衡各个物理磁盘之间的I/O负载。

centos7挂载本地yum源的方法

centos7虚拟机环境,光驱连接centos安装镜像。

一、创建目录挂载镜像
mkdir -p /mnt/cdrom
mount /dev/sr0 /mnt/cdrom/

二、创建本地yum源
在/etc/yum.repos.d目录下创建local.repo文件,写入内容:
[local]
name=local repo
baseurl=file:///mnt/cdrom
enable=1
gpgckeck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

三、将/etc/yum.repos.d目录下其余文件删除,或者移动到别的目录,使得/etc/yum.repos.d目录下只有local.repo

四、更新yum源
yum clean all
yum makecache
yum repolist all
步骤完成,可以使用yum命令安装了。

linux新增一块硬盘并做LVM分区的方法

linux新增了一块硬盘,首先通过fdisk -l查看:

然后fdisk /dev/vdb创建分区

以此输入n p

first sector和last sector默认,直接回车,输入t L

输入8e,采用LVM分区

按w保存。

然后pvcreate /dev/vdb1,vgcreate vg_vdb /dev/vdb1

lvcreate -L 1000G -n lv_u01 vg_vdb,mkfs.xfs /dev/vg_vdb/lv_u01

新建/u01目录,挂载分区mount /dev/vg_vdb/lv_u01 /u01

在/etc/fstab中添加/dev/mapper/vg_vdb-lv_u01 /u01 xfs defaults 0 0,即可。

Linux LVM分区扩容方法,可以参见https://www.eumz.com/2018-04/1461.html

centos7进入单用户模式修改密码的办法

启动linux,在这个界面时,按e,

按向下的箭头键,在linux16这一行的末尾LANG=en_US.UTF-8后面输入init=/bin/sh

然后按ctrl+x,进入单用户模式

此时在单用户模式下还不能修改密码,需要输入命令mount -o remount,rw /

然后通过passwd修改root密码,修改完成后,一定要输入touch /.autorelabel,不然启动不了

输入 touch /.autorelabel后输入exec /sbin/init即可使用刚才修改的root密码进入系统

linux ssh爆破应急响应相关命令

1、查看ssh端口(默认22)可疑连接
[root@host ~]#netstat -anplt |grep 22

2、查看除root外是否有特权账户
awk -F: ‘$3==0{print $1}’ /etc/passwd

3、查看可疑远程登录的账号信息
awk ‘/$1|$6/{print $1}’ /etc/shadow

4、查看ssh登录失败的记录
grep -o “Failed password” /var/log/secure|uniq -c

5、查看登录爆破的时间范围
grep “Failed password” /var/log/secure|head -1
grep “Failed password” /var/log/secure|tail -1

6、查看爆破的源IP
grep “Failed password” /var/log/secure|grep -E -o
“(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25
[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)”|uniq -c
| sort -nr

7、查看爆破用户名字典
grep “Failed password” /var/log/secure|
perl -e ‘while($_=<>){ /for(.*?) from/; print “$1n”;}’
|uniq -c|sort -nr

8、查看登录成功的日期、用户名、IP日志
grep “Accepted ” /var/log/secure | awk
‘{print $1,$2,$3,$9,$11}’

9、查看登录成功的IP
grep “Accepted ” /var/log/secure | awk ‘{print $11}’
| sort | uniq -c | sort -nr | more