专栏首页程序猿的大杂烩cron,chkconfig工具,systemd管理服务,unit介绍,target介绍

cron,chkconfig工具,systemd管理服务,unit介绍,target介绍

笔记内容:

l 10.23 linux任务计划cron

l 10.24 chkconfig工具

l 10.25 systemd管理服务

l 10.26 unit介绍

l 10.27 target介绍

笔记时间:2017.9.1

10.23 linux任务计划cron

在Linux系统当中任务计划是必不可少的,因为有时候可能需要凌晨的时候去做一些操作,例如要执行shell脚本、备份文件、执行某个命令等等。我们需要设定一个时间去执行这些操作,Windows因为是作为个人电脑系统居多,所以任务计划在Windows中不怎么常见。

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

每个* 表一位,分别是分、时、日、月、周,如果不指定用户的话,默认是root。

crontab -e命令可以进入到crontab的配置文件当中,用法跟vim是一样的:

  *写在分上表示每一分钟都执行,写在时上表示每一小时都执行,写在天上表示这个月的每一天都执行,写月上表示每一个月都执行,写周上表示每一个周都执行,* 写在日月周的位上表示每天都执行。

如果你想指定一个日期范围可以这么写:

1-10是指定一个月的天数范围,*/2表示用月份除以二,也就是指定为偶数的月份,2,3这个月的表示第2和第3周。

想要使用crontab 任务计划的话就需要启动crond服务:

想要确定服务是否启动起来了,可以使用ps aux|grep crond命令查看:

还可以使用systemctl status crond命令查看这个服务的状态:

systemctl stop crond命令可以停止crond服务。

如果你写了一个任务计划,并且服务运行正常,配置的格式也正确,但是到设定的时候却没有执行这个任务计划。这很有可能是你在任务计划的配置文件里写的命令不是绝对路径,如果不是绝对路径的话,就会去找PATH环境变量里是否有配置这条命令,PATH环境变量里没有的话,那么这个任务计划就会执行失败,因为找不到命令的执行路径,所以在任务计划的配置文件里写命令的时候,最好写这个命令的绝对路径。

建议在写任务计划的配置文件的时候将这个任务计划里的命令执行后的结果集重定向到一个日志文件里,错误的信息也是。这样的话才能够保证这个任务有据可查,当这个任务计划执行失败或出问题的话,就可以去查看日志文件,看看其中的错误信息是什么,这样有利于问题的解决。

crontab -l 命令可以看到有哪些任务计划:

crontab 文件在/var/spool/cron/目录下,文件会以设定任务计划的用户名定义:

所以要进行备份的话,就直接拷贝文件或cron目录即可。

crontab -r命令删除任务计划:

crontab -u 指定某个用户,例如我要查看root用户的任务计划:

10.24 chkconfig工具

我们都知道Linux系统里会有很多服务,例如刚刚使用的crond服务、mysql服务、Nginx服务、httpd服务等等,因为有这么多的服务,所以我们需要一个工具来管理,这个工具就是chkconfig。这是CentOS6之前版本所用的一个工具,在CentOS7里已经不使用了,但是为了向之前的版本兼容,所以在CentOS7任然可以使用。虽然这个工具已经不怎么用了,现在的发展趋势也可能会淘汰掉这个工具,但是因为现在还能够使用,所以我们需要了解一些相关的操作。

chkconfig --list 命令可以查看当前系统使用chkconfig 工具的服务:

从显示的结果可以看到,现在系统使用chkconfig 工具的服务只有两个,并且也提示了在CentOS7里的的服务模式是systemd。

这些使用chkconfig 工具的服务的脚本都在/etc/init.d/目录下:

chkconfig network off命令可以关闭network 服务:

chkconfig network on命令可以开启network 服务:

这里的级别表示的是CentOS6版本的系统运行级别,在CentOS7里是没有这个运行级别的:

0级别表示关机状态

1级别表示单用户模式

2级别表示是命令行的多用户模式,但是和3级别的区别是没有nfs服务

3级别表示是命令行的多用户模式

4级别表示保留状态,没什么卵用

5级别表示图形界面的多用户模式

6级别表示重启

chkconfig --level 3 network off 命令可以关闭network 服务的3级别:

chkconfig --level 345 network off 命令可以关闭3、4、5级别:

