作业管理:
前台作业:通过终端启动,且启动后一直占据终端;
后台作业:通过终端启动,但启动后随即转入后台运行(释放终端)
将作业放入后台的操作
1)运行中的作业:ctrl+z
2)还未执行的作业:command &
后台作业虽然被送往后台运行,但其依然和终端相关,退出终端,将关闭后台作业,如果希望送往后台后,剥离与终端的关系:
nohup command &
screen command &
jobs:可以查看所有的作业
作业控制:
fg [[%]job_num]:把指定的后台作业调回前台
bg [[%]jpb_num]:让送往后台的作业在后台继续运行
kill[[%]job_num]:终止指定的进程
并行运行多个进程,从而可以提供效率
1) vi all.sh
f1.sh
f2.sh
f3.sh
2) (f1.sh&);(f2.sh&);(f3.sh&)
3) { f1.sh&;f2.sh&;f3.sh& }
进程优先级调整:
静态优先级:100-139
进程默认启动时的nice值为0,优先级为120
只有根用户才能降低nice值(提高优先级)
nice命令:
nice [option][command [arg]…]
renice命令:
renice [-n] priority pid…
查看:
ps axo pid,comm,ni
Linux任务计划
在未来的某个时间段执行一次任务:at
at [option]Time
选项:
-V 显示版本信息
-l 列出指定队列中等待运行的作业;相当于atq
-d 删除指定的作业,相当于atrm
-c 查看具体作业任务
-f /path/from/somefile 从指定的文件中读取任务
-m 当任务被完成之后,将给用户发送邮件,即使没有标准输出
注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户
TIME:定义出什么时候进行at这项任务的时间
HH:MM[yyyy-mm-dd]
noon,midnight,teatime(4pm)
tomorrow
now+#{minutes,hours,days,or weeks}
at任务的执行方式:
1)交互式 2)重定向 3)at -f 文件
at任务计划依赖于atd服务,需要启动才能实现at任务
at队列存放在/var/spool/at目录中
/etc/at.deny文件控制者哪些用户不能执行at任务计划
/etc/at.allow文件控制着哪些用户可以使用任务计划,默认情况下没有创建该文件,如果同时一个用户同时存在于这两个文件中,则以allow文件为准,如果两个文件都不存在,则表示只有root用户才可以使用at命令。
batch:系统自行选择空闲时间去执行此处指定的任务
周期性运行某任务:cron
cronie:主程序包,提供crond守护进程及相关辅助工具
cronie-anacron:cronie的补充程序,用于监控cronie任务执行情况,如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务
crontabs:包含centos提供系统维护任务
确保crond守护处于运行状态
Centos 7:systemctl status crond
Centos 6: service crond status
计划周期性执行的任务提交给crond,到指定时间会自动运行系统cron任务:
系统维护作业:
/etc/crontab
用户任务:
crontab命令
计划任务的日志:/var/log/cron
时间表示法:
1)特定值
给定时间点有效取值范围内的值
2)*
给定时间点上有效取值范围内的所有值
表示“每…"
3) 离散取值
#,#,#
4)连续取值
#-#
5)在指定时间范围内,定义步长
/#:#即为步长
时间格式:
@reboot 每次重启
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
系统的任务计划:
/etc/crontab
/etc/cron.d/ 存放一些配置文件
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
用于存放任务计划脚本
anacron系统:
a.运行计算机关机时cron不运行的任务,Centons6以后版本取消anacron服务,由crond服务管理
b.假设计算机没有一直开机
c.对笔记本电脑,台式机,工作站及其他不一致开机的系统很重要
d.对偶尔要关机的服务器很重要
e.配置文件:/etc/anacrontab,负责执行/etc/cron.daily/ /etc/cron.weekly/ /etc/monthly/中系统任务,/etc/cron.hourly/由/etc/cron.d/0hourly负责执行
字段1:如果在这些时间没有运行这些任务
字段2:再重新引导后等待这么多分钟后运行它
字段3:任务识别器,在日志文件中标识
字段4:要执行的任务
当任务执行时,更新/var/spool/anacron/中文件的时间戳
临时文件管理
Centos6使用/etc/cron.daily/tmpwatch 定时清除临时文件
Centos7使用systemd-tmpfiles-setup服务实现
配置文件:
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf
systemd-tmpfiles -clean|remove|create configfile
任务计划:
crontab命令定义:每个用户都有专用的cron任务文件
crontab [option][-l|-r|-e][-i]
-l:列出所有任务
-e:编辑任务
-r:移除任务
-i:同-r一起使用,以交互模式移除指定任务
-u user:仅 root可运行,指定用户管理cron任务
控制用户执行任务计划:
/etc/cron.{allow|deny}
at和crontab共性和个性
at和crontab都是用来做任务计划的
at:一次性作业
crontab:周期性作业
没有被重定向的输出会被邮寄给用户
根用户可以修改其他用户作业
Tips:运行结果的标准输出和错误以邮件的形式通知给相关用户
command &>/dev/null
对于cron任务来说,%有特殊用途,如果在命令中要使用%,则需要转义,不过,如果把%放于单引号中,也可以不用转义
系统启动与内和管理
linux: GNU/KERNEL
kernel+rootfs
kernel:进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能
rootfs:程序和glibc
库:函数集合,function,调用接口(头文件负责描述)
过程调用:procedure,无返回值
函数调用:function
程序;二进制执行文件
内核设计流派:
单内核(monolithic kernel):linux
把所有功能集成于同一个程序
微内核(micro kernel):微软,solaris
每种功能使用一个单独的子系统
linux内核特点:
支持模块化:.ko(内核对象)
如:文件系统,硬件驱动,网络协议等
支持内核模块的动态装载和卸载
组成部分:
核心文件:/boot/vmlinuz-version-release
ramdisk:辅助的伪根文件系统
centos5:/boot/initrd-version-release.img
centos6,7:/boot/initramfs-version-release.img
模块文件:/lib/modules/version-release
注:#表示系统的默认启动级别,在/etc/inittab中进行设置
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控制主机
启动流程:
POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分,负责完成对cpu,主板,内存,硬盘子系统,显示子系统,串并行接口,键盘,CD-ROM光驱等硬件情况的检测
ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序和系统启动自举程序等
RAM:cmos互补金属氧化物半导体,保存各项参数的设定
按次序查找引导设备,第一个有引导程序的设备为本次启动设备
bootloader:引导加载器,引导程序
windows:ntloader 仅是启动os
linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本,把用户选定内核装载到内存中的特定空间中,解压,展开,并把系统控制权移交给内核
lilo:linux loader grub:grand unified bootloader
MBR:
446:bootloader 64:分区表 2:55AA
GRUB:
primary boot loader :1st stage 1.5stage
secondary boot loader: 2nd stage 分区文件
kernel:
自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序(可能借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init
init程序的类型:
Sysv:init,Centos 5 之前
配置文件:/etc/inittab
Upstart:init Centos 6
配置文件:/etc/inittab /etc/init.d/*.conf
Systemd:systemd Centos 7
配置文件:/usr/lib/systemd/system
/etc/systemd/system
ramdisk:
内核中的特征之一:使用缓冲和缓存来加速对磁盘上的文件访问
ramdisk–>ramfs 提高速度
Centos 5:initrd 工具程序:mkinitrd
Centos 6:initramfs 工具程序:mkinitrd dracut
系统初始化流程:
POST–>BOOTSequence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs(只读)–>init(systemd)
系统的几种运行级别:
0:关机
1:单用户模式(root自动登录)single 维护模式
2:多用户模式,启动网络功能,但不启用NFS
3:多用户模式,正常模式,文本界面
4:预留级别,可同于3级别
5:多用户模式,正常模式,用户界面
6:重启
默认级别;3,5
切换级别:init #
查看级别:runlevel,who -r
Centos 6 /etc/inittab和相关文件
设置系统默认的运行级别
id:3:initdefault:
/etc/init/control-alt-delete.conf
使用control-alt-delete的组合键可以进行关机操作
/etc/init/tty.conf
复位tty终端设备
/etc/init/start-ttys.conf
如果runlevel是2,3,4其中的某个状态,则启动tty终端
/etc/init/rc.conf
系统运行级别的合理性
/etc/init/prefdm.conf
/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)清理操作
/etc/rc.d/rc#.d
K##*:##表示运行次序,数字越小,越先运行,数字越小的服务,通常为依赖别的服务
S##*:##表示运行次序,数字越小,越先运行,数字越小的服务,通常为被依赖的服务
chkconfig命令:
查看服务在所有级别的启动或关闭设定情况
chkconfig [–list][name]
Sysv的服务脚本放置于/etc/rc.d/init.d(/etc/init.d)
添加:chkconfig –add name
1、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”
2、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中
原创文章,作者:Stupid_L,如若转载,请注明出处:http://www.178linux.com/44724
评论列表(1条)
总结的很完整,但是过于简略了哦,,而且分类也不够明确,建议这里进行标准化哦。