第8周第1次课(5月14日)

课程内容:

10.23 linux任务计划cron
10.24 chkconfig工具
10.25 systemd管理服务
10.26 unit介绍
10.27 target介绍
扩展
1. anacron http://blog.csdn.net/strikers1982/article/details/4787226
2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_465bbe6b010000vi.html
3. systemd自定义启动脚本 http://www.jb51.net/article/100457.htm

10.23 linux任务计划cron

在Linux中任务计划是必不可少的,例如有时候需要在凌晨执行数据备份,系统自带的任务计划配置文件是/etc/crontab

[root@jimmylinux-002 ~]# crontab -e  使用crontab -e 去定义任务计划

格式:分 时 日 月 周 user command
文件/var/spool/cron/username
分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7
可用格式1-5表示一个范围1到5
可用格式1,2,3表示1或者2或者3
可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
要保证服务是启动状态

[root@jimmylinux-002 ~]# systemctl start crond  启动任务计划服务

[root@jimmylinux-002 ~]# ps aux |grep cron  检查服务是否启动,如果有crond进程就说明已经启动。

[root@jimmylinux-002 ~]# systemctl status crond  也可以使用这个命令检查,如果active是绿色状态,也说明服务有被启动,假如把服务停掉,那么active没有绿色标注。

任务计划服务一定要启动,否则不生效,另外任务计划配置文件里面的命令一定要写绝对路径,同时指定文件输出正确和错误的日志,方便检查故障原因。

实例:

crontab -e

[root@jimmylinux-002 ~]# crontab -l  查看刚才加的任务计划内容

[root@jimmylinux-002 ~]# cat /var/spool/cron/root  这个里面有对应用户的cron,root的就是root的cron,user1的就是user1的cron。

如果需要备份任务计划,那直接复制cron文件或者复制这个目录/var/spool/cron/root也行。

cron -l   列出cron

cron -e  编辑内容

cron -r   删除cron

cron -u  指定用户

10.24 chkconfig工具

Linux系统服务管理-chkconfig,在CentOS6里面有这个工具,CentOS7同样也兼容chkconfig工具。

[root@jimmylinux-002 ~]# chkconfig --list  查看当前系统里面使用chkconfig工具的服务都有哪些。

chkconfig 在6以及之前的版本系统使用的服务管理机制sysv,7版本使用服务管理机制是systemd。

[root@jimmylinux-002 ~]# top  使用top查看进程1显示是systemd,说明这个进程也是非常重要的,在6版本中进程1是init。

这些服务在/etc/init.d/ 这个路径下

[root@jimmylinux-002 ~]# chkconfig network off  把指定的服务做一个变更

0-6有6个级别,在6和6之前的版本,0表示关机,1表示单用户(在6和之前版本中)2和3就差一个地方,3表示多用户模式,只是不带图形,而2比3只少了一个nfs服务,4表示保留,5表示多用户而且带图形,6表示重启。

如果把系统定位在1级别,一启动就到了1级别单用户,如果定位到6是启动不了的,所以在7的系统中不在区分6个级别,而在6和之前的版本是有区分的。

[root@jimmylinux-002 ~]# vi /etc/inittab  在6系统的版本中修改这个文件可以去定义系统启动的级别,而在7系统中已经不在区分。

chkconfig可以去把一个服务开机启动,也可以让开机不启动,也可以指定某一个级别是开启或关闭。

当然0、1、6级别不能够设置为开,因为重启的时候不可能先开启,而重启的那一刻应该是关闭的,而且关机模式也是不可能开启的。

同样也可以把一个脚本加入到服务列表里面来,操作实例如下:

自定义一个服务

首先把123这个启动脚本放到/etc/init.d这个目录里面去,只有在这个目录下才能够添加到服务列表里面去,这样就到到达上面的效果了。

能够增加也同样可以删除,执行chkconfig --del 123 就可以删除掉。