chkconfig --level 345 network on 命令则是相反可以开启3、4、5级别:

  chkconfig --add 可以添加服务,只能添加/etc/init.d/目录下的脚本,例如我直接把network脚本拷贝成另一个名称的文件,然后添加上去:

  这个脚本名称可以任意,但是文件内容的格式有要求,首先得是shell脚本,还得指定在chkconfig 里的运行级别,而且还得有description描述:

chkconfig --del 命令可以删除chkconfig 里的服务:

10.25 systemd管理服务

systemd是CentOS7的一个服务管理机制,systemctl list-unit-files命令可以查看所有的服务:

  systemctl list-units --all --type=service命令仅仅查看service,这样显得没那么乱:

按空格键可以往下翻页。

如果不加--all选项的话,就不会列出inactive的service:

让服务开机启动

禁止服务开机启动:

查看服务状态:

停止服务:

启动服务:

重启服务:

检查服务是否开机启动:

  设置服务开机启动时会有此服务配置文件路径的信息,这个路径是一个软链接,而这个配置文件的真正路径是/usr/lib/systemd/system/crond.service.:

如果是设置为禁止服务开机启动的话,也会有一个信息,这个信息是把那个软链接删除了的信息:

10.26 unit介绍

系统的所有unit都在/usr/lib/systemd/system/路径下:

  target是由多个unit、service组成的一个组,在CentOS7里也有类似于CentOS6的运行级别,不同级别的target对应着不同的级别的运行模式:

列出正在运行的unit:

列出所有,包括失败的或者inactive的unit:

列出inactive的unit:

列出状态为active的service:

查看某个服务是否为active或inactive:

查看某个服务是否为enable或disable:

10.27 target介绍

target是由多个unit、service组成的一个组,相当于unit、service的一个集合,但是target下也可以包含target。

  列出系统里所有的target:

查看指定target下面有哪些unit、servic,例如我要查看multi-user.target下面的unit、servic:

查看系统默认的target:

在CentOS7里可以通过修改target来改变系统的运行级别。

设置默认的target,会创建一个软链接:

  想要查看某个servic属于哪个target的话,cat那个service的文件内容看Install部分就知道了,例如我要查看sshd.service属于哪个target:

所以target就是由多个unit组成的,而unit又是由多个service组成的,所以target包含unit和service,而target下也可以包含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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 调用语音验证码的接口与图形验证码框架

      语音验证码就是以打电话的方式,通过电话语音播报的方式把验证码告诉给用户,语音验证码使用的不多。

    端碗吹水
  • JVM层GC调优(上)

    JVM层的GC调优是生产环境上必不可少的一个环节,因为我们需要确定这个进程可以占用多少内存,以及设定一些参数的阀值。以此来优化项目的性能和提高可用性,而且这也是...

    端碗吹水
  • SpringMVC返回数据到视图

    在SpringMVC中有一个ModelAndView对象,如其名,Model代表模型,View代表视图,这个名字就很好地解释了该类的作用——它用来存储模型数据以...

    端碗吹水
  • 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度

      离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示。   代表技术:Sqoop 批量导入数据、HDFS 批量存储数据、MapReduce 批...

    黑泽君
  • log4j2 与 spring mvc整合

    log4j2不仅仅是log4j的简单升级,而是整个项目的重构,官网地址:http://logging.apache.org/log4j/2.x/,大家可以从官网...

    菩提树下的杨过
  • 语音直播系统源码与视频直播系统源码哪些区别?

    相比曾经热火朝天的视频直播,语音直播其实一直相对更加垂直和细分,虽然目标用户极具粘性和更精准,但视频直播的“全民化”概念对资本来说吸引力更大,因此这也导致前两天...

    布谷安妮
  • 一次宕机问题的总结复盘

    昨天开了一个会,开完会刚打开电脑就收到了5条报警邮件,提示有4套环境发生了高可用切换,这是一套分布式集群环境,经过了长时间的测试,已经临近上线,因为业务的特...

    jeanron100
  • 0472-Hive中TimeStamp精度问题分析

    Hive中使用TimeStamp时,时间戳默认是精确到秒的,那在Hive中如何处理需要精确到毫秒的时间戳呢?本篇文章Fayson主要说明下Hive时间戳的转换及...

    Fayson
  • 为什么要用TypeScript

    TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助...

    用户7657330
  • 文件系统:隐匿在 Linux 背后的机制

    在 Linux 中,最直观、最可见的部分就是 文件系统(file system)。下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统...

    cxuan

扫码关注云+社区

领取腾讯云代金券