知识点杂记
rpmspec --srpm -q shim.spec --qf “%{name}-%{version}-%{release}” -D “dist .al7”
磁盘不能umount处理办法:
使用umount -f强制卸载依然报错
使用fuser -mv -k /mnt 先杀死使用该目录的所有进程,然后在执行卸载操作
-m 后跟一个目录、文件或者设备名,列出使用该文件的进程PID
-v 显示详细信息
-k 杀死使用指定文件的所有进程
fuser的介绍:
fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、或者网络端口,并给出程序进程的详细信息.
fuser只把PID输出到标准输出,其他的都输出到标准错误输出
查看那些程序使用tcp的80端口:
fuser -v -n tcp 80
调度算法设置:
IO调度参数说明:
1.cfq是一种比较通用的调度算法,是一种以进程为出发点考虑的调度算法,保证尽量公平。
2.deadline是一种以提高机械硬盘吞吐量为思考出发点的调度算法,只有当有IO请求达到最终期限的时候才进行调度,非常适合业务比较单一并且IO压力比较重的业务,比如数据库。
3.noop在固态硬盘这种场景下,使用noop是最好的,deadline次之,而cfq由于复杂度的原因,效率最低。
IO调度文件:
/sys/block/sda/queue/scheduler
ssd盘io调度算法为deadline
echo “noop [deadline] cfq” > /sys/block/sda/queue/scheduler
IO调度更改方法:
临时更改:
echo “noop [deadline] cfq” > /sys/block/sda/queue/scheduler
永久更改【修改内核参数】:
# grubby --update-kernel=ALL --args="elevator=deadline" #deadline可以换成其他参数
# reboot
# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
Linux进程管理:
进程介绍:
Linux中的进程
进程:已经启动的可执行程序的运行实力!
1、PID:进程的ID(每一个新进程都有一个唯一的PID)
2、PPID:父进程的ID
3、任何一个进程都可以创建–个子进程
4、在redhat 7以上, 所有进程的父进程:systemd
5 在redhat 5, 6中, 所有进程的父进程:init
ps -aux = ps -ef 列出所有进程
ps -l 列出与当前用户有关的进程
ps -u +用户: 查看某一用户的进程
[admin@VM20190228-93 ~]$ ps
PID TTY TIME CMD
19536 pts/1 00:00:00 bash #我们执行命令行操作就是bash
29744 pts/1 00:00:00 ps
作业与会话:
监控进程(守护进程) :Linux系统启动时, 启动的进程, 并且在后台运行
交互进程:由一个shell启动的进程, 可以再前台运行, 也可以在后台运行
jobs:可以查看正在后台运行的作业
&: 在任意命令后面使用该符号,可以让命令在后台执行
echo haha ; sleep 3 ;echo ii
fg:将后台的命令调到前台来继续执行,不能放回后台了%作业编号
bg:将后台暂停的命令维味执行
%作业编号
Ps -j显示当前作业进程信息
TGID:线程组ID号
SID:回话ID号
如何将后台挂起的命令再次调到前台?
后台运行一个命令:echo hello;sleep 10000;echo china
将后台挂起:ctrl +z
查看下挂起(stop)的命令:jobs 【挂起后命令就stop了】
把挂起的命令重新调到前台:fg 4 【不能放回后台了】
如何将后台停止的命令,继续放在后台启动running?
先查看后台stop的任务:jobs
把任务[4]继续放到后台启动running:bg 4
再次查看下任务:jobs
查看当前作业的信息:ps -j
linux中find用法:
参数:
-name“xxx": 查找指定名称文件;
-user 用户名: 查找指定用户拥有的文件;
-group 组名: 查找指定组拥有的文件;
-mtime n: 查找在N天前被修改过的文件;(-n表示n天内。+n表示大于n天)
-atime.n: 查找在N天前被访问过的文件;
-type f: 查找指定类:_的文件;
-empty: 查找为空的文件;
·-size: 按容量大小查找;
·-perm mode: 查找指定属性的文件;
·-exec command() \;查找指定的文件并执行指定的命令;
·-newer文件名:查找比指定文件新的文件
案例:
Find查找最近5天内数据,并复制到指定目录下:
find / -type f -name ".rpm" -mtime -5 -exec cp -ar {} /tmp ;
【注意】上面查找.rpm 五天内修改的, cp -r表示:数据属性保存不变,-r是递归,{}代表占位,代表find的数据
批量删除:
ls | grep -v el77h | xargs rm -rf {};
find prebuilt_docs/html -type f ! -name ‘.html’ | xargs rm
find prebuilt_docs/html -type d | xargs rmdir --ignore-fail-on-non-empt
find example/ -type f ‘(’ -name '.am’ -o -name ‘*.in’ ‘)’ -exec rm -v {} ;
find prebuilt_docs/html -type d | xargs rmdir --ignore-fail-on-non-empty