Linux20180511八周一次课cron chkconf systemd unit target

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux20180511八周一次课cron chkconf systemd unit target相关的知识,希望对你有一定的参考价值。

八周一次课(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之后软链接就没有了。


以上是关于Linux20180511八周一次课cron chkconf systemd unit target的主要内容,如果未能解决你的问题,请参考以下文章

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target

Linux20180511八周一次课cron chkconf systemd unit target

八周一次课(1月29日)

八周一次课(1月29日)

Linux学习第八周一次课(3月26日)