10.25 systemd管理服务

[root@jimmylinux-002 init.d]# systemctl list-units --all --type=service

列出所有服务

systemctl list-units  --type=service

如果不加--all 只列出active,inactive就不会列出来。

几个常用的服务相关的命令
systemctl enable crond.service //让服务开机启动
systemctl disable crond //不让开机启动
systemctl status crond //查看状态
systemctl stop crond //停止服务
systemctl start crond //启动服务
systemctl restart crond //重启服务
systemctl is-enabled crond //检查服务是否开机启动

10.26 unit介绍

ls /usr/lib/systemd/system //系统所有unit,分为以下类型
service 系统服务
target 多个unit组成的组
device 硬件设备
mount 文件系统挂载点
automount 自动挂载点
path 文件或路径
scope 不是由systemd启动的外部进程
slice 进程组
snapshot systemd快照
socket 进程间通信套接字
swap swap文件
timer 定时器

查看target级别,和CentOS6一样有7个运行级别。

unit里面有一种类型叫target,target实际上就是多个service或者多个unit组成的一个组,然后形成了一个target。

unit相关的命令
systemctl list-units //列出正在运行的unit
systemctl list-units --all //列出所有,包括失败的或者inactive的
systemctl list-units --all --state=inactive //列出inactive的unit
systemctl list-units --type=service//列出状态为active的service
systemctl is-active crond.service //查看某个服务是否为active

10.27 target介绍

系统为了方便管理,所以用target来管理unit
systemctl list-unit-files --type=target
systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit
systemctl get-default //查看系统默认的target

systemctl set-default multi-user.target  设置一个默认target时候也会创建一个软连接

一个service属于一种类型的unit

多个unit组成了一个target
一个target里面包含了多个service
cat /usr/lib/systemd/system/sshd.service //查看一个服务属于哪个target,只需要看[install]部分就可以看出属于哪个target

总结:

系统systemd这个管理机制有些复杂,尤其使用命令比较繁琐,系统可以说有多种unit组成的,那么这么多unit为了方便管理,我们就把他们归类,归类成若干的类,每一类每一组就把它叫作target,也就说target是由多个unit组成的,service它属于一种类型的target,一个target里面包含了若干的service,而且还可以使用get-dufault查看系统默认target,也可以使用set-dufault去设置默认target。

最新文章

  1. 8个排序算法——java
  2. [Data Structure & Algorithm] Hash那点事儿
  3. 把本地代码同步到github
  4. BIRT报表工具,直接导出EXCEL
  5. PHP无限极分类生成树方法,无限分级
  6. android studio中xml没有提示
  7. [Z] Windows 8/10 audio编程
  8. HDU1198水管并查集Farm Irrigation
  9. R.java不能自动更新
  10. python数据类型之int用法
  11. SQL用replace替换文本部分内容
  12. tomcat之负载均衡(apache反响代理tomcat)
  13. mysqlbinlog 读取多个文件
  14. 安装msdn出现的问题及解决
  15. 201521123011《Java程序设计》 第12周学习总结
  16. Grunt打包之seajs项目【转】
  17. python 向量化
  18. python地理处理包——geopy使用之地理编码与反地理编码
  19. Apache Spark 2.2.0新特性介绍(转载)
  20. 网络流相关知识点以及题目//POJ1273 POJ 3436 POJ2112 POJ 1149

热门文章

  1. python3 自己写的一个小算法(比对中文文本相似度)
  2. WebApi -用户登录后SessionId未更新
  3. Java类、对象、变量、方法
  4. 我跟上家老板说过的最后一句话:转.NET Core吧
  5. 【IOS开发—视图控制器】
  6. 原生JS实现集合结构
  7. lucas定理(模板题题解)
  8. MQ应用之解耦
  9. 支付宝小程序和微信小程序的区别(部分)
  10. 大宇java面试系列(二):jvm组成部分