linux 系统管理学习
Linux系统管理
一、进程管理
1.进程管理的作用
1)判断服务器健康状态
2)查看系统中所有进程
3)杀死进程
2.进程的查看
1)查看所有进程
ps aux 查看系统中所有进程
ps -le 查看系统中所有进程
-a:显示一个终端的所有进程,除了会话引线
-u:显示进程的归属用户及内存的使用情况
-x:显示没有控制终端的进程
-l:长格式显示。显示更加详细的信息
-e:显示所有进程
ps aux的输出
user:这个进程是由哪个用户产生的
pid:进程ID号
%CPU:该进程占用CPU资源的百分比
%MEM:该进程占用物理内存的百分比
VSZ:该进程占用虚拟内存的大小
RSS:该进程占用实际内存的大小
TTY:该进程是在哪个终端中运行的
pstree 显示进程树
pstree -p查看每一个进程的pid进程号
pstree -u 显示进程所对应的用户
3.top命令判断系统的健康状态
注:(1)维护服务器时,服务器如果是高压力服务器,最好一个周重启一次,如果是低压力服务器最好一个月重启一次。
(2)buffer与cache的区别:buffer(缓冲)加速了数据的写入,cache(缓存)加速了数据的读取。
4.杀死进程
1)杀死单一进程
kill 信号代号 进程号(不能跟进程名)
注:如果修改了apache配置文件需要重启服务,这样的话如果正要使用网页的人就会无法访问,需要一种解决办法能够在重新加载配置文件的情况下,用户可以正常访问网页,用ps -le查看apache进程号,然后利用 kill -HUP apache进程号重启Apache,但不会终止已经登录的用户。
2)杀死某一类进程
killall 信号代号 进程名
pkill 信号代号 进程名
注:如果有两个用户登录系统,如果一个用户想根据用户名杀死另一个用户,可发现所有登录用户的进程名都相同,这是为了确保不把自己杀掉,需要用w命令查看所有登录用户,查看用户运行状态。然后利用pkill -9 -t tty1(终端号)
5.修改进程优先级
利用ps -le 查看进程优先级,PRI与NI都代表优先级,数字越小代表该进程优先级越高。修改进程优先级时不能改PRI的值,可以改NI的值。
NI的值范围是-20-19
普通用户调整NI值得范围是:0-19,而且只能调整自己的进程。普通用户只能调高NI值,不能降低。
root用户才能设定NI值为负值
PRI(最终值)=PRI+NI
=====================================
nice 【选项】命令
#nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值
renice 【优先级】 PID
#renice只能修改某一个进程的优先级
二、工作管理(后台管理)
1.简介
工作管理指的是单个登录终端中同时管理多个工作的行为。
linux中查看有多少个进程在后台运行:jobs【-l】
windows后台管理就是把窗口最小化
linux后台管理的作用:为了使长时间运行的命令不卡在界面上
注:(1)只有当前的终端才能管理当前的后台工作,不能管理其他终端的后台工作。
(2)放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作
(3)放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。
2.方法
1)把进程放入后台
(1)执行命令+&(放入后台执行)
(2)在命令执行过程中ctrl+z(放入后台暂停)
2)查看后台的工作
jobs -l
3)将后台暂停的工作恢复到前台执行
fg %工作号(不是进程号)
4)将后台暂停的工作恢复到后台执行
bg %工作号 (不是进程号)
3.后台命令脱离登录终端执行
法一:把需要后台执行的命令加入/etc/rc.loacl文件
法二:使用系统定时任务,让系统在指定的时间执行某个后台命令
法三:使用nohup命令(标准)
三、linux系统资源查看
1.vmstat命令监控系统资源
vmstat 【刷新延时 刷新次数】
例:vmstat 1 3
2.dmesg命令显示的是系统的内核信息
例:dmesg | grep cpu
3.free命令查看内存使用状态
4.查看cpu信息
cat /proc/cpuinfo
5.uptime(top命令的第一行)
6.查看系统与内核相关信息
uname -a
7.判断当前系统的位数
file /bin/ls
8.查询当前linux系列的发行版本
lsb_realse -a
9.缓冲与缓存的区别
缓存(cache)是用来加速数据从硬盘中”读取“数据的,缓冲(buffer)是用来加速数据”写入“硬盘的。
四、系统定时任务
1.at一次性定时任务
1)确定at安装
chkconfig --list | grep atd #at服务是否安装
service atd restart #at服务的启动
2)at的访问控制
3)at命令
4)其他at管理命令
(1)atq #查看当前服务器上的at工作
(2)atrm #删除指定的at任务
2.crontab循环定时任务(不需要指定用户名)
1)crond服务管理与访问控制
(1)service crond restart
(2)chkconfig crond on
(3)访问控制
2)用户的crontab设置
(1)crontab -e(绑定当前的用户,谁执行这个命令,这个任务归谁管)
#进入crontab编辑界面。会打开vim编辑你的工作。
#*****执行的任务
例:10 * * * * /root/sh/apache_check.sh 说明这个任务会在1点10分,2点10分。。。。。12点10分
*/10 * * * * /root/sh/apache_check.sh 每隔十分钟执行一次
(2)contrab -l
#查看root用户的crontab任务
(3)crontab -r
#删除root用户的所有定时任务
3)crontab注意事项
(1)六个选项不能为空。如果不能确定使用”*“代替任意时间。
(2)crontab定时任务,最小有效时间是分钟,最大范围是月
(3)在定义时间时,日期和星期最好不要在一条定时任务中出现,因为他们都是以天为单位
(4)在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都是用绝对路径。
3.系统的crontab设置(需要指定用户名)
1)执行系统定时任务的方法
法一:把需要定时执行的脚本复制到/etc/cron.{datily,weekly,monthly}目录中的任意一个,这些文件通过/etc/anacrontab文件调用。但缺点是执行时间不确定。
法二:修改/etc/crontab文件
4.anacron配置
1)定义:anacron是用来保证在系统关机的时候错过的定时任务,可以在系统开机后再执行。
2)检测周期:
(1)anacron会使用一天,七天,一个月作为检测周期
(2)在系统的/var/spool/anacron目录中存在cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间。
(3)和当前时间做比较,如果两个时间的差值超过了anacron的指定时间差值,证明有cron任务被执行。
3)anacron配置文件
4)anacron执行过程
这里按照cron.daily工作来说明执行过程
(1)首先读取/var/spool/anacron/cron.daily中的上次anacron执行的时间。
(2)和当前时间比较,如果两个时间差超过一天,就执行cron.daily工作。
(3)执行这个工做只能在03:00-22:00之间
(4)执行工作时强制延迟时间为5分钟,再随机延迟0-45分钟时间
(5)使用nice命令指定默认优先级,使用run-parts脚本执行/etc/cron.daily目录中的所有可执行文件。
注:anacron只会执行/etc/crontab文件的定时任务
五、服务管理
1.linux运行级别
注:单用户模式:启动最小的服务,然后把多余的服务都不开启,只要能保证系统正常运行就好。
1)运行级别命令
(1)查看运行级别命令:runlevel
N(进入这个级别之前为哪个级别) 3(当前所在的级别好)
(2)修改运行级别命令:init 级别号
2)修改系统默认运行级别
vim /etc/inittab
#系统开机后直接进入哪个运行级别
2.linux服务的分类
注:RPM包与源码包的区别:安装位置不同,RPM安装包的位置作者指定,源码包手工指定安装位置;独立的服务都是直接在内存中运行的,占用内存资源,基于xinetd服务,如果某个用户要访问后台程序,先通过xinetd服务,然后再访问后台程序,
可发现xinetd服务回应的速度比独立服务要慢,优点是除了xinetd服务本身占内存,其他的都不占内存。xinetd服务在目前的系统中基本上淘汰了;
3.查询已安装的服务
RPM包安装的服务:chkconfig --list #查看服务自启动状态,可以看到所有RPM包安装的服务(RPM包的服务启动目录是/etc/rc.id/init)
源码包安装的服务:查看服务安装状态,一般是/usr/local下
4.服务与端口
1)查询系统中开启的服务
netstat -tlump
5.独立服务的启动
1)/etc/init.d/独立服务名
start|stop|status|restart
2)service 独立服务名
start|stop|restart|status
6.独立的服务自启动
chkconfig --list | grep httpd(查看apache服务是否为自启动)
1)修改服务为自启动
法一:chkconfig --level 2345 服务名 on
法二:修改/etc/rc.d/rc.local文件
法三:使用ntsysv命令管理自启动
7.源码包服务管理
所有的默认管理RPM包的命令都不能管理源码包
1)源码包安装服务的启动
使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法;
例:启动Apache服务:/usr/local/apache/bin/apachectl start
2)源码包服务的自启动
vi /etc/rc.d/rc.local
3)让源码包服务被服务管理命令识别
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache