文章目录
计划任务
crond配置文件
/etc/crontab //crontab配置文件
/etc/cron.deny //该文件中所列用户不允许使用crontab命令
/var/spool/cron/* //所有用户定时文件都存放此目录,文件以用户名命名
/var/log/cron //定时任务执行后的日志文件,可用来回溯
crond任务管理
-
crond
[选项] -
常用选项:
-e
编辑crontab文件内容crontab -e
-l
查看crontab文件内容crontab -l
-r
删除crontab文件内容crontab -r
-u
管理其他用户的计划任务crontab -u bad -l
-
直接修改/var/spool/cron/username
创建计划任务是RHCSA中必考的一道题目,所以需要知道怎么创建计划任务,以及使用其他用户创建计划任务
crond时间格式
# 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)
# | | | | |
# * * * * * command to be executed
* //表示任意的(分、时、日、月、周)时间都执行
- //表示一个时间范围段
, //表示分隔时段
*/n //表示每隔n单位时间, 如*/10 每10分钟
crond书写规范
脚本开头建议填写注释信息, 包括执行时间、周期、任务
计划任务执行脚本存放的路径/scripts/
执行shell脚本任务前加/bin/sh, 脚本结尾加&>/dev/null
例如:30 01 * * * /bin/sh /scripts/www_backup.sh &>/dev/null
调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode, 如需输出日志, 可重定向至日志文件
例如:30 01 * * * /bin/sh /scripts/www_backup.sh &>/tmp/www_backup.log
进程管理
systemd
- systemd是系统启动的第一个进程,即/sbin/init
- 配置文件:/usr/lib/systemd/system,/etc/systemd/system
Unit
-
systemd使用unit的概念来管理服务
-
配置文件:
- /usr/lib/systemd/system
- /run/systemd/system
- /etc/systemd/system
Unit类型
Service unit
文件扩展名为.service,用于定义系统服务Target unit
文件扩展名为.target,用于模拟实现“运行级别”- 0 关机
- 1 单用户模式
- 2 多用户模式
- 3 多用户模式
- 4 多用户模式
- 5 图形级别
- 6 重启
Device unit
文件扩展名为.device,用于定义内核识别的设备Mount unit
文件扩展名为.mount,用于定义文件系统挂载点Socket unit
文件扩展名为.socket,用于标识进程间通信用的socket文件Snapshot unit
文件扩展名为.snapshot,用于管理系统快照Swap unit
文件扩展名为.swap,用于标识swap设备Automount unit
文件扩展名为.automount,用于实现文件系统的自动挂载点Path unit
文件扩展名为.path,用于定义文件系统中的一个文件或目录
systemctl
-
语法:
systemctl
命令 name[.service|.target] -
常用命令:
start name.service
启动服务stop name.service
停止服务restart name.service
重启服务status name.service
查看服务状态mask name.service
禁止设定为开机自启unmask name.service
取消禁止设定为开机自启enable name.service
设定某服务开机自动启动disable name.service
禁止服务开机自动启动
-
不常命令:
try-restart name.service
服务已经启动则重启,服务未启动则不做任何操作reload-or-restart name.service
重载或重启服务reload-or-try-restart name.service
重载或条件式重启服务list-dependencies name.service
查看服务的依赖关系is-active name.service
查看某服务当前激活与否的状态is-enabled name.service
查看服务是否开机自动启动isolate name.target
切换至某级别
如:
systemctl isolate graphical.target
切换至图形界面list-unit-files --type service
查看所有服务的开机自动启动状态(是否开机自启)get-default
查看默认运行级别set-default name.target
设置默认运行级别hybrid-sleep
混合睡眠,快照并挂起
在平时我们启动相关的服务时,可以不用末尾的.service也是可以的,有的也是可以Tab补全的
进程分类
前台进程
- 与终端相关的进程,通过终端启动的进程
守护进程
- daemon,与终端无关的进程(如内核),在系统引导过程中启动的进程
进程状态
Excuting
运行Ready
睡眠Uninterruptible sleep
不可中断的睡眠Interruptible sleep
可中断的睡眠Zombie
僵尸进程,不释放占据的内存Stopped
停止,暂停于内存中,不会被调度,除非手动启动
进程优先级
-
0-139,数字越小,优先级越高
- 0-99:实时优先级,内核调整
- 100-139:静态优先级,用户可控制
nice
- nice的范围是(-20,19),-20对应100,19对应139
- nice级别越高,优先级越低
- nice级别越低,优先级越高
进程优先级调整
- 调整已经启动的进程的nice值:
- renice 优先级 进程id
- 在启动时指定nice值:(-20,19)
- nice -n 优先级 命令
进程信息保存在/proc/PID目录下
进程管理命令
ps(process state)
-
列出当前进程;
-
五种状态:
- D 不可中断
- R 运行
- S 中断
- T 停止
- Z 僵死
描述 | 状态标志 |
---|---|
进程已被停止(暂停) | T |
进程已释放了其所有资源(pid除外) | Z |
进程正在CPU上运行或者正在等待于CPU上运行 | R |
进程正处于睡眠状态,直至满足某些条件后才会启动 | D |
进程正在等在I/O或某些条件得到满足,并且绝对不会印象信号 | S |
-
常用选项:
-a
显示所有与终端有关的进程-u
显示进程是由哪个用户启动的-x
显示所有与终端无关的进程
-e //显示所有进程,与-A效果相同
-l //以长格式显示
-F //显示更详细的完整格式的进程信息
-f //显示更详细的完整格式的进程信息
-o //根据自己的需要选择要显示的字段
-H //以进程层级格式显示进程相关信息
[root@bad ~]# ps aux | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 53676 7624 ? Ss 21:40 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root 2 0.0 0.0 0 0 ? S 21:40 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 21:40 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 21:40 0:00 [kworker/0:0H]
- USER:用户名
- PID:进程id
- %CPU:进程运行占用CPU的百分比
- %MEM:进程占用内存的百分比
- VSZ:该进程使用的虚拟内存量,表示一个程序完全驻留在内存中占用的虚拟内存量
- RSS:该进程占用的固定内存量
- TTY:终端名
- STAT:进程开启时间
- START:进程的状态
- TIME:该进程实际使用的CPU时间
- COMMAND:进程运行指令
[root@bad ~]# ps -elf | head -5
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 13419 ep_pol 21:40 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
1 S root 2 0 0 80 0 - 0 kthrea 21:40 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 21:40 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 21:40 ? 00:00:00 [kworker/0:0H]
- UID:用户名
- PID:进程id
- PPID:父进程号
- C:运行的CPU编号
- PRI:优先级
- NI:nice值
- STIME:进程的启动时间
- TTY:终端名
- TIME:运行时的累积时长
- CMD:命令
pstree
- 显示当前系统的进程树
pgrep
- 在当前系统查找某些进程,只显示进程号
pidof
- 根据进程名查找PID号
vmstat
- 查看虚拟内存状态
- 用法:
vmstat
[选项]vmstat 2
表示每2秒刷新一次vmstat 2 5
表示每2秒刷新一次,刷新5次后退出
- 常用选项:
-s
显示内存的统计数据
后台运行作业
- 在命令后跟上&符号可以生成一个后台作业
- sleep 1000 &
jobs
- 命令用于显示当前所有的后台作业
+
命令将默认操作的作业-
命令将第二个默认操作的作业
fg
- 命令用于将后台作业调至前台运行
bg
- bg+作业号可使后台已停止的作业重新运行
kill
- kill加上作业号可以手动杀死指定作业
top
-
常用选项:
-d
设置延迟时长,top -d 1 表示每隔1秒刷新一次,默认每隔5秒刷新-b
批模式翻屏显示,默认只实时显示一屏
-
top命令交互式子命令:
M
根据驻留内存大小进行排序,默认根据CPU百分比排序P
根据CPU使用百分比进行排序T
根据累计时间(占据CPU时长)进行排序l
是否显示平均负载和启动时间t
是否显示进程和CPU状态相关信息m
是否显示内存相关信息c
是否显示完整的命令行信息q
退出top命令k
终止某个进程1
显示所有CPU的信息s
修改刷新时间间隔
以上内容均属原创,如有不详或错误,敬请指出。
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!