码迷,mamicode.com
首页 > 系统相关 > 详细

Linux20180511八周一次课cron chkconf systemd unit target

时间:2018-05-12 18:28:50      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:crond

八周一次课(5月11日)

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


Linux任务计划

技术分享图片

可能是个shell脚本,也可能是单独命令。不管是何种形式,都需要某个时间去执行,这样就需要确定一个时间。


任务计划的配置文件 etc/crontab

技术分享图片

定义了变量,环境变量,命令路径 mailto 发邮件给谁,以及格式。不写用户的话,默认是root


定义Linux任务计划的命令

crontab -e 语法和vim一样

比如设定一个凌晨3点的任务:

技术分享图片

解释:

0 3 * * *0分 3点 每天 每月 每日执行

/bin/bash 说明是要执行shell脚本 后面 /user/local/sbin/123.sh 跟的是要执行的脚本 然后写入log 因为每天都执行 所以是追加 后面跟的是错误的log 也追加到这个文件中 

也可以使用范围来表示时间

0 3 1-10 */2  2,5

凌晨3点0分 1-10号, */2被2整除也就是闰月 周二周五 


然后启动crond这个服务才能使用这个任务计划

systemctl start crond 

然后用检查进程是否启动

技术分享图片

或者使用 systemctl status crond 检查crond的状态

技术分享图片

systemctl stop crond 停掉crond

技术分享图片

查看当前的任务计划命令

crontab -l

删除当前的任务计划

crontab -r

查看指定用户的任务计划

crontab -u root -l

注意:

1. 有时候可能因为写的脚本里用的是命令,而不是命令的绝对路径,有可能会导致无法执行。

2. 每写一个任务计划都要写上追加日志,这样有迹可循。

3. 任务计划的文件位置是 /var/spool/cron/root 对应用户的cron root下就是root的,其他用户的cron都有存在对应的用户名下。所以备份的话可以直接拷贝这的文件到其他位置进行拷贝




Linux系统服务管理 -chkconfig

技术分享图片


所谓的crontab firewalld 等都是服务,全是服务所以需要有一个服务管理工具。

Centos6是chkconfig,但是7也是同样兼容的。


将服务显示出来

chkconfig --list

技术分享图片

解释一下,目前看起来只有2个进程,这样就比较奇怪,其他进程去哪了?

看上面的解释,这个命令值展示SysV服务,不包含systemd服务,意思是6以及之前版本的服务管理机制是sysv,7用的是systemd,所以systemd是7以及以后版本的服务管理器。从top命令也可以看到这个很重要的进程。

技术分享图片

技术分享图片


那chkconfig管理的服务具体的位置路径是什么地方呢?

/etc/init.d/ 以后在配置ngix mysql的时候可能还需要把启动脚本放到这个路径然后使用chkconfig去管理

技术分享图片


可以关闭服务

chkconfig network off 

技术分享图片

0-6表示不同的服务级别。

0--关机

1--单用户 centos6以及以前版本

2--比3少了一个nfs服务

3--多用户模式 不带图像

4--保留级别

5--多用户,带图形界面

6-- 重启


centos7不存在级别了。6以及之前版本可以通过更改配置文件 /etc/inittab来定义运行级别。


chkconfig 可以指定某个级别是开启或者关闭

chkconfig --level 3 network off/on 

技术分享图片


也可以将自定义的脚本放到服务中去,必须将脚本放到 /etc/init.d目录下

然后使用命令

chkconfig --add 新服务

技术分享图片

当然了,这个新的服务文件的格式必须满足一些条件 才行。我们看一看。下面两行是必须的

chkconfig:

description:

技术分享图片

上面的注释的意思是,服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

90是启动优先级,10是停止优先级,优先级范围是0-100,数字越大,优先级越低。


有添加就会有删除


chkconfig --del 服务名

技术分享图片


服务删除了,文件还在哦

技术分享图片



Linux系统服务管理--systemd(centos7的服务管理机制)

技术分享图片


显示所有类型的服务的命令

systemctl list-units --all --type=service

不加--all就不会把inactive的列出来

技术分享图片

技术分享图片


cron服务开机启动/不启动

systemctl enable/disable  crond


查看cron状态

systemctl status crond 


停止cron服务

systemctl stop crond


启动cron服务

systemctl start crond


重启

systemctl restart crond


检查cron服务是否开机启动

systemctl is-enabled crond 


技术分享图片

同时从上面可以得到cron的配置文件的内容

技术分享图片

技术分享图片


技术分享图片

从右边软链接到左边,右边是真正的文件路径


enable之后就会生成软链接,disable之后软链接就没有了。



技术分享图片


ls /user/lib/systemd/system 就是系统所有的unit 下面是不同类型的分类

技术分享图片

service 系统服务

target 多个unit组成的组

device 硬件设备

mount 文件系统挂载点

automount 自动挂载点

path 文件或路径

scope 不是由systemd启动的外部进程

slice 进程组  

snapshot systemd的快照  

swap swap文件  

timer 定时器


CentOS7虽然没有0-6的运行级别,但是也有runlevel异曲同工。

ls -l runlevel*

技术分享图片

也是被软链接了。可以从后面看到具体是什么意思。

比如 poweroff 关机  rescue 救援  multi-user 多用户 graphical 图形化 reboot 重启

技术分享图片

可以看到命令的类型是target


技术分享图片


systemctl list-units 列出正在运行的unit

技术分享图片

systemctl list-units  --all 列出所有,包括失败的或者inactive的unit

技术分享图片


systemctl list-units  --all --state=inactive 列出inactive的unit

技术分享图片

systemctl list-units --type=service 列出状态为active的service

技术分享图片

systemctl is-active crond.service 查看某个服务(此处为cron)是否为active 

技术分享图片


技术分享图片


target 和 unit 究竟是什么关系呢?

target是unit的集合,管理unit,系统也是为了方便管理用target来管理unit

查看target类型的units

systemctl list-unit-files --type=target

技术分享图片


查看指定target下面有哪些unit 

systemctl list-dependencies multi-user.target 多用户的这个target下面有哪些unit,让人target下面也可以继续有target

技术分享图片


查看系统默认的target

systemctl get-default

技术分享图片

查看系统默认target的文件

ls -l /etc/systemd/system/default.target 可以看到其实也是一个软链接,真正的文件在/lib/systemd/system/multi-user.target

技术分享图片

设置系统默认的target

systemctl set-default multi-user.target 设置完软链接也会变化

技术分享图片


一个service属于一种类型的unit 多个unit组成了一个target 一个target里面包含了多个service 


cat /usr/lib/systemd/system/sshd.service 查看sshd这个service的具体情况


技术分享图片

【install】

wantedby 被multi-user.target需要,也就是说是属于multi-user这个target

Linux20180511八周一次课cron chkconf systemd unit target

标签:crond

原文地址:http://blog.51cto.com/13691454/2115529

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!