Linux基础Part5
Linux基础Part5——系统管理
[TOC]
任务调度
任务调度:是指系统在某个时间执行的特定的命令或程序。
系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
设置任务调度文件:/etc/crontab
用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份
执行
crontab –e
命令,输入任务到调度文件
1 | crontab [ -erl ] |
- -e:编辑定时crontab任务
- -l:查询crontab任务
- -r:删除当前用户所有的crontab任务
1 | */1 * * * * ls –l /etc/ > /tmp/to.txt # 每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令 |
- 第1个*:一小时中的第几分钟。0~59。
- 第2个*:一天中的第几小时。0~23。
- 第3个*:一个月中的第几天。1~31。
- 第4个*:一年中的第几月。1~12。
- 第5个*:一周中的星期几。0~7。(0、7都表示周日)
- *:代表任何时间
- ,:代表不连续的时间
- -:代表连续的时间范围
- */n:代表每隔多久执行一次
demo:
1 | 先编写一个文件 /home/mytask1.sh |
磁盘管理
分区基础知识
分区的方式:
- mbr 分区:
- 最多支持四个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- MBR 最大只支持 2TB,但拥有最好的兼容性
- gpt 分区:
- 支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
- 最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
- windows7 64 位以后支持 gpt
Linux分区
- 原理:
- Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
- Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- 硬盘说明:
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
- 对于 IDE 硬盘,驱动器标识符为“hdx
”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。 - 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样
1 | [root@VM-1-14-centos tmp]# lsblk # 老色比裂开 查看系统分区和挂载情况 |
在虚拟机上挂载一块硬盘
虚拟机添加硬盘
分区
fdisk /dev/sdb
格式化
mkfs -t ext4 /dev/sdb1
临时挂载
先创建目录/home/newdisk
挂载指令:mount /dev/sdb1 /home/newdisk
卸载指令:umount 挂载目录或硬盘目录
永久挂载
修改设置:vim /etc/fstab
添加一行:/dev/sdb1 /home/newdisk ext4 defaults 0 0
生效:
mount -a
磁盘查询
df :查询系统磁盘总体占用情况
1 | df [ -ahikHTm ] [ 目录或文件名 ] |
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
- -H :以 M=1000K 取代 M=1024K 的进位方式
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
- -i :不用硬盘容量,而以 inode 的数量来显示
- [ 目录或文件名 ]:指定挂载目录
demo:
1 | [root@VM-1-14-centos tmp]# df -h |
du:查询指定目录的磁盘占用情况
与 df 不一样的是,du 这个命令会直接到文件系统内去搜寻所有的文件数据。
1 | du [ -ahskm ] 文件或目录名称 |
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件夹而已
- -h :以人们较易读的容量格式 (G/M) 显示
- -s :列出总量而已,而不列出每个各别的目录占用容量
- -S :不包括子目录下的总计,与 -s 有点差别
- –max-depth=1 子目录深度
demo:
1 | [root@VM-1-14-centos tmp]# du -h # 默认为当前目录下文件夹(包含隐藏文件夹)的磁盘占用情况 |
实用指令
1 | [root@VM-1-14-centos ~]# ls -l | grep "^d" | wc -l # 统计当前目录下文件夹数量 |
网络配置
1 | [root@VM-1-14-centos ~]# ifconfig # 显示或设置网络设备 |
线程管理
进程的基本介绍
- 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号(进程号PID)。
- 每一个进程,都会对应一个父进程(父进程号PPID),而这个父进程可以复制多个子进程例如 www 服务器。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程(守护进程)则是实际在操作,但屏幕上无法看到的进程。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束。
查看进程
1 | ps [ -aux ] |
- -a:显示当前终端所有进程信息
- -u:以用户的格式显示进程
- -x:显示后台进程运行的参数
- -e:显示所有进程
- -f:全格式
1 | [root@VM-1-14-centos ~]# ps -aux | grep xxx # 查看是否有xxx进程 |
USER:用户名称
PID:进程号
%CPU:进程占用 CPU 的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TTY:终端名称
STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
START:进程的启动时间
TIME:CPU 时间,即进程使用 CPU 的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU 时间
CMD:启动进程所用的命令和参数
结束进程
1 | kill [ -9 ] 进程号 |
- 9:强制终止
demo:
1 | [root@VM-1-14-centos ~]# kill 1590 # 结束/usr/sbin/sshd进程,终止远程登录服务 |
进程树
1 | pstree [ -pu ] |
- -p :显示进程的 PID
- -u :显示进程的所属用户
服务(守护进程)管理
1 | service 服务名 [ start | stop | restart | reload | status ] |
查看服务列表
1 | ls -l /etc/init.d/ |
chkconfig指令
1 | chkconfig --list | grep 服务名 |
demo:
1 | # 案例 1: 请显示当前系统所有服务的各个运行级别的运行状态 |
动态监控进程
top 与 ps 命令很相似,都用来显示正在执行的进程。但不同在于 top 在执行一段时间可以更新正在运行的的进程。
1 | top [ -dip ] |
- -d:秒数,指定top命令间隔多少秒更新,默认3秒
- -i:使top不显示闲置或僵死进程
- -p:通过指定进程PID来显示相应进程状态
交互操作:
- P:以CPU使用率排序(默认此项)
- M:以内存使用率来排序
- N:以PID排序
- q:退出top
- k:杀死进程
1 | top - 21:15:35 up 7 days, 1:25, 1 user, load average: 0.00, 0.02, 0.05 # 当前时间 运行时间 登录用户数 负载均衡 |
查看网络状态
1 | netstat [ -anp ] |
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
1 | [root@VM-1-14-centos ~]# netstat -anp | grep sshd |
指定运行级别
运行级别说明:
- 关机
- 单用户(在实体机上开机时进入单用户模式,找回root密码)
- 多用户无网络
- 多用户有网络
- 保留级别
- 图形界面
- 系统重启
修改默认运行级别可以修改文件 /etc/inittab
中的 id:5:initdefault:
或者使用命令:init [ 0123456 ]
开机流程:
- 开机
- BIOS
- /boot
- init进程1
- 运行级别
- 运行级别对应的服务