进程管理工具
kill
man 7 signal
1) SIGHUP: 无须关闭进程而让其重读配置文件
kill -1 进程编号
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
9) SIGKILL: 杀死正在运行的进程
再生进程 kill -9 杀不掉
15) SIGTERM:终止正在运行的进程
kill -15/或不写(默认) +进程编号。正常终止进程
18) SIGCONT:继续运行
19) SIGSTOP:后台休眠
pidof +指令 可以查询该指令活动进程的编号
前后台的切换(fg,bg,Ctrl z)
想要操作在后台运行只需在后面加 &符号(交互式的指令如vim不能有效)
jobs 看后台命令的进程代号数字
fg 1 关掉后台数字1的进程
Ctrl z 将前台进程放到后台休眠
jbos
bg 1 将后台休眠进程放到后台运行
ps aux 查看程序进程编码
kill -18 +进程编号 后台运行
kill -19 +进程编号 后台休眠
kill -9 +进程编号 终止进程
pkill -t pts/2 关闭指定用户的进程(默认是15指令)
另一个终端的进程停止了
pkill -9 -t pts/2 (强制终止)
如果使用9强制指令会发现指定的终端连链接都掉了。,
pkill -u zczx 可以删除指定用户身份运行的进程
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示父进程为此处指定的进程的进程列表
nohup
nohup ping 127.0.0.1 & 可以使进程继续在后台运行,但是已经不能用jobs查看到进程代码数字,所以调不会去前台,只能用kill关闭
screen;COMMAND
还能用screen 回话功能继续调用进程,这个只要一链接回去自动默认调用回前台
顺序执行:f1.sh;f2.sh;f3.sh
并行执行:(f1.sh&);(f2.sh&);(f3.sh&) 同时开多个子进程同时运行各脚本进程
{ f1.sh& f2.sh& f3.sh& }
用ps aux 查看进程编号
用kill 指令终止
nice
nice -n -10 ping 10.1.0.1 指定进程的nice优先级别(-20到20)
已经在运行的进程默认是0,也可以不停止调优先级别
ps axo pri 查看后台进程权限
renice -n -10 进程编号
调整优先级别
任务计划
linux任务计划,周期性任务执行
分为一次性和周期性
at 一次性
batch: 系统会自动选择空闲时间运行
cron 周期性
at 一次性
rpm -q at 可以查询at服务是否安装
/var/spool/at 有新建的任务会在这里
/etc/rc.d/atd status 查询服务是否启动
chkconfig --list atd 可以查看服务是否开机启动,看5模式是否启动
chkconfig --level 5 atd on
runlevel 启动模式
(5,6模式的时候使用。)
7版本使用:
systemctl status atd 查看服务器是否启动
systemctl start atd
at -V 查看版本
at 10:12 指定时间
wall at job is starting 广播
touch /root/at.log
echo "at echo"
用Ctrl D 结束(如果按了Ctrl C 就清空了)
如果有echo的标准输出,不会在屏幕上输出,会自动转发成邮件给你
atq 可以查看到有多少个指定任务
at -l 效果一样
at -d 其实等于直接删除文件 ,/var/spool/at
at 9:00 2016-9-10-1 可以指定时间,年月日
wall holiday
-V 显示版本信息:
-l: 列出指定队列中等待运行的作业;相当于atq
-d: 删除指定的作业;相当于atrm
-c: 查看具体作业任务
-f /path/from/somefile:从指定的文件中读取任务
at 10:30 -f /root/at.sh
at 10:30 < /root/at.sh
at 10:30 <<eof
touch f1
eof
-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出
HH:MM [YYYY-mm-dd] 10:30 2016-10-1
noon, midnight, teatime(4pm) 04pm March 17
tomorrow 10:30 tomorrow
now+#{minutes,hours,days, OR weeks}
now + 5minutes 04pm + 3 days
at任务
vim /etc/at.deny (黑名单)
zczx 只需要加入用户的名字,就可以禁止该用户使用at。
vim /etc/at.allow 白名单(比黑名单优先)
如果设置了白名单,at只能是白名单有名字的用户才能使用了,即使不在黑名单中。默认这个文件是不存在的,需要自己建立。
如果两个文件都删了,除了管理root用户,其他用户一样使用不了。
cron 周期性
crond
systemctl status crond 7版本 查看服务是否启动
service crond status 6版本
rpm -ql cronie
chkconfig --list crond 可以查看服务是否开机启动
rpm -ql cronie-anacron 辅助包 用于移动端和家用机
系统cron任务:系统维护作业
/etc/crontab
用vim 可以增加计划任务
# Example of job definition:
# .----------------minute (0 -59)
# | .-------------hour (0 -23)
# | | .----------day of month (1 -31)
# | | | .-------month (1 -12) OR jan,feb,mar,apr...
# | | | | .----day of week (0 -6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
例如:晚上9点10分运行echo命令;
10 21 * * *centos /bin/echo "Howdy!"
离散值 1,10,20 2,4 1-10,20-28
1,10,20分钟 2,4小时 1到10,20-28号
*/10 每10分钟一次
@rebootRun 每次重启之后
@yearly 每年
@annually
@monthly 每个月
@weekly 每星期
@daily 每天
@hourly 每小时
cd /etc/cron.d
cat ohourly 可以查看到格式
系统的计划任务:
/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/ 脚本
/etc/cron.daily/脚本
/etc/cron.weekly/脚本
/etc/cron.monthly/脚本
systemctl systemd-tmpfiles-setup 7版本实现清除临时文件
/etc/cron.daily/tmpwatch定时清除临时文件。6版本
日志:/var/log/cron
可以用cat /var/log/cron 查看日志中的周期指令
crontab -e 新建一个周期任务
* * * * * echo zczxcron
0 12 * * * wall class over 12点发送广播
cd /var/spool/cron/ 保存会文件会在这个目录中
通过 crontab 的特殊权限普通用户可以读写。
crontab -r 删除计划任务
所新建的文件名字,就是用户名字命名。
文件名字要和所有者配对,任务才会生效。
发现连配置文件都一起删除
crontab
-l: 列出所有任务;
-e: 编辑任务;
-r: 移除所有任务;
-i:同-r一同使用,以交互式模式移除指定任务
-u user: 仅root可运行,指定用户管理cron任务
/etc/cron.{allow,deny}白名单、黑名单需自己创建
功效与at一样。
一次性作业使用at
重复性作业使用crontab
建立任务 at time crontab -e
列出任务表 at -l crontab -l
查看具体任务 at -c jobnumN/A
删除任务 at -d jobnum crontab -r
编辑任务 crontab -e
没有被重定向的输出会被邮寄给用户
根用户能够修改其它用户的作业
对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义
mandb 创建数据库 7版本使用
man 5 crontab
run-parts DIR可以运行指定目录下所有的可执行文件
anacron 6版本之后都取消了这个服务,让crond服务
系统启动和内核管理
linux 组成
Linux: kernel+rootfs
kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能
GNU/linux
内核设计流派:
单内核(monolithic kernel):Linux
把所有功能集成于同一个程序
微内核(micro kernel):Windows, Solaris
每种功能使用一个单独子系统实现
Linux内核特点:
支持模块化:.ko(内核对象)
如:文件系统,硬件驱动,网络协议等
支持内核模块的动态装载和卸载
(模块化)
组成部分:
核心文件:/boot/vmlinuz-VERSION-release
ramdisk:辅助的伪根系统
CentOS 5: /boot/initrd-VERSION-release.img
CentOS6,7: /boot/initramfs-VERSION-release.img
模块文件:/lib/modules/VERSION-release
先查找内核,再启动驱动
CentOS6,7: /boot/initramfs-VERSION-release.img 误删了这个文件可以通过开机进去救援系统
chroot /mnt/sysimage 切换回根目录
cd /boot
mkinitrd initramfs-`uname -r`.img `uname -r` 重新生成 (5,6版本使用)
Cento5,6
POST加电自检》MBR引导》GRUB》加载内核
centos6启动流程
1.加载BIOS的硬件信息,获取第一个启动设备。
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备。
4.核型执行init程序并获取运行信息。
5.Init执行/etc/rc.d/rc.sysinit文件。
6.启动核心的外挂模块(/etc/modprobe.conf)。
7.Init执行运行的各个批处理文件(scripts).
8.Init执行/etc/rc.d/rc.local.
9.执行/bin/login程序,等待用户登录。
10.登录之后开始以Shell控制主机。
bootloader: 引导加载器,引导程序
rpm -q grub 5,6版本是0.97
rpm -q grup2 7的版本直接成为2
kernel:
自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序(可能借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init
系统初始化:
POST --> BootSequence(BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只读) --> init(systemd)
/etc/.rc.sysinit
/etc/rc.d/rc.sysinit: 系统初始化脚本
(1) 设置主机名
(2) 设置欢迎信息
(3) 激活udev和selinux
(4) 挂载/etc/fstab文件中定义的文件系统
(5) 检测根文件系统,并以读写方式重新挂载根文件系统
(6) 设置系统时钟
(7) 激活swap设备
(8) 根据/etc/sysctl.conf文件设置内核参数
(9) 激活lvm及software raid设备
(10) 加载额外设备的驱动程序
(11) 清理操作
cd /etc/rc.d
K为头的不运行,S为头的运行。决定服务是否启动。
chkconfig --list 可以查看什么服务在什么模式下是否运行
chkconfig atd on 默认开启2,3,4模式
进入 /etc/init.d 下建立脚本
服务脚本
#!/bin/bash
#chkconfig:35 88 22 (3,5模式on 开启S88 关闭K22)
#description:texst service
case $1 in
start)
echo testsrv staring
;;
stop)
echo testsrv stop
;;
status)
echo testsrv status
;;
*)
echo ‘testsrv start|stop|status‘
;;
esac
记得写完要用chmod +x 给予执行权限
chkconfig --add testsrv 增加服务板块
service testsrv start 服务开启
stop 关闭
chkconfig --del testsrv 删除服务板块
who -r 可以看现在是什么模式
ntsysv
ntsysv --level=2
yum -y xinted
service xinted status 服务状态查询
start 服务开启
vim /etc/xinetd
chkconfig telnet on
非独立服务要xinetd 监听
建立于xineted 的运行
7版本全部服务都默认不启动,当需要一个服务就激活一个服务,这样能节省更多的资源。端口和服务独立开了。旧版本服务和端口是绑定关系。
破解5,6口令
进入按a模式
1 s S 单用户,登陆进去就是root用户
passwd 修改回密码 不过只能在本机使用。
本文出自 “zczx_展鸿” 博客,请务必保留此出处http://swzczx.blog.51cto.com/11767585/1854813
原文地址:http://swzczx.blog.51cto.com/11767585/1854